我正在尝试将 root 和 home 复制到笔记本电脑内置驱动器上的其他分区,然后从它们启动 (root2 和 home2)。
一旦它工作起来,它就可以成为一个(几乎)实时备份,或者我可以在新的分区上将 Kubuntu Trusty 升级到 Utopic,并消除任何问题,同时仍然让 Trusty 在其他分区上运行,这样我就可以继续完成工作。
我也复制了主页,因为我不想处理诸如 Utopic 中的配置文件更改之类的事情,因为这可能会在我重新启动 Trusty 时搞砸它。
(当我在另一台笔记本上从 Oneiric 升级到 Precise 时,我使用单独的分区作为根目录,但只有一个主目录,这给了我一些乐趣。有些事情有点疯狂。)
它并没有完全发挥作用,所以我一定是错过了什么东西。
这是我所做的:
使用 gparted 将 /dev/sda5 和 /dev/sda7 重新格式化为 ext4(这应该已经清除了它们上面的内容)并再次将它们标记为 root2 和 home2。
停止修改文件(如 bittorrent)的用户任务。(但我没有从实时 CD 等启动。我在正在运行的系统上进行了复制。)
使用 rsync 复制所有内容,并保留权限等,从 root (/dev/sda3) 复制到 root2 (/dev/sda5),从 home (/dev/sda6) 复制到 home2 (/dev/sda7)。(sda3 和 sda5 的大小与 sda6 和 sda7 的大小相同。)
我认为这没有什么区别,但 sda3 标记为“root”,sda5 标记为“root2”,sda6 标记为“home”,sda7 标记为“home2”。
在 /media/bigbird/root2 上安装 /dev/sda5
编辑 /media/bigbird/root2/etc/fstab 并将 root 和 home 的 uuid 更改为 /dev/sda5 和 /dev/sda7 的 uuid。(通过运行 ls -l /dev/disk/by-uuid 并复制和粘贴它们来获取它们。)
运行 grub-customizer,更新启动菜单以在 /dev/sda5 上显示新的操作系统。
我以为我已经完成并重新启动,在 grub2 菜单上选择 /dev/sda5 上的操作系统。
启动看起来不错,但是当我运行 df 时,它显示 root 为 /dev/sda3 而 home 为 /dev/sda6 - 好像什么都没有改变。
再次挂载 /dev/sda5 并验证我对 fstab 的更改仍然存在。确实如此。
注意到 /etc/fstab~ 是编辑后剩下的,并将其删除。
尝试上网,但无法上网。我的 wifi 显示已连接,但有第二个连接实例可用,而这个实例不应该存在。尝试连接该实例,似乎可以连接,但我仍然无法上网。
重新启动到我的原始分区(/dev/sda3) - 它仍然运行良好并且上线没有问题。
显然,我错过了完成这项工作所需的一些步骤。
另外,我似乎让路由器不高兴了,因为当我以新方式启动时,它不让我连接到互联网。我没有尝试直接登录路由器。
复制所有内容、更改 fstab、grub 并重新启动似乎太简单了。
我需要做什么才能让它工作?
编辑:
我已经包含了我的 fstab 和一些其他内容,显示了下面的 UUID。
看起来直接的问题是两个分区上的 grub.cfg 都乱了。
下面的第一个代码块是它的一个片段,显示了 sda5 的精神分裂条目,其根分区设置正确,但启动映像设置为使用 sda3 上的启动映像。(其他条目有同样的问题。)它可能有其他错误。我对此不够熟悉。(仅供参考:sda5 上的内核版本有点旧,因为自从复制它以来,我已经对 sda3 进行了更新,并且还没有再次运行 rsync。)
我刚刚又看了一遍 grub 条目,完全看不出它是怎么工作的!它似乎在 sda3 上寻找内核 46 - 但该内核并不存在。那个较旧的内核只在 sda5 上,因为我还没有再次运行 rsync。
这可能是 grub-customizer 导致的。我不知道。可能需要先修复它,然后再查找其他问题。
由于生成了此文件,我需要间接修复它,但我不知道该怎么做。
/boot/grub/grub.cfg 片段:
### BEGIN /etc/grub.d/30_os-prober_proxy ###
menuentry "Kubuntu 14.04.2 LTS (14.04) (on /dev/sda5) Testing/backup" --class gnu-linux --class gnu --class os $menuentry_id_option '$
insmod part_msdos
insmod ext2
set root='hd0,msdos5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 2540779$
else
search --no-floppy --fs-uuid --set=root 2540779b-43d7-4e38-a227-68057afceb47
fi
linux /boot/vmlinuz-3.13.0-46-generic root=UUID=9aae2d22-4393-436a-a505-130db27e0e55 ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.13.0-46-generic
}
fstabs 和 UUID 信息:
sda3 (current working root partition)
bigbird@ramdass:/etc$ cat fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda3 during installation
UUID=9aae2d22-4393-436a-a505-130db27e0e55 / ext4 errors=remount-ro 0 1
# /home was on /dev/sda6 during installation
UUID=1be3e600-6582-4fe6-a8bc-b5479f1444b1 /home ext4 defaults 0 2
# swap was on /dev/sda8 during installation
UUID=3d9fe1af-25fe-4d28-82c9-5c2b4d895b79 none swap sw 0 0
bigbird@ramdass:/etc$
sda5 (copy of sda3 to be used as a fall back if the upgrade goes south, etc.)
bigbird@ramdass:/media$ sudo mount /dev/sda5 /media/work
bigbird@ramdass:/media$ cd work
bigbird@ramdass:/media/work$ ls
bin C:\nppdf32Log\debuglog.txt dev initrd.img lib libnss3.so opt run srv var vmlinuz.old
boot Desktop etc initrd.img.old lib64 lost+found root sbin usr vmlinuz
bigbird@ramdass:/media/work$ cd etc
bigbird@ramdass:/media/work/etc$ cat fstab
# /etc/fstab: static file system information.
##JJP Modified for root2 and home2
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / is on /dev/sda5 (root2)
UUID=2540779b-43d7-4e38-a227-68057afceb47 / ext4 errors=remount-ro 0 1
# /home is on /dev/sda7 (home2)
UUID=8e3aca35-c376-4a71-b6be-5c3c063a184b /home ext4 defaults 0 2
# swap was on /dev/sda8 during installation
UUID=3d9fe1af-25fe-4d28-82c9-5c2b4d895b79 none swap sw 0 0
bigbird@ramdass:/media/work/etc$
bigbird@ramdass:/media/work/etc$ ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 Apr 9 03:53 0A1258CF1258C0FD -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 9 03:53 180E32C60E329CA6 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 9 03:53 1be3e600-6582-4fe6-a8bc-b5479f1444b1 -> ../../sda6
lrwxrwxrwx 1 root root 10 Apr 9 03:53 2540779b-43d7-4e38-a227-68057afceb47 -> ../../sda5
lrwxrwxrwx 1 root root 10 Apr 9 03:53 3d9fe1af-25fe-4d28-82c9-5c2b4d895b79 -> ../../sda8
lrwxrwxrwx 1 root root 10 Apr 9 03:53 8e3aca35-c376-4a71-b6be-5c3c063a184b -> ../../sda7
lrwxrwxrwx 1 root root 10 Apr 9 03:53 9aae2d22-4393-436a-a505-130db27e0e55 -> ../../sda3
lrwxrwxrwx 1 root root 11 Apr 9 03:53 accbe348-0237-436f-b1b8-c642b95ec49c -> ../../sda10
lrwxrwxrwx 1 root root 10 Apr 9 03:53 b8f4a41f-5056-4b06-a190-14f9f1ea0244 -> ../../sda9
bigbird@ramdass:/media/work/etc$
答案1
尝试启动 Ubuntu 的 DVD,然后通过以下方式挂载 /dev/sda5:
mkdir /tmp/sda5
mount /dev/sda5 /tmp/sda5
然后,在此之后,编辑fstab
nano /tmp/sda5/etc/fstab
您应该查找以“/”开头的行。这应该/dev/sda5
不是/dev/sda3
。如果不是,则进行适当调整。还要确保您的/home
和其他设置在文件中正确无误,并指向正确的分区。
使用以下方法检查fdisk
:
sudo fdisk -l
或使用gparted
sudo apt-get install -y gparted
gksudo gparted
一旦 fstab 修复,请重新启动,现在您应该拥有 root 权限/dev/sda5