先给虚拟机加块盘
- 1
- 先关机:在虚拟机里
sudo poweroff,或者 Parallels 菜单里关闭。 - 2
- Parallels 菜单栏 → 操作 → 配置 → 硬件。
- 3
- 左下角 「+」→ 硬盘,大小填 10 GB,格式选默认(扩展),添加。
- 4
- 开机,
lsblk应该能看到一块新的sdb(或sdc)。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 64G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 63G 0 part
└─rl-root 253:0 0 62G 0 lvm /
sdb 8:16 0 10G 0 disk
↑ 新盘,还没分区、没挂载
四步走完
$ sudo fdisk /dev/sdb
进入交互界面后依次按:
n # new,新建分区
回车 # 分区类型用默认(primary)
回车 # 分区号默认 1
回车 # 起始扇区默认
回车 # 结束扇区默认(用满整块盘)
w # write,写入并退出 ← 按 w 之前都可以反悔
$ lsblk | grep sdb
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 10G 0 part ← 分区出来了
按 w 之前,所有操作都只在内存里。搞乱了直接按 q 退出,磁盘一点没动。
不确定当前状态就按 p(print)看一眼分区表。
$ sudo mkfs.xfs /dev/sdb1
↑ RHEL 系默认文件系统是 xfs
# Ubuntu 系一般用 ext4:
# sudo mkfs.ext4 /dev/sdb1
xfs 只能扩大,不能缩小;ext4 两个方向都行(但缩小要卸载)。
RHEL 系默认 xfs,因为大文件性能好。后天讲 LVM 扩容时,xfs 用 xfs_growfs、ext4 用 resize2fs,别记混。
$ sudo mkdir /data
$ sudo mount /dev/sdb1 /data
$ df -hT | grep data
/dev/sdb1 xfs 10G 104M 9.9G 2% /data ← 挂上了
$ echo "test" | sudo tee /data/test.txt # 试写一下
mount 命令挂上的,重启就没了。要开机自动挂载,必须写进 /etc/fstab——下一步。
④ 写进 fstab(关键步骤)
$ sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="xfs"
设备名会变。你插拔一块盘、或者 BIOS 顺序变了,原来的 sdb 可能变成 sdc——fstab 里写死设备名,重启后就挂错盘或者挂不上,系统直接起不来。
UUID 是跟着文件系统走的,永远不会变。这是生产环境的标准做法。
$ sudo cp -a /etc/fstab /etc/fstab.bak.$(date +%F) ← 先备份!
$ sudo vi /etc/fstab
# 在最后加一行(六个字段,空格或 Tab 分隔):
UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /data xfs defaults 0 0
- ① UUID=...
- 要挂载的设备。也可以写
/dev/sdb1,但不推荐。 - ② /data
- 挂载点,这个目录必须已经存在。
- ③ xfs
- 文件系统类型。
- ④ defaults
- 挂载选项。
defaults涵盖读写、自动挂载等常规设置。 - ⑤ 0
- 是否被
dump备份,基本都填 0。 - ⑥ 0
- 开机时
fsck检查顺序。根分区填 1,其他填 0 或 2。
⚠️ mount -a 绝对不能省
$ sudo umount /data # 先卸载
$ sudo mount -a # 按 fstab 重新挂载全部
$ df -hT | grep data # 挂上了就说明 fstab 写对了
/etc/fstab 写错,系统开机时会卡在紧急模式(emergency mode),直接起不来。
这是新手最容易造成的真实事故——远程服务器一旦这样,你连 SSH 都进不去,只能去机房接显示器。
mount -a 在不重启的情况下验证配置。它不报错,就说明重启也不会出事。写完 fstab 立刻做这一步,养成条件反射。
# 开机卡在 emergency mode 时:
# 1. 输入 root 密码进入救援 shell
# 2. 重新挂载根分区为可写
mount -o remount,rw /
# 3. 改回 fstab(或用备份还原)
vi /etc/fstab
# 4. 重启
reboot
卸载与占用
$ sudo umount /data
umount: /data: target is busy.
# 找出是谁占着
$ sudo lsof +D /data
$ sudo fuser -vm /data
# 常见原因:你自己的终端就 cd 在那个目录里
$ cd ~ && sudo umount /data
「umount 提示 busy」十次有八次是你自己站在那个目录里。先 cd 出来再试。
今天的面试点
「lsblk 确认识别到 → fdisk 分区 → mkfs.xfs 格式化 → mkdir 建挂载点 → mount 挂载 → blkid 拿 UUID 写进 /etc/fstab。」
然后一定补这句:「写完 fstab 我一定会 mount -a 验证一次,因为 fstab 写错会导致系统开不了机。」
「另外fstab 里我用 UUID 不用设备名,因为设备名可能因为插拔顺序变化。」
今天的练习
- 在 Parallels 里给虚拟机加一块 10 GB 的新硬盘,开机后
lsblk确认 sudo fdisk /dev/sdb,按n→ 四次回车 →w,再lsblk看sdb1sudo mkfs.xfs /dev/sdb1格式化sudo mkdir /data && sudo mount /dev/sdb1 /data,df -hT确认,往里写个文件- 备份 fstab,
blkid拿 UUID,写进/etc/fstab - 关键:
sudo umount /data && sudo mount -a && df -hT | grep data—— 验证 fstab 正确 - 选做(推荐):
sudo reboot,重启后确认/data自动挂上了
Day 23 讲 LVM——面试高频。你装系统时选的自动分区用的就是它,明天用今天这块新盘练在线扩容。
那个「扩完 LV 还要扩文件系统」的两步,是区分背题和真做过的分水岭。