页次: 1
昨天升级后出了很多问题,以前用 rsync 做过备份,备份硬盘可以单独正常启动和使用,参考的是这个帖子:
https://bbs.archlinuxcn.org/viewtopic.php?id=4611
我自己加了 --exclude=var/cache/pacman/ --exclude=lost+found --exclude=var/log/journal
恢复的时候,用archiso引导电脑,操作如下面:
# mkdir new old
# mount /dev/sda2 old
# mount /dev/sda1 old/boot
# mount /dev/sdb3 new
# mount /dev/sdb1 new/boot
# rsync -avixHAXKh --exclude=iso/ --exclude=swapfile --exclude=var/cache/pacman/ --exclude=lost+found --exclude=var/log/journal/ old/ new/
下面这一步忘记写了,现在增加上来:
# nano -w new/etc/fstab(修改uuid)
# arch-chroot new
# grub-install --target=i386-pc /dev/sdb
上面的过程都没有问题,下面一步会报错:
# grub-mkconfig -o /boot/grub/grub.cfg
错误是 failed to connect to lvmetad. Falling back to devie scanning. 如下面的图片:
这个错误导致我恢复到 sdb3的系统无法被 grub 识别到,引导菜单里没有sdb3系统选项。
reboot 后重新 arch-chroot ,再 grub-install/grub-mkconfig -o,报错依旧。
下面需要怎么操作才能救?
.
最近编辑记录 驿窗 (2017-11-01 20:05:19)
开源/Linux大众化,从驿窗开始~
离线
是不是需要 重新安装 grub 到 sdb ?
Archlinux + DWM,赞同 K.I.S.S 理念!
离线
没关系的。
离线
是不是需要 重新安装 grub 到 sdb ?
安装grub到sdb应该没出问题,grub 已经可以 win7; 但备份的 archlinux on sda 也有问题,也没出现在引导菜单里;
上面的图片,是报错后 reboot 重新安装 grub 到 sdb 的过程;reboot 之前,已经做过下面操作:
# mkdir new old
# mount /dev/sda2 old
# mount /dev/sda1 old/boot
# mount /dev/sdb3 new
# mount /dev/sdb1 new/boot
# rsync -avixHAXKh --exclude=iso/ --exclude=swapfile --exclude=var/cache/pacman/ --exclude=lost+found --exclude=var/log/journal/ old/ new/
# arch-chroot new
# grub-install --target=i386-pc /dev/sdb
# grub-mkconfig -o /boot/grub/grub.cfg
都是在最后一步( grub-mkconfig -o /boot/grub/grub.cfg)报错。
从过程看,安装 grub 到 sdb 这一步应该没有问题,因为安装操作(# grub-install --target=i386-pc /dev/sdb)没有报错,只是在生成引导菜单时报错;
最近编辑记录 驿窗 (2017-10-31 13:41:05)
开源/Linux大众化,从驿窗开始~
离线
没关系的。
没关系是指,与 grub 报错没有关系,需要找其它地方的问题?
开源/Linux大众化,从驿窗开始~
离线
不会需要重装吧?
那太...
开源/Linux大众化,从驿窗开始~
离线
依云 说:没关系的。
没关系是指,与 grub 报错没有关系,需要找其它地方的问题?
这个报错应该不影响你的使用。
离线
明白了,我想想。
开源/Linux大众化,从驿窗开始~
离线
昨晚仔细回顾了一下以前用 rsync 备份时的细节,找到了一些差异:
1、昨天用 rsync 恢复时,目标分区没有做格式化,只是删除了相关目录;而以前备份时,目标分区都做过格式化操作;
2、昨天用 rsync 恢复前,已经把目标 /boot 分区挂载到目标 / 分区;而以前备份时,没有挂载,/ 分区和 /boot 分区是各自单独用 rsync 分别进行备份的;
3、昨天用 rsync 恢复时,加了很多 --exclude的参数;
4、昨天用 rsync 恢复时,rsync -avixHAXKh old new 命令的源目录和目标目录,都没有加 / ,即使用的是 old new ,没用 old/ new/;这一点昨天在这里描述问题时也没注意,写错了
5、昨天修改 /etc/fstab (uuid) 时,并没有 arch-chroot;
今天,按照这些差异,做了重新恢复,操作如下 :
1、恢复之前,先执行 mkfs.ext4 ,格式化目标 / 分区和目标 /boot 分区;
2、恢复时,目标 / 分区和目标 /boot 分区 分别单独用 rsync 进行恢复,而不是挂载 /boot 分区后再一起恢复;
3、恢复时,去掉所有 --exclude相关参数,只使用 rsync -avixHAXKh old/ new/ ;
4、恢复时,使用 old/ new/ ,而不是 old new ;
5、修改 /etc/fstab (uuid) 时,先 arch-chroot 再修改;
按上面的操作,系统已经完全正常;
谢谢百合仙子提示的与 grub 报错无关!我一直以为是 grub-mkconfig 报错导致的问题,所以一直没能解决问题,方向不对;
下面是成功后的图片,也证明了百合仙子说的,与 grub-mkconfig 报错无关:即使报了这个错,grub也能够正常生成引导菜单并成功引导系统;
.
还有一点疑问的地方是,上面三个差异,哪一个会导致无法正常生成引导菜单的问题,有哪位来给帮助分析下;
我感觉和 old/ new/关系比较大一些,不知道对不对;
.
开源/Linux大众化,从驿窗开始~
离线
rsync 的源地址加不加 / 是不一样的:不加的话源地址目录会被同步到目标地址,加了就只同步里边的内容。
离线
rsync 的源地址加不加 / 是不一样的:不加的话源地址目录会被同步到目标地址,加了就只同步里边的内容。
果然如此~
找到原因的感觉真心不错~
不过这个 / 导致的目录与目录内容之间的关系,我需要再研究一下,不是很能理解差异;
开源/Linux大众化,从驿窗开始~
离线
页次: 1