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磁盘操作,分区操作_primary


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

Linux磁盘操作,分区操作_primary_02


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


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磁盘操作,分区操作_primary_03


Linux磁盘操作,分区操作_linux_04

Linux磁盘操作,分区操作_分区操作_05

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

Linux磁盘操作,分区操作_linux_06

Linux磁盘操作,分区操作_分区操作_07

Linux磁盘操作,分区操作_primary_08

分区修改完成后键入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: #预留给管理使用的块所占的比率  一般用在分区很大的时候,#为数字

1
2
3
4
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  可以详细查看分区的信息

1
2
3
4
5
6
7
[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)

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


e2label:显示或设定卷标

1
e2label /dev/sda5MYDATE

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

Linux磁盘操作,分区操作_磁盘操作_09


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


转自:http://litaotao.blog.51cto.com/6224470/1253401