系统启动后会将系统盘上各分区自动挂载至根目录的不同位置,当存在双系统时系统启动后会出现分区挂载错误的现象
如:
root@sys: df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 381M 1.6M 380M 1% /run
/dev/nvme0n1p3 234G 6.7G 215G 4% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mmcblk0p2 976M 65M 844M 8% /boot
/dev/mmcblk0p1 256M 6.7M 250M 3% /boot/efi
tmpfs 381M 4.0K 381M 1% /run/user/125
tmpfs 381M 4.0K 381M 1% /run/user/1000
以上系统盘为nvme盘,mmc上也安装有系统,且分区相似。根分区挂载正确,但是boot分区和efi分区挂载的却是emmc盘上的boot和efi分区。一旦我们更新内核或者grub配置此时就会修改emmc盘上的相关文件而原本我们目的是要修改nvme盘的系统。这就导致更新内核或者grub配置时容易更新错位置,导致系统盘被污染造成重装系统的麻烦。
其原因是我们通过查看/etc/fstab文件
PARTLABEL=ROOT / ext4 defaults 0 1
PARTLABEL=BOOT /boot ext4 defaults 0 1
PARTLABEL=EFI /boot/efi vfat defaults 0 1
不难发现只要硬盘分区表类型是BOOT或者EFI都有可能被挂载。
因此我们改变自动挂载策略即可规避这个问题
修改/etc/fstab文件
UUID=ad978a6a-d6de-4335-8419-65f1b0e861e3 / ext4 defaults 0 1
UUID=814fe153-f0b1-40de-9325-4e7ce4db90e6 /boot ext4 defaults 0 1
UUID=66D9-C93E /boot/efi vfat defaults 0 1
保存后再次重启系统发现问题已经不存在了,可以放心大胆的调试了。
root@sys: df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 381M 1.6M 380M 1% /run
/dev/nvme0n1p3 234G 6.7G 215G 4% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/nvme0n1p2 682M 46M 587M 8% /boot
/dev/nvme0n1p1 240M 6.3M 233M 3% /boot/efi
tmpfs 381M 4.0K 381M 1% /run/user/125
tmpfs 381M 4.0K 381M 1% /run/user/1000
系统各个分区UUID查看命令:
blkid -s UUID
root@sys:# blkid -s UUID
/dev/mmcblk0p3: UUID="77bc6a25-852d-4a00-921a-7b0b6d990a60"
/dev/mmcblk0p1: UUID="C3D3-913B"
/dev/mmcblk0p2: UUID="e9275039-8a02-4186-8080-3938418b20f3"
/dev/nvme0n1p1: UUID="66D9-C93E"
/dev/nvme0n1p2: UUID="814fe153-f0b1-40de-9325-4e7ce4db90e6"
/dev/nvme0n1p3: UUID="ad978a6a-d6de-4335-8419-65f1b0e861e3"
查看系统盘属性
root@sys:# blkid
/dev/mmcblk0p3: LABEL="ROOT" UUID="77bc6a25-852d-4a00-921a-7b0b6d990a60" UUID_SUB="803cc01a-dffa-49b9-9f48-30ed12eb431c" TYPE="btrfs" PARTLABEL="ROOT" PARTUUID="bcb2ec71-e278-42f6-a1e1-be350c74b913"
/dev/mmcblk0p1: SEC_TYPE="msdos" LABEL_FATBOOT="EFI" LABEL="EFI" UUID="C3D3-913B" TYPE="vfat" PARTLABEL="EFI" PARTUUID="9141a348-aece-4705-9a1a-1331f4f6acee"
/dev/mmcblk0p2: LABEL="BOOT" UUID="e9275039-8a02-4186-8080-3938418b20f3" TYPE="ext4" PARTLABEL="BOOT" PARTUUID="badf2f50-8e47-4e30-b7a9-bf39b27ee1a0"