三启动系统(Windows 11+双Ubuntu 22.04)克隆Ubuntu分区后的GRUB配置处理方案咨询
三启动系统(Windows 11+双Ubuntu 22.04)克隆Ubuntu分区后的GRUB配置处理方案咨询
嗨,我完全get到你的需求——用克隆分区做测试环境,不用虚拟机就能在真实硬件上折腾各种设置、扩展和应用,折腾完再同步回主系统,还能随时重置测试环境,这个思路超实用!下面我一步步给你讲清楚克隆后怎么处理GRUB的问题,还有关键的注意事项:
第一步:先做好分区克隆的基础准备
首先得把你的主Ubuntu分区克隆到那个空的测试分区,推荐两种方式:- 图形化工具选GParted(直观不容易出错,适合新手);命令行可以用
dd(注意一定要选对设备名,比如sudo dd if=/dev/sda2 of=/dev/sda3 bs=4M status=progress,if是源分区,of是目标测试分区,别搞反了!)。
不管用哪种方式,一定要在Ubuntu安装U盘的live环境下操作,避免主分区挂载时克隆导致文件损坏。
- 图形化工具选GParted(直观不容易出错,适合新手);命令行可以用
第二步:修改测试分区的UUID(核心!)
克隆后的测试分区和主Ubuntu的UUID完全一样,这会让GRUB和系统混淆,所以必须修改:- 在live环境里用
blkid或lsblk命令找到测试分区的设备名(比如/dev/sda3) - 执行命令生成新UUID:
sudo tune2fs -U random /dev/sdX(把sdX换成你的测试分区设备名) - 再用
blkid记下这个新的UUID,后面要用到。
- 在live环境里用
第三步:更新测试分区的fstab文件
测试系统启动时会依赖fstab里的UUID找根分区,必须把旧的UUID换成新的:- 创建挂载点并挂载测试分区:
sudo mkdir /mnt/test_ubuntu && sudo mount /dev/sdX /mnt/test_ubuntu - 编辑fstab:
sudo nano /mnt/test_ubuntu/etc/fstab,把里面所有原主Ubuntu的UUID替换成刚生成的新UUID,保存退出(按Ctrl+O回车,再Ctrl+X)。
- 创建挂载点并挂载测试分区:
第四步:修复GRUB,让系统识别两个Ubuntu
现在可以更新GRUB来扫描新的测试系统了,有两种方法:- 方法一(简单优先):直接从你的主Ubuntu系统启动,执行
sudo update-grub。GRUB会自动扫描所有磁盘上的操作系统,包括刚克隆好的测试Ubuntu,扫描完成后启动菜单里就会多出测试系统的选项。 - 方法二(主系统无法启动时用):回到live环境,挂载主Ubuntu根分区到
/mnt/main_ubuntu,然后绑定必要的系统目录:
切换到主系统根环境:sudo mount --bind /dev /mnt/main_ubuntu/dev sudo mount --bind /proc /mnt/main_ubuntu/proc sudo mount --bind /sys /mnt/main_ubuntu/syssudo chroot /mnt/main_ubuntu,执行update-grub,完成后输入exit退出chroot,重启系统即可。
- 方法一(简单优先):直接从你的主Ubuntu系统启动,执行
可选但推荐:区分两个Ubuntu启动项
默认情况下两个Ubuntu的启动菜单名称会一样,容易搞混,你可以修改测试系统的标识:
挂载测试分区后,编辑sudo nano /mnt/test_ubuntu/etc/os-release,把PRETTY_NAME改成类似Ubuntu 22.04 LTS (Test Environment),保存后再执行一次sudo update-grub,下次启动菜单里就会显示这个自定义名称了。
备注:内容来源于stack exchange,提问作者Daniel Moore
相关产品推荐
相关产品推荐

