如何在戴尔Aurora R7上将Ubuntu内核与用户空间分别安装在不同磁盘?
如何在戴尔Aurora R7上将Ubuntu内核与用户空间分别安装在不同磁盘?
没问题,这事儿完全可以实现!不过操作前一定要把重要数据备份好,避免意外情况。咱们一步步来:
第一步:确认磁盘设备名
首先得搞清楚你的Optane和SSD对应的系统设备名,打开终端输入以下命令:
lsblk
你会看到类似的输出,16GB的那个就是Optane(通常是/dev/nvme0n1这类NVME设备),1TB的SSD可能是/dev/sda或者另一块NVME设备。记下来它们的分区名,比如Optane的/boot分区可能是/dev/nvme0n1p2,根分区是/dev/nvme0n1p3,后面会用到。
第二步:准备1TB SSD的分区
先把SSD上的所有数据备份好!然后我们给它创建一个ext4格式的主分区:
- 用
fdisk工具分区,输入命令:sudo fdisk /dev/sda # 这里替换成你的SSD设备名,不是分区! - 按
n创建新分区,选择主分区(按默认设置即可),最后按w保存分区表。 - 格式化新分区为ext4格式:
sudo mkfs.ext4 /dev/sda1 # 这里替换成你刚创建的SSD分区名
第三步:复制现有用户空间到SSD
接下来把Optane上除了内核相关目录的所有用户数据复制到SSD:
- 创建临时挂载点并挂载SSD分区:
sudo mkdir /mnt/ssd_root sudo mount /dev/sda1 /mnt/ssd_root - 用
rsync命令完整复制文件(保留权限和属性,排除不需要的目录):
这里排除的sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/boot/*","/boot/efi/*"} / /mnt/ssd_root/boot和/boot/efi是内核和启动相关的目录,我们要保留在Optane上,所以不复制。
第四步:修改分区挂载配置(fstab)
现在要让系统知道哪个磁盘挂载到哪个目录,先查看各分区的UUID:
sudo blkid
记下来Optane的/boot、/boot/efi(如果是UEFI启动)分区的UUID,以及SSD分区的UUID。然后编辑SSD上的fstab文件:
sudo nano /mnt/ssd_root/etc/fstab
替换成以下内容(把UUID换成你自己的):
# SSD作为根目录,存放用户空间 UUID=你的SSD分区UUID / ext4 defaults 0 1 # Optane的/boot分区,存放内核 UUID=你的Optane/boot分区UUID /boot ext4 defaults 0 2 # 如果是UEFI启动,添加这一行挂载EFI分区 UUID=你的Optane/boot/efi分区UUID /boot/efi vfat defaults 0 1
保存退出:按Ctrl+O回车,再按Ctrl+X。
第五步:更新GRUB引导
为了让系统启动时能加载Optane上的内核并挂载SSD作为根目录,我们需要更新GRUB:
- 挂载系统临时目录,进入SSD的系统环境:
sudo mount --bind /dev /mnt/ssd_root/dev sudo mount --bind /proc /mnt/ssd_root/proc sudo mount --bind /sys /mnt/ssd_root/sys sudo chroot /mnt/ssd_root - 在chroot环境里更新GRUB配置:
update-grub - 安装GRUB到Optane磁盘(确保引导程序在Optane上):
grub-install /dev/nvme0n1 # 这里替换成你的Optane磁盘设备名,不是分区! - 退出chroot环境并卸载临时挂载:
exit sudo umount /mnt/ssd_root/dev sudo umount /mnt/ssd_root/proc sudo umount /mnt/ssd_root/sys sudo umount /mnt/ssd_root
第六步:重启测试
现在重启电脑,进入BIOS确认启动顺序是从Optane启动(因为GRUB引导程序在那里)。重启后,输入以下命令检查挂载情况:
df -h
你会看到/目录对应的是1TB SSD,/boot对应的是16GB Optane,说明配置成功了!之后所有新的文件和用户数据都会自动存在SSD上,内核则留在Optane里。
备注:内容来源于stack exchange,提问作者sinix




