> Linux教程 >

linux硬盘分区格式化及挂载

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硬盘分区之间的关系

 

\

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

 

\

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

 

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支持的分区类型为82 swap交换分区、83 linux分区、8e LVM逻辑卷组。

\

\

\

分区修改完成后键入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及文件系统类型,及卷标

 

\

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"

挂载的几种方式

显示系统已经挂载的文件

\

挂载分区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

(责任编辑:IT)