首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Mint不能引导我克隆的Ubuntu分区?(UUID发行)

问为什么Mint不能引导我克隆的Ubuntu分区?(UUID发行)
EN

Ask Ubuntu用户
提问于 2012-06-26 04:26:48
回答 3查看 7K关注 0票数 3

我一直在运行Ubuntu10.04,刚刚安装了Linux 13。我可能会全职使用Linux,但现在我想将它安装到第一个分区,但保持Ubuntu可引导。

代码语言:javascript
复制
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    58593279    29295616   83  Linux
/dev/sda2        58595326   976768064   459086369+   5  Extended
/dev/sda5       959980140   976768064     8393962+  82  Linux swap / Solaris
/dev/sda6        58595328   898696186   420050429+  83  Linux
/dev/sda7       898697216   959963135    30632960   83  Linux

sda6是一个包含我所有文档的数据分区。添加了新的sda7来创建双引导设置。我将sda1克隆到sda7

代码语言:javascript
复制
 dd if=/dev/sda1 of=/dev/sda7

当然,这也克隆了UUID,所以我为sda7创建了一个新的UUID

代码语言:javascript
复制
tune2fs /dev/sda7 -U random

当我用blkid列出UUID时,它确实发生了变化。然后,我将Linux安装到sda1中。我还安装了fstab来挂载sda7,这样我就可以将配置文件复制到新的操作系统上。我很好地引导到Linux,但是当我尝试引导到Ubuntu时,我收到一条消息(来自内存,可能是不完整的),即加载程序找不到/dev/disk/by-uuid/<old UUID>。

此时,我查看了grub.cfg,果然,列出了旧的UUID以及新的UUID:

代码语言:javascript
复制
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Ubuntu, with Linux 2.6.32-41-generic (on /dev/sda7)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set=root 3869f8c2-dcf8-4522-bc8b-91b0ce0040fa #This is the new UUID
    linux /boot/vmlinuz-2.6.32-41-generic root=UUID=72a5e117-9a39-4de1-9d28-53791d055ff5 ro quiet splash #This is the old UUID
    initrd /boot/initrd.img-2.6.32-41-generic
}

然后我尝试用sudo update-grub修复这个问题,但是我仍然得到了新的和旧的UUID的混合条目。我还尝试手工编辑grub.cfg以用新的UUID替换旧的UUID,但仍然得到相同的消息,即加载程序无法找到带有旧UUID的设备。

那么,update-grub从哪里读取旧UUID呢?以及如何修复grub,使其能够启动克隆的分区?

EN

回答 3

Ask Ubuntu用户

发布于 2012-06-26 15:35:43

我的猜测是,您不是在查看/编辑引导加载程序正在查看的相同的grub.cfg。请记住,您现在有两个不同的/boot/grub目录,并且引导加载程序需要知道要查找哪个目录。update-grub正在更新当前挂载的/boot/grub/grub.cfg中的grub.cfg。我猜引导加载程序正在查看另一个分区。在我喝完第一杯咖啡后,我也许可以通过你的帖子并做笔记来证实这一点,但现在这肯定是一个有根据的猜测。

我相信你需要做的是运行sudo grub-install --root-directory=/ /dev/sda。我给出了额外信息的完整版本-- --root-directory参数默认为/。

这个命令将在/dev/sda上重新安装引导加载程序,告诉它查看grub.cfg的“根目录”参数(/ boot /grub)。如果您希望您的grub.cfg位于不同的发行版中,您可以挂载它并指定一个不同的“根目录”,例如,如果/mnt/my_other_distro/被挂载在/mnt/my_other_distro中。

我喝咖啡的时候如果你有问题请告诉我。:)

编辑:(咖啡后)我现在看到一个重要的问题.您应该更改sda1的UUID,而不是sda7。然后,当您将Mint安装到sda1上时,如果您重新格式化,它也会更改它,但是如果不更改它,它可能会被混淆。通过更改旧Ubuntu安装的UUID,可以使其/etc/fstab中的所有挂载设置和GRUB菜单无效。我假设Mint不会重新生成菜单,而是只复制条目,所以它不在乎它是否正确。

运行update-grub纠正grub.cfg,但不纠正MBR中的grub代码;这仅使用进行更改。

Linux不知道grub.cfg中的条目实际上意味着什么,因为它可能指的是当时甚至不存在的驱动器。我认为,它只是将新条目添加到现有条目的顶部。

票数 5
EN

Ask Ubuntu用户

发布于 2012-06-26 16:44:52

好的,我想出了一个解决方案,这可能是我应该(或者不应该)首先做的。

在dd克隆Ubuntu分区之后,在安装Linux之前,我启动了Ubuntu。这时我意识到(查看分区表) UUID已经被复制,所以我生成了一个新的UUID。但是当我安装Linux时,它格式化了原来的分区并生成了一个新的UUID。基本上,我跑了

代码语言:javascript
复制
sudo tune2fs /dev/sda7 -U <old UUID>
sudo grub-update

并适当地重新设置浮点,一切都正常。从一开始就不应该更改克隆分区的UUID。

尽管如此,了解如何更改分区的UUID并仍然让引导程序找到它可能是有用的,所以Marty感谢上面的响应。

票数 2
EN

Ask Ubuntu用户

发布于 2013-04-27 07:03:30

这对其他人和我都是有帮助的。

编辑#1?

http://www.linuxjournal.com/content/copy-your-linux-install-different-partition-or-drive

这只是我发现的一个脚印,而looking.....and在我添加了下面这个之后,马上就离开了这里.

- edit#1的末端

我必须加上这个;

UUID将始终保持不变,不管格式化。如果需要的话,它只能在使用Dban或SecureDelete (每个人都可以在所有操作系统上使用HaremsBootCD或windows使用UltimateBootCD )(因为为了运行这些程序而注销/关闭操作系统)时才能更改,只有SecureDelete才能直接与HDD对话。通过/任何操作系统所做的任何格式都不能擦除UUID,即使是通过普通的liveCD (如上文所解释/说明)。

所以是的,正如我所猜测的,如果克隆的分区已经克隆了uuid(这是一个非常糟糕的想法和软件开发的管理不善,请离开.)可以安全地记录和记录驱动器和分区表的uuid,以便更正以后的fstab(当然使用任何live将其编辑为root )以引导linux。但我不认为或看不出克隆人如何拥有根分区表的任何部分。分区和分区表是两种不同的东西,一种是作为表上的一层放在另一种之上。所以UUID应该保持不变.除非该表上添加了新分区(以太主分区、逻辑分区或扩展分区)

所以,现在不谈了.Linux很有趣,因为我们可以做到这一点,但是linux也是一种痛苦,因为我们必须知道我们必须做并且必须做所有这些“棘手”的事情。

我喜欢/喜欢Ubuntu/Mint/Debian/CrunchBang/Slackware论坛,因为我们可以交换新旧解决方案。不像(大多数人和我都不喜欢/喜欢)在拱形论坛上,任何“解决”在仅仅12天或最坏的情况下都是非常过时的,和/或任何用户甚至因为试图说“谢谢你”而受到谴责(甚至在阅读了拱形手册之后)(也许我应该开始从LFS --linux从头开始制作我自己的操作系统;)可能比问其他用户是如何工作的更容易,谁知道(?)

总之,我是在google搜索/如果是克隆linux安装的一种方式时来到这里的。我不仅发现它是可以完成的,而且我还必须确保它有正确的UUID,除了克隆和引导之外,我还没有想到这一点。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/156063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档