我希望能够更改根设备,例如从 sda 更改为 sdb,以便能够删除 sda。我不认为使用 chroot 可以做到这一点,因为我正在将根文件夹更改为 sda 上存在的挂载点(sdb 不在 fstab 上),因此删除它会锁定系统。
我该如何做到这一点?
答案1
/dev/sda
更改您的 fstab。现在不鼓励使用类似的变量设备节点。
查看你的/dev/disk/by-id/
目录。我的目录如下:
> ls /dev/disk/by-id/
[...]
scsi-SATA_WDC_WD15EADS-00_WD-XXXX08150815
scsi-SATA_WDC_WD15EADS-00_WD-XXXX08150815-part1
scsi-SATA_WDC_WD15EADS-00_WD-XXXX08150815-part2
scsi-SATA_WDC_WD15EADS-00_WD-XXXX08150815-part5
usb-Generic_STORAGE_DEVICE_123456789289-0:0
usb-Generic_STORAGE_DEVICE_123456789289-0:1
usb-Generic_STORAGE_DEVICE_123456789289-0:2
这里有包括序列号在内的磁盘。我这里有一个 SATA 硬盘和一个 USB 读卡器。
您可以在引导加载程序中使用这些链接,/etc/fstab
除非您的发行版很旧。
还有 /dev/disk/by-uuid/ and
/dev/disk/by-label`。
啊,别忘了引导加载程序。如果sda
也是0x80
BIOS 看到的第一个磁盘,那么您可能没有安装引导加载程序sdb
。
答案2
它将在重启时生效,但是 sda、sdb、sdc 等由主板上的 sata 端口 ID 分配。如果您有另一个硬盘,请关闭计算机并物理更改电缆。但在执行此操作之前,请检查 /etc/fstab 并确保挂载点由 UUID 而不是 devID 分配。(一串长的数字和字母,而不是 /dev/sda )。它应该在启动时自行解决。
我实在想不出在系统启动并运行时执行此操作的方法。一旦 initrd 找到根设备...我不知道...老式的 init 0 几乎可以改变这一点,而且我认为这只适用于 Solaris...对不起。