而不是复制操作系统安装它

而不是复制操作系统安装它

我正在运行 kubuntu 16.04。我弄乱了 UEFI(很久以前),所以它没有它也能启动,但我的 Windows 10 分区无法启动。我目前不关心这个。

根目录在 sda4 上占 30GB,主目录在 sda5 上占 50GB。

一切运行良好。

我使用 rsync 将 root 复制到 root2,将 home 复制到 home2。我想使用这些新分区来尝试升级 kubuntu,同时保持主系统完好无损。

稍后,我想制作根目录和主目录的另一个副本仅用于备份(在我预留的其他分区中),并且我希望它也可以启动。

root2 在 sda6 上占 30GB,home2 在 sda7 上占 50GB。

我修改了 root2 上的 /etc/fstab 以反映新的分区标签。

当我尝试使用 root2(从我的 grub 菜单)启动时,我从 busybox 进入 ash shell 并且必须重新启动才能退出,所以我在 grub 或 Linux 中做错了什么,看起来它找不到要启动的位置或内容。

它显示了某种回溯,但我不明白它的意思,也没有看到它抱怨任何事情。

我问的几乎一样问题几年前我就曾想过,但一直没弄明白。

这个问题建议我需要 chroot 到新的根分区并运行 update-grub,因为我没有单独的启动分区。我快速尝试了一下,发现我不知道如何成功做到这一点。

我应该采取什么步骤来解决这个问题?


细节:

grub 中的 root 条目(由 grub-customizer 显示)

(这是可以按原样运行的部分。)

recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd0,gpt4'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4  a184c235-bbb7-4e0b-86ab-ab8f5d4a2941
else
  search --no-floppy --fs-uuid --set=root a184c235-bbb7-4e0b-86ab-ab8f5d4a2941
fi
        linux   /boot/vmlinuz-4.4.0-112-generic root=UUID=a184c235-bbb7-4e0b-86ab-ab8f5d4a2941 ro  quiet splash $vt_handoff
initrd  /boot/initrd.img-4.4.0-112-generic

/etc/fstab

bigbird@sananda:/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>
# / was on /dev/sda4 during installation
##UUID=a184c235-bbb7-4e0b-86ab-ab8f5d4a2941 /               ext4    errors=remount-ro 0       1
# /home was on /dev/sda5 during installation
##UUID=c81a6925-0631-484c-88d5-245e2e042652 /home           ext4    defaults        0       2
# swap was on /dev/sda10 during installation
##UUID=3ef9528c-1927-40fd-8729-33506d440101 none            swap    sw              0       0
## automount dataspace - JJP
##UUID=eb1774a1-2a44-4f03-8562-26b6339170f0 /media/dataspace  ext4    auto,rw,suid,exec,async,atime 0 1

LABEL=root /               ext4    errors=remount-ro 0       1
# /home was on /dev/sda5 during installation
LABEL=home /home           ext4    defaults        0       2
# swap was on /dev/sda10 during installation
UUID=3ef9528c-1927-40fd-8729-33506d440101 none            swap    sw              0       0
## automount dataspace - JJP
LABEL=dataspace /media/dataspace  ext4    auto,rw,suid,exec,async,atime 0 1

新的东西:

(我将内核复制到 root2 后,在 root 中进行了更新。这就是为什么这里的版本稍旧一些。一旦启动,我就会修复它。)

insmod part_gpt
insmod ext2
set root='hd0,gpt6'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6  caf3cb64-a51a-4298-bf34-5f97fa3b1308
else
  search --no-floppy --fs-uuid --set=root caf3cb64-a51a-4298-bf34-5f97fa3b1308
fi
linux /boot/vmlinuz-4.4.0-104-generic root=UUID=caf3cb64-a51a-4298-bf34-5f97fa3b1308 ro quiet splash $vt_handoff
initrd /boot/initrd.img-4.4.0-104-generic

/etc/fstab(在 sda6 上)

bigbird@sananda:/media/work/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>
# / on /dev/sda6
##UUID=caf3cb64-a51a-4298-bf34-5f97fa3b1308 /               ext4    errors=remount-ro 0       1
# /home on /dev/sda7
##UUID=a75b6be1-5336-4eaf-92db-da1393b3d412 /home           ext4    defaults        0       2
# swap was on /dev/sda10 during installation
##UUID=3ef9528c-1927-40fd-8729-33506d440101 none            swap    sw              0       0
## automount dataspace - JJP
##UUID=eb1774a1-2a44-4f03-8562-26b6339170f0 /media/dataspace  ext4    auto,rw,suid,exec,async,atime 0 1

