🎬 HoRain 云小助手:个人主页
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
目录
一、原理简析
通过GRUB引导参数重定向根分区
通过修改GRUB配置文件:
- 直接指定新磁盘的UUID/路径为根目录
- 更新initramfs确保磁盘驱动加载
- 无需调整BIOS启动顺序
二、操作步骤(以Ubuntu为例)
1. 准备工作
# 查看当前根目录所在分区
df -h | grep -w /
# 获取新磁盘UUID(示例输出:b219c3c0-5e9d-4a07-8c21-3f1a9c6d1a1e)
sudo blkid /dev/sdX
# 备份关键文件
sudo cp /etc/fstab /etc/fstab.bak
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
2. 临时挂载新磁盘
sudo mkdir /mnt/new_root
sudo mount /dev/sdX1 /mnt/new_root # 替换为实际分区
3. 修改GRUB配置
# 编辑GRUB配置文件
sudo nano /etc/default/grub
# 修改关键参数(示例)
GRUB_CMDLINE_LINUX="root=UUID=b219c3c0-5e9d-4a07-8c21-3f1a9c6d1a1e"
4. 更新引导配置
sudo update-grub
sudo update-initramfs -u -k all
5. 验证配置(重要!)
# 查看grub.cfg中是否包含新UUID
grep 'linux.*root' /boot/grub/grub.cfg
# 测试挂载(返回/dev/sdX1则成功)
findmnt -n -o SOURCE /
三、故障排查(附解决方案)
现象 | 原因分析 | 解决方案 |
---|---|---|
启动卡在initramfs | 未正确更新initramfs | 用LiveUSB重新生成initramfs |
报错"unknown filesystem" | UUID填写错误 | 检查blkid获取正确UUID |
进入emergency mode | fstab未更新 | 挂载后修正/mnt/new_root/etc/fstab |
GRUB引导列表无变化 | 未执行update-grub | 检查/etc/default/grub权限 |
四、永久生效设置
# 将新分区写入fstab
echo "UUID=b219c3c0-5e9d-4a07-8c21-3f1a9c6d1a1e / ext4 defaults 0 1" | sudo tee -a /etc/fstab
# 设置默认启动项(查看grep菜单顺序)
sudo grub-set-default X # X为GRUB菜单序号
sudo update-grub
五、注意事项
- 数据安全:操作前务必用
dd
或rsync
完整备份原系统 - 驱动兼容:新旧磁盘控制器类型需一致(如SATA/NVMe)
- 分区对齐:建议使用GPT分区表+4K对齐
- 测试建议:在虚拟机中预演操作流程(推荐VirtualBox)
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