Linux磁盘操作

Linux下磁盘分区、格式化、挂载

本文中的命令需要以 root用户操作

磁盘分区

使用 fdisk命令进行磁盘分区 (无法处理大于2TB以上的磁盘分区,若磁盘大于2TB可使用 parted命令)

1
2
3
4
5
6
7
8
9
10
fdisk -l                                # 找出需要分区的磁盘名称
fdisk /dev/sdb # /dev/sdb 后面不要接数字

# fdisk常用操作
# m print this menu # 查看 fdisk帮助手册
# d delete a partition # 删除分区
# n add a new partition # 新增分区
# p print the partition table # 打印分区信息
# q quit without saving changes # 退出 fdisk,不保存当前操作
# w write table to disk and exit # 保存退出

若使用 fdisk分区保存之后若发现找不到分区,可使执行如下命令

1
partproba       # 强制让内核重新加载分区表

分区注意事项:

  1. 一个磁盘仅能存在4个主分区,当磁盘分配了4个主分区后将不能继续对磁盘进行分区;
  2. 一个磁盘仅能存在1个扩展分区,扩展分区下可以分配多个逻辑分区;
  3. 磁盘下需要分配多个分区的方式:
    3个主分区 + 1个扩展分区, 扩展分区下继续分配逻辑分区;

格式化分区

使用 mkfs综合命令进行磁盘分区

1
2
3
4
5
mkfs [tab] [tab]            # 当前系统可格式化的文件系统类型
mkfs.<FileSystem> -help # 查看帮助,<FileSystem>替换成具体的文件系统名,如: ext4

# 示例:
mkfs.ext4 -c /dev/sdb1 # -c 格式化指定分区 sdb1

挂载

使用 mount挂载设备文件

1
2
3
4
5
6
7
8
9
10
11
12
mount -a
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 设备文件名 挂载点

# 参数:
-a 根据 /etc/fstab的内容,将所有未挂载的磁盘都挂载上来
-t 指定挂载的文件系统类型,如挂载磁盘: -t iso9660
-n 不将挂载信息写入 /etc/mtab中
-L 使用文件系统的卷标名进行挂载
-o 挂载额外参数(default: rw, suid, dev, exec, auto, nouser, and async)

# 示例:
mount /dev/sdb1 /opt/

使用 umount卸载设备文件

1
2
3
4
5
6
7
8
umount [-fn] 设备文件名称/挂载点

# 参数:
-f 强制卸载
-n 不更新 /etc/tmap

# 示例:
umount /dev/sdb1

设置开机挂载

设置开机挂载只需要将挂载信息写入 /etc/fstab文件中即可,该文件挂载项有6个字段,分别如下:

  1. 第一列: 设备文件名/设备Label
  2. 第二列: 挂载点
  3. 第三列: 磁盘分区的文件系统
  4. 第四列: 文件系统参数 (mount -o 指定的额外参数), 参数详情
  5. 第五列: 能否被 dump备份命令作用(0: 不做 dump备份 / 1: 每天进行 dump操作)
  6. 第六列: 是否以 fsck检查扇区(0:不检查 / 1:较早检查 / 2:需要检查)

文件系统参数

参数 说明
ro/rw 挂载文件系统成为只读(ro) 或可擦写(rw)
async/sync 此文件系统是否使用同步写入 (sync) 或异步 (async) 的内存机制。默认为 async。
auto/noauto 允许此 partition 被以 mount -a 自动挂载(auto)
dev/nodev 是否允许此 partition 上,可创建装置文件? dev 为可允许
suid/nosuid 是否允许此 partition 含有 suid/sgid 的文件格式?
exec/noexec 是否允许此 partition 上拥有可运行 binary 文件?
user/nouser 是否允许此 partition 让任何使用者运行 mount ?一般来说,mount 仅有 root 可以进行,但下达 user 参数,则可让一般 user 也能够对此 partition 进行 mount 。
defaults 默认值为:rw, suid, dev, exec, auto, nouser, and async
remount 重新挂载,这在系统出错,或重新升级参数时,很有用

挂载分区注意事项

  1. 单个文件系统不应挂载到多个挂载点(目录)中;
  2. 单个挂载点不应重复挂载多个文件系统;
  3. 应当使用空目录作为挂载点;
    若挂载点不为空目录,那么挂载了文件系统后,原目录下的文件将会暂时消失,直至卸载该文件系统

参考

鸟哥的Linux私房菜 - 基础学习篇 (第8章)