LABEL=root2 /               ext4    errors=remount-ro 0       1
# /home on /dev/sda7
LABEL=home2 /home           ext4    defaults        0       2
# swap was on /dev/sda10 during installation
UUID=3ef9528c-1927-40fd-8729-33506d440101 none            swap    sw              0       0
## automount dataspace - JJP
LABEL=dataspace /media/dataspace  ext4    auto,rw,suid,exec,async,atime 0 1
bigbird@sananda:/media/work/etc$

bigbird@sananda:~/pq$ ls -l /dev/disk/by-label
total 0
lrwxrwxrwx 1 root root 11 Jan 11 21:43 dataspace -> ../../sda12
lrwxrwxrwx 1 root root 10 Jan 11 21:43 ESP -> ../../sda1
lrwxrwxrwx 1 root root 10 Jan 11 21:43 home -> ../../sda5
lrwxrwxrwx 1 root root 10 Jan 11 21:43 home2 -> ../../sda7
lrwxrwxrwx 1 root root 10 Jan 11 21:43 home_bak -> ../../sda9
lrwxrwxrwx 1 root root 10 Jan 11 21:43 root -> ../../sda4
lrwxrwxrwx 1 root root 10 Jan 11 21:43 root2 -> ../../sda6
lrwxrwxrwx 1 root root 10 Jan 11 21:43 root_bak -> ../../sda8
lrwxrwxrwx 1 root root 11 Jan 11 21:43 winbak -> ../../sda11
lrwxrwxrwx 1 root root 10 Jan 11 21:43 Windows10 -> ../../sda3
bigbird@sananda:~/pq$

bigbird@sananda:~/pq$ ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 11 Jan 11 21:23 3ef9528c-1927-40fd-8729-33506d440101 -> ../../sda10
lrwxrwxrwx 1 root root 10 Jan 11 21:23 4630B96A30B9619B -> ../../sda3
lrwxrwxrwx 1 root root 10 Jan 11 21:23 52B7-E591 -> ../../sda1
lrwxrwxrwx 1 root root 11 Jan 11 21:23 7E8C3007301FA4AD -> ../../sda11
lrwxrwxrwx 1 root root 10 Jan 11 21:23 8f034ecf-5d98-4753-80d1-8099cf3bb641 -> ../../sda9
lrwxrwxrwx 1 root root 10 Jan 11 21:23 a184c235-bbb7-4e0b-86ab-ab8f5d4a2941 -> ../../sda4
lrwxrwxrwx 1 root root 10 Jan 11 21:23 a75b6be1-5336-4eaf-92db-da1393b3d412 -> ../../sda7
lrwxrwxrwx 1 root root 10 Jan 11 21:23 c81a6925-0631-484c-88d5-245e2e042652 -> ../../sda5
lrwxrwxrwx 1 root root 10 Jan 11 21:23 caf3cb64-a51a-4298-bf34-5f97fa3b1308 -> ../../sda6
lrwxrwxrwx 1 root root 10 Jan 11 21:23 cce6b9f2-1dcc-4a53-b15b-73c595c2f6f5 -> ../../sda8
lrwxrwxrwx 1 root root 11 Jan 11 21:23 eb1774a1-2a44-4f03-8562-26b6339170f0 -> ../../sda12

答案1

调整/boot/grub/grub.cfg

您可以手动修改启动配置文件/boot/grub/grub.cfg(无需进入chroot)。我已经这样做了,我知道它是有效的。

修改文件以匹配对分区的引用(根分区的 UUID),这与您对 所做的操作相对应/etc/fstab。我不确定您是否可以使用标签,因此我建议您使用以下方式列出 UUID

sudo blkid

并使用您找到的第二个版本的根分区的值。

获得至少相同大小的第二个驱动器

您可能会发现获取至少相同大小的第二个驱动器并将原始驱动器克隆到该第二个驱动器更容易。“克隆整个驱动器”。那么您不需要修改任何内容,但是当它们都连接时,您不应该从任何一个驱动器启动计算机。

下载 Clonezilla iso 文件,创建一个实时驱动器(USB 驱动器或 DVD 磁盘),从中启动并克隆。

然后您可以使用外部盒中的第二个驱动器备份目的(使用您想要的任何备份方法/工具)。

答案2

而不是复制操作系统安装它

我会安装 Kubuntu,sda6而不是到处复制sda4sda6修补。优点是grub会自动为您设置三重启动。

安装操作系统后,复制软件包列表并重新安装软件包。以下是一些描述如何自动化该过程的问答:

自动安装软件包后,将sda5(/home) 复制到 (/home) 的顶部sda7。如果您在软件包安装之前执行此操作,则可能会覆盖某些数据/配置文件。

至于 UEFI 损坏,您可以将其作为单独的问题发布。

相关内容