收起左侧

联想个人云X1 飞牛系统盘迁移至M.2大硬盘踩坑分享

0
回复
83
查看
[ 复制链接 ]

1

主题

2

回帖

0

牛值

江湖小虾

适用场景

  • 联想个人云X1,原系统装在板载MMC存储(约15G),空间不足
  • 已加装M.2大容量硬盘,通过DD克隆或镜像还原将系统复制到M.2盘
  • 克隆后从M.2启动卡在 grub>提示符,无法进入系统

问题根源

  1. UUID冲突:克隆后M.2盘的系统分区UUID与MMC完全一样,导致GRUB和fstab指向混乱
  2. GRUB引导未正确写入:即使修复了UUID,引导程序仍指向旧盘或不完整

准备工作

  • 确保能从板载MMC正常启动进入飞牛系统
  • 通过SSH登录,所有操作在root权限下进行
  • M.2硬盘在系统中识别为 /dev/sda(请根据实际情况调整)

完整操作步骤

第一步:给M.2系统分区换新UUID

克隆后两个盘的UUID相同是问题根源,必须先让它们不一样。

先卸载M.2分区(确保未挂载):

sudo umount /mnt 2>/dev/null

修复文件系统并生成随机新UUID:

sudo fsck -f -y /dev/sda2
sudo tune2fs -U random /dev/sda2

注意:飞牛OS没有 e2fsck命令,用 fsck替代。如果提示 tune2fs需确认,等5秒自动继续或手动输入 y


第二步:更新M.2盘内的GRUB配置和fstab

挂载M.2系统分区:

sudo mount /dev/sda2 /mnt

获取新UUID并替换旧配置(飞牛OS没有 blkid命令,用 lsblk替代):

NEW_UUID=$(lsblk -no UUID /dev/sda2) && OLD_UUID=$(sudo grep -oP 'root=UUID=\K[a-f0-9-]+' /mnt/boot/grub/grub.cfg | head -1) && sudo sed -i "s/$OLD_UUID/$NEW_UUID/g" /mnt/boot/grub/grub.cfg && sudo sed -i "s/$OLD_UUID/$NEW_UUID/g" /mnt/etc/fstab && echo "旧UUID: $OLD_UUID -> 新UUID: $NEW_UUID 替换完成"

注意:如果分区已挂载提示 already mounted,去掉 mount命令直接执行后面的替换即可。如果遇到权限报错(Permission denied),给 grepsed前面加上 sudo


第三步:通过chroot在M.2系统内重装GRUB

只改配置不够,必须在M.2系统环境里完整安装引导程序。

挂载系统运行时目录并切入chroot:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt

验证已进入M.2系统环境:

df -h /

显示 /dev/sda2且容量为大盘即确认成功。

重装GRUB(联想X1使用传统BIOS引导):

grub-install --target=i386-pc /dev/sda
update-grub

关键点:必须加 --target=i386-pc参数,否则GRUB可能误判平台报错:modinfo.sh doesn't exist. Please specify --target

退出chroot并卸载:

exit
sudo umount /mnt/dev /mnt/proc /mnt/sys /mnt

第四步:扩容分区使用全部空间

重启并选择从M.2硬盘启动(开机按 F11):

sudo reboot

确认已从M.2启动:

df -h /

应显示 /dev/sda2

扩展分区到硬盘全部空间:

sudo parted /dev/sda resizepart 2 100%

交互提示

  • Fix/Ignore? → 输入 fix
  • Partition number? → 输入 2
  • Yes/No? → 输入 yes
  • End? [15.6GB]? → 输入 100%
  • 最后提示 update /etc/fstab可忽略,之前已修复

扩展文件系统:

sudo resize2fs /dev/sda2

验证最终容量:

df -h /

常见踩坑汇总

问题 原因 解决
克隆后卡在 grub> UUID冲突 tune2fs -U random换新UUID
blkid: command not found 飞牛OS精简掉了 lsblk -no UUID替代
e2fsck: command not found 同上 fsck -f -y替代
Permission denied修改文件 权限不足 grep/sed前加 sudo
modinfo.sh doesn't exist GRUB平台猜错 --target=i386-pc
进系统后df显示还是15G 从MMC启动了 重启按F11选M.2盘

后续:插回数据盘

原有数据盘完全不受影响,插回后数据、分区均保持原样。建议进系统后执行一次 sudo update-grub刷新启动菜单。


教程整理自联想个人云X1实测过程,供有相同需求的朋友参考。如有疑问欢迎讨论。

收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则