【磁盘分区】
若想要在系统中新增一块硬盘,对磁盘进行分区是第一步
fdisk
命令是一个创建和维护分区表的程序,命令格式为:fdisk [-l] 设备名称
当使用 -l 选项而不加设备名时,会将整个系统内能够找到的设备分区列出
由于每台主机的磁盘数量不同,因此在进行分区时,通常会先使用 df
命令列出可用的磁盘文件名,再用 fdisk
命令进行查阅
在进入 fdisk
工作界面后,可以输入 m
以获取帮助,可以看到如下所示的命令介绍
常用的命令有:
- d:删除一个分区
- n:新增一个分区
- p:在屏幕上显示分区表
- q:不存储操作,离开
fdisk
- w:将操作写入分区表
如下图所示,输入 n 后,按照提示即可创建一个新的分区
在输入 p 后,会列出当前磁盘的分区表信息,相当于 fdisk -l
【磁盘格式化】
分区后接着要进行的操作就是进行文件系统的格式化,一般会选用 mkfs
命令来进行该操作,命令格式为:mkfs -t 文件系统格式 设备文件名
该命令事实上是一个综合命令,例如当运行 mkfs -t ext3 ...
时,系统会去调用 mkfs.ext3
这个命令以进行格式化操作
在终端输入 mkfs
后,连续按下两次 Tab 键,会列出 mkfs
所支持的文件系统格式
【磁盘检验】
在系统运行过程中,当出现死机时,文件系统可能会出现硬盘与内存数据的异步的情况,此时可使用 fsck
命令来检验并修复文件系统是否出错,使用 badblocks
命令来检验磁盘或软盘扇区是否出现坏轨
fsck 命令
fsck
命令来检验并修复文件系统是否出错,其与 mkfs
命令一样,也是一个综合命令,但其会通过 Super Block 自动分辨文件系统来调用相应的程序,命令格式为:fsck [-t 文件系统] -[选项] 设备名称
常用的选项有:
- -t:后跟文件系统,由于
fsck
命令可自动辨别文件系统,因此该选项可省略 - -A:依据
/etc/fstab
的内容,将需要的设备扫描一次,一般在开机过程中执行该命令 - -C:在检验过程中,使用一个直方图来显示当前的进度
- -a:自动修复检查到的有问题的扇区
- -y:与 -a 作用相同,但某些文件系统仅支持 -y 这个选项
同样,在终端输入 fsck
后,连续按下两次 Tab 键,会列出 fsck
所支持的文件系统格式
需要注意的是,该命令通常只有 root 用户且文件系统有问题时使用,否则可能会对系统造成危害,一般情况下,都是系统出现极大问题,导致在 Linux 开机时不得不进入单用户模式进行维护时,才可使用
此外,在执行该命令时,被检查的分区不可挂载在系统树上,必须处于卸载状态
badblocks 命令
badblocks
命令来检验磁盘或软盘扇区是否出现坏轨,命令格式为:badblocks [选项] 设备名称
常用的选项有:
- -s:在终端上列出检查进度
- -w:使用写入的方式来测试,在待检查的设备有文件时不推荐使用
【磁盘挂载与卸载】
挂载
将文件系统与目录树结合的操作被称为挂载,挂载点一定是目录,该目录为进入该文件系统的入口,因此并非所有的文件系统均可使用,必须挂载到目录树的某个目录后方可使用
需要注意的是,单一文件系统不能被重复挂载到不同的挂载点中,单一目录也不能重复挂载到多个文件系统上,同时,作为挂载点的目录应当都是空目录
只有当进行挂载后,方可读取光盘、软盘、U 盘等设备上的文件
mount 命令
mount
命令用于将文件系统挂载到 Linux 系统上,其有三种常用的形式:
mount -a
:依照配置文件/etc/fstab
的数据将所有未挂载的磁盘都挂载上mount [-l]
:只运行mount
会显示目前挂载的信息,加上-l
可增加列 Label 名称mount [-t 文件系统] [-L Label 名] [-o 额外选项] 设备文件名 挂载点
:挂载文件系统
对于第三种形式,其选项说明如下:
- -t:与
mkfs
的 -t 选项类似,可以加上文件系统的种类来指定要挂载的类型 - -L:除利用设备文件名外,可利用卷标名称 Label 来进行挂载
- -o:后跟一些挂载时额外的参数,默认参数为
rw,suid,dev,exec,auto,nouser,async
,具体含义见下表
参数 | 意义 |
---|---|
ro/rw | 挂载文件系统成为只读/只写 |
suid/nosuid | 是否允许该分区上含有 suid/sgid 的文件格式 |
dev/nodev | 是否允许该分区上可创建设备文件 |
exec/noexec | 是否允许该分区上拥有可执行 binary 文件 |
auto/noauto | 是否允许该分区可被 mount -a 自动挂载 |
user/nouser | 是否运行该分区让任何用户执行 mount 命令(默认情况下,仅允许 root 用户执行) |
async/sync | 挂载的文件系统是否使用异步写入/同步写入的内存机制,默认为异步方式 async |
remount | 进行重新挂载 |
umount 命令
umount
命令用于将设备文件卸载,只有当进行卸载后,方可退出光盘、软盘、U 盘等设备,其命令格式为:umount [选项] 设备文件名或挂载点
常用的选项有:
- -f:强制卸载,常用于网络文件系统 NFS 无法读取的情况下
- -n:不更新
/etc/mtab
的情况下卸载
只有当进行卸载后,访客退出光盘、软盘、U 盘等设备
开机挂载
手动处理挂载十分繁琐,为此,可设置让系统自动在开机时进行挂载,这样就不需要每次进入 Linux 系统后进行手动挂载
在 Linux 系统中,/etc/fstab
就是将所有利用 mount
命令进行挂载时的参数文件,也即利用 mount -a
命令进行的挂载数据文件
如图所示,该文件一共含有六个字段:
- 第一列:磁盘设备文件名或该设备的卷标 Label
- 第二列:挂载点
- 第三列:磁盘分区的文件系统
- 第四列:文件系统参数
- 第五列:能否被
dump
备份命令使用 - 第六列:是否用
fsck
命令检查扇区
【磁盘参数修改】
mknod 命令
在 Linux 中,所有的设备都以文件来代表,具体来说,是通过文件的 major 和 minor 数值来替代,其中 major 为主设备代码,minor 为次设备代码
常见的硬盘文件名 /dev/hda
与 /dev/sda
设备代码表如下
磁盘文件名 | major | minor |
---|---|---|
/dev/hda |
3 | 0~63 |
/dev/hdb |
3 | 64~127 |
/dev/sda |
8 | 0~15 |
/dev/sdb |
8 | 16~31 |
mknod
命令可设置设备的 major 与 minor,命令格式为:mknod 设备文件名 [设备种类] [major] [minor]
常见的设备种类有:
- b:设置设备名称成为一个外部存储设备文件,例如硬盘
- c:设置设备名称成为一个外部输入设备文件,例如鼠标、键盘
- p:设置设备名称成为一个 FIFO 文件
e2label 命令
e2label
命令用于修改格式化后的文件系统的卷标 Label,命令格式为:e2label 设备名称 新 Label