LINUX磁盘分区、格式化、挂载、卸载全程详解
1.一切皆文件
Linux系统有一个理念:“一切皆文件”,所以计算机的硬件在linux中也是以“文件”的形式存在于/dev目录中。
图为CentOS 6.5系统中/dev目录的部分内容。不同的计算机显示的内容大同小异。
比如,光驱对应的文件是/dev/cdrom,CPU对应的文件是/dev/cpu。而硬盘对应的是/dev/sd*。第一块硬盘是/dev/sda,第二块磁盘是/dev/sdb。
但是一个磁盘通常又被分成多个分区,所以在磁盘文件的后面加上分区的序号来对应这个分区。参考下面的表格中的例子。
分区 |
对应的路径 |
第一块硬盘的第1个分区 |
/dev/sda1 |
第一块硬盘的第2个分区 |
/dev/sda2 |
第二块硬盘的第2个分区 |
/dev/sdb2 |
2.创建分区
2.1 使用cfdisk命令创建一个分区。
本例使用上图中的/dev/sdb磁盘来演示。
开始使用cfdisk命令,进入cfdisk界面。
cfdisk /dev/sdb
[New]--[Primary]--手动输入分区容量,以M为单位。回车,创建成功。
最后选择[Write],输入“yes”回车,将配置写入到磁盘。
选择[Quit]退出cfdisk。
ps:cfdisk命令暂不支持GPT分区格式
2.2 格式化分区mkfs
mkfs - 支持ext2、ext3(日志)、ext4、vfat、msdos、jfs、reiserfs等
用法1:mkfs -t <fstype> <partition>
例:#mkfs -t ext3 /dev/hda1
用法2:mkfs.<fstype> <partition>
例:#mkfs.vfat /dev/hda2
本例是 mkfs.ext4 /dev/sdb1
ps:格式化分区之后,可以使用e2label命令给分区添加卷标
e2label 分区路径 卷标名
3. 挂载分区
提示:使用df -h命令可以查看当前系统中已经挂载的分区
3.1 手动挂载分区
mount -t /dev/sdb1 /mnt/sdb1
卸载分区umount命令格式:
umount [option] special | node
使用umount卸载分区时,可以指定挂载点,也可以指定挂载的路径
比如本例要卸载sdb1分区的挂载,则使用
umount /dev/sdb1或者umount /mnt/sdb1
ps:使用umount卸载时,如果是指定的设备路径,则umount会按照按照挂载顺序去卸载分区最后被挂载的挂载点。
3.2 自动挂载分区
linux系统在启动时,会从/etc/fstab文件自动挂载分区。
图中是一个fstab文件的示例。
fstab中,每条配置信息都分为固定的6个部分
[1]:分区路径,或者UUID
[2]:fs_file - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。
[3]:fs_type - 定义了该设备上的文件系统,一般常见的文件类型为ext4 (Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、isoArray600等。在不确定的情况下可以使用auto。
[4]:fs_options - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。
对于大多数系统使用"defaults"就可以满足需要。不多说。
[5]:fs_dump - 该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设
置该字段为0
[6]:fs_pass - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字
段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0
本例,在fstab文件中添加sdb1分区自动挂载的配置如下:
/dev/sdb1 /mnt/sdb1 ext4 defaults 0 2
ps:其它账户(如orac、mysql)在使用这个新的分区时,可能会遇到权限不足的问题,使用以下命令解决
chmod 777 /mnt/sdb1