linux硬盘分区格式化及挂载  

1、硬盘的接口类型      

    硬盘的接口一般分为两种,一种是IDE并行接口,一种是SATA串行接口, 在linux上面IDE接口的硬盘被识别为/dev/hd[a-z]这样的设备,其中hdc表示光驱设备,这是因为主板上面一般有两个IDE插槽,一个IDE插槽可以接两个硬盘,而光驱是接着IDE的第二个插槽上面的第一个接口上面。其他诸如SCSI,SAS,SATA,USB等接口的设备在linux识别为/dev/sd[a-z]。        


2、linux硬盘的分区

磁盘的分区分为: primary(主分区)、extended(扩展分区)、Logical (逻辑分区)且主分区加上扩展分区的个数小于等于4个。且扩展分区最多只有一个,扩展分区是不能直接在里面写入数据的,扩展分区里面新建逻辑分区才能读写数据。如果看见一个硬盘有很多分区,则其实是在扩展分区里面新建的逻辑分区。

主分区从 sdb1--sdb4

逻辑分区是从 sdb5--sdbN

 如果所示linux硬盘分区之间的关系

linux硬盘分区格式化及挂载_第1张图片


第一种情况为:四个主分区

linux硬盘分区格式化及挂载_第2张图片


第二种情况为:三个主分区+一个扩展分区(扩展分区里面包括逻辑分区)


3、linux上如何实现分区

linux上面实现分区的命令: fdisk

1)fdisk -l [DEVICE]

查看linux某个硬盘的信息 fdisk -l /dev/[hs]d[a-z],不接设备名称,默认是查看所有硬盘的信息。

2)fdisk  DEVICE 可以对硬盘进行分区操作

[root@Redhat5 ~ ~]# fdisk /dev/sda

Command (m for help): m  (输入m查看可以操作的菜单)

Command action

  a   toggle a bootable flag

  b   edit bsd disklabel

  c   toggle the dos compatibility flag

  d   delete a partition     //删除一个分区

  l   list known partition types  //已知的分区类型列表

  m   print this menu          

  n   add a new partition     //添加一个新的分区

  o   create a new empty DOS partition table

  p   print the partition table  //打印分区表

  q   quit without saving changes  //退出但不保存配置

  s   create a new empty Sun disklabel

  t   change a partition's system id  //改变一个分区的系统标识

  u   change display/entry units     //改变显示/条目单位

  v   verify the partition table     //验证分区表

  w   write table to disk and exit   //保存退出

  x   extra functionality (experts only)


linux硬盘分区格式化及挂载_第3张图片


linux硬盘分区格式化及挂载_第4张图片

linux硬盘分区格式化及挂载_第5张图片

常见linux支持的分区类型为82 swap交换分区、83 linux分区、8e LVM逻辑卷组。

linux硬盘分区格式化及挂载_第6张图片

linux硬盘分区格式化及挂载_第7张图片

linux硬盘分区格式化及挂载_第8张图片

分区修改完成后键入w保存退出。这时分区还不能使用,因为linux的内核还没有识别分区的信息


4、使linux内核识别分区信息

cat /proc/partitions  查看内核识别的分区信息

[root@Redhat5 ~]# cat /proc/partitions

major minor  #blocks  name

  8     0  125829120 sda

  8     1     104391 sda1

  8     2   41945715 sda2

  8     3    1052257 sda3

253     0   30703616 dm-0

253     1    5111808 dm-1

让内核重新读取硬件分区表有两个命令

partprobe /dev/sda ------> redhat 5.x ,redhat 6.x需要重启

partx -a /dev/sda5 /dev/sda------->redhat 6.x

内核加载分区信息之后再查看

[root@Redhat5 ~]# cat /proc/partitions

major minor  #blocks  name

  8     0  125829120 sda

  8     1     104391 sda1

  8     2   41945715 sda2

  8     3    1052257 sda3

  8     4          0 sda4

  8     5    1959898 sda5

  8     6    3911796 sda6

253     0   30703616 dm-0

253     1    5111808 dm-1


5、格式化分区

格式化分区的命令

mkfs   -t  fstype /dev/part   -t选择格式化的类型,然后是那个分区

mkfs.ext2  /dev/part      格式化为ext2的类型,然后是接那个分区

mkfs.ext3  /dev/part      格式化为ext3的类型,然后是接那个分区

mkfs.ext4  /dev/part      格式化为ext4的类型,然后是接那个分区

mke2fs 比之前几个更加强大的格式化分区的命令

这几个命令之间相关的关系

mkfs -t ext4 = mkfs.ext4 = mke2fs -t ext4

mkfs -t ext3 = mkfs.ext3 = mke2fs -j = mke2fs -t ext3

mkfs -t ext2 = mkfs.ext2 = mke2fs = mke2fs -t ext2


mke2fs (man mke2fs):创建文件类型--->/etc/mke2fs.conf 配置文件

       -t:文件类型

       -j:相当于 ext3

       -b:指定块大小{1024|2048|4096byte},块大小取决cpu对内存页框大小的支持,x86系统默认页                  

          大小是4096,4k

       -L: label 设定卷标

      -m: #预留给管理使用的块所占的比率  一般用在分区很大的时候,#为数字

mke2fs -t ext3 /dev/sda5                     #把分区格式为ext3格式的
mke2fs  -t ext3 -b  2048  /dev/sda5     # 把分区的块改成2048字节,一般用于系统中小文件很多的情况
mke2fs -t ext3 -m 3   /dev/sda5           #把分区预留的空间改为所占总空间的3%,默认为5%,因为当某个分区足够大的时候,可以减少空间
mke2fs -t ext3 -L  DATE   /dev/sda5     #把分区的卷标设置为DATE


    tune2fs  命令可以查看分区的详细信息,mke2fs 与 tune2fs的关系和useradd与usermod的关系很类似。mke2fs支持的参数tune2fs大多数都支持,详情请man tune2fs查看相关的帮助。

option

      -l: 显示文件系统超级块信息;

     -L label:重新设定卷标;

     -m #: 调整预留给管理使用的块所占据总体空间的比例;

      -r #: 调整预留给管理使用的块个数;

      -o:设定挂载默认选项

      -O: 设定文件系统默认特性

     -E: 调整文件系统的扩展属性

tune2fs不支持-b参数改变块的大小。

tune2fs   -l  /dev/sda5  可以详细查看分区的信息

[root@Redhat5 ~]# tune2fs -l /dev/sda5 | grep "^Block size"     //显示sda5分区块的大小
Block size:               4096
[root@Redhat5 ~]# tune2fs -l /dev/sda5 | grep "^Reserved"      //显示sda5预留空间
Reserved block count:     24498
Reserved GDT blocks:      119
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

tune2fs -L DATE /dev/sda5   #修改卷标
tune2fs -m 3 /dev/sda5       #修改预留给管理使用的块所占据总体空间的比例


e2label:显示或设定卷标

e2label /dev/sda5 MYDATE

blkid :显示设备的UUID及文件系统类型,及卷标

linux硬盘分区格式化及挂载_第9张图片


6、挂载

mount 挂载------>显示的是/etc/mtab文件里面的内容

mount [-t fstype]     DEVICE                        MOUNT_POINT

命令                           设备                                  挂载点

mount [-t fstype]    LABEL="卷标"              MOUNT_POINT  -->e2label查看标签

mount [-t fstype]     UUID="UUID"            MOUNT_POINT ---->blkid可以查看UUID

options:

    -o:用于指定挂着选项,常用的挂着选项,选项有很多用逗号隔开

    ro:只读挂载

    rw:读写挂载(默认)

    noatime:关闭更新访问时间

    auto:是否能够由"mount -a"挂载

    defaults:相当于rw, suid, dev, exec, auto, nouser, async.

    sync:同步

    async:异步

    noexec:不容易设备中的二进制直接运行

   remount:重新挂载

   loop:本地回环设备:  挂载系统已经存在的镜像

   -t:

   -v:verbose 显示详细信息

   -n:挂载文件系统时,不更新/etc/mtab文件

   -r:只读挂载相当于"-o ro"

挂载的几种方式

显示系统已经挂载的文件

linux硬盘分区格式化及挂载_第10张图片

挂载分区sda5到/mnt/sda5目录下

[root@Redhat5 ~]# mkdir /mnt/sda5       #创建一个挂载目录

[root@Redhat5 ~]# mount /dev/sda5 /mnt/sda5/ #把分区挂载到新建的目录里面

[root@Redhat5 ~]# mount | grep "/dev/sda5"      #查看分区是否挂载

/dev/sda5 on /mnt/sda5 type ext3 (rw)               #显示分区已经挂载

[root@Redhat5 ~]# umount /dev/sda5               #卸载分区

[root@Redhat5 ~]#mount | grep "/dev/sda5"     #发现分区已经被卸载

[root@Redhat5 ~]# blkid       #显示设备的UUID及文件系统类型,及卷标

/dev/mapper/vol0-home: UUID="d1aeef77-bb47-4718-a91c-d4870b536440" TYPE="ext3"

/dev/sda3: LABEL="SWAP-sda3" TYPE="swap"

/dev/sda1: LABEL="/boot" UUID="5e5eaaac-cc56-42da-81eb-9adebff0fa2e" TYPE="ext3"

/dev/vol0/root: UUID="4302a528-e88e-43d3-b3cc-1c2b29cda656" TYPE="ext3"

/dev/sda5: LABEL="DATE" UUID="8f4f9b53-0bf0-4ce9-9665-bd4c7ae9ce59" TYPE="ext3"

[root@Redhat5 ~]# mount  LABEL="DATE"  /mnt/sda5/   #可以查到到分区5的标签为DATE,通                        

过挂载标签来挂载分区

[root@Redhat5 ~]# mount | grep "/dev/sda5"         #查看分区是否挂载

/dev/sda5 on /mnt/sda5 type ext3 (rw)

[root@Redhat5 ~]# umount /dev/sda5    #卸载分区

[root@Redhat5 ~]#mount | grep "/dev/sda5"

[root@Redhat5 ~]# mount UUID="8f4f9b53-0bf0-4ce9-9665-bd4c7ae9ce59" /mnt/sda5/

#通过挂载UUID来挂载分区

[root@Redhat5 ~]#mount | grep "/dev/sda5"

/dev/sda5 on /mnt/sda5 type ext3 (rw)

用mount命令挂载的文件在系统开机的时候是不能自动挂载的,想要系统开机就挂载写到配置文件即可/etc/fstab

echo "LABEL=DATE  /mnt/sde5  ext3 defaults  0 0" >> /etc/fstab


/etc/fstab文件的格式

[root@Redhat5 ~]# cat /etc/fstab

/dev/vol0/root          /                       ext3    defaults        1 1

/dev/vol0/home          /home                   ext3    defaults        1 2

LABEL=/boot             /boot                   ext3    defaults        1 2

tmpfs                   /dev/shm                tmpfs   defaults        0 0


字段以空格分隔

1、挂载的设备:设备文件、卷标、UUID

2、挂载点:  与跟相关联的目录

3、文件系统类型:ext3,ext4

4、挂载选项:defaults表示使用默认选项,多个选项彼此间逗号分隔

5、转储频率:0:从不备份、1:每日备份、2:每隔一日备份

6、自检次序:0:不检测、1:第一个检测,一般只能为根文件系统第一个检测 2 ...9