首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dd还原将不会启动。

使用dd还原将不会启动。
EN

Unix & Linux用户
提问于 2013-07-04 05:43:20
回答 3查看 4K关注 0票数 1

我现在的硬盘正在失败,我用dd支持它。在将映像还原到新的硬盘上之后,也使用dd,新系统将不会启动。它通过BIOS初始化,然后屏幕变黑,并通过BIOS重新启动和返回。

这是旧的HDD设置:

代码语言:javascript
复制
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048   103426047    51200000   83  Linux
/dev/sda3       103426048   113666047     5120000   82  Linux swap / Solaris
/dev/sda4       113666048  1250263039   568298496    5  Extended
/dev/sda5       113668096   523268095   204800000   83  Linux
/dev/sda6       523270144   625670143    51200000   83  Linux
/dev/sda7       625672192  1250263039   312295424   83  Linux

/dev/sda1/boot

/dev/sda2/

我已经完成了这两个分区的dd

/dev/sda7/home使用rdiff-backup支持的。

我漏掉了什么,怎么纠正呢?

编辑1:

fstab

代码语言:javascript
复制
UUID=80c4cde7-b697-46d5-a376-24a6d6a725af /                       ext4    defaults        1 1
UUID=c1967ecb-839c-45d1-bf5b-bba046af3892 /boot                   ext4    defaults        1 2
UUID=c18998dd-0e60-4945-999f-1296b6e69307 /home                   ext4    defaults        1 2
UUID=78d39426-74d4-4299-b3ba-c9ab27a60e17 /mnt/m                  ext4    defaults        1 2
UUID=53574e4d-8af4-4aeb-bcf5-c74c7bbe4d7c /mnt/p                  ext4    defaults        1 2
UUID=3902f59a-f7a8-4ab8-896d-93642a09f083 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

编辑2:

我在dd回答中提到了MBR,也不得不手动修改fstab以匹配新的分区‘UUID,如blkid所示。

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2013-07-04 14:42:34

在我看来,你的新硬盘没有它的主启动记录(MBR)。这就是为什么没有出现GRUB的原因,您的系统只需报告"OS未找到!“或者类似的。

为了将旧的MBR传输到新驱动器,您可能需要看看这个howto:http://www.cyberciti.biz/faq/howto-copy-mbr/

简言之,它归结为以下步骤,这些步骤是我无耻地从上述来源窃取的:

  • root@machine:~# dd if=/dev/sda of=/tmp/mbrsda.bak bs=446 count=1

假设您的旧硬盘名为"sda",这将有效地将其引导扇区备份到文件/tmp/mbrsda.bak

  • root@machine:~# dd if=/tmp/mbrsda.bak of=/dev/sdb bs=446 count=1

在上面,我从原来的源代码中修改了用于"bs“的值,因为我假设您的新HDD分区表不同于旧的HDD,所以我认为没有必要对它进行备份。

我希望这能帮助解决你的问题。

票数 2
EN

Unix & Linux用户

发布于 2013-07-04 12:09:08

您也需要复制引导加载程序(除非您从CD引导并重新安装它)。可以通过在第一个分区之前复制所有扇区来实现这一点。但是,您可能必须在以后恢复分区表(或者在复制时忽略它)。

票数 0
EN

Unix & Linux用户

发布于 2021-05-28 09:26:37

对于UEFI+GPT分区,我尝试检查BIOS设置,从另一个磁盘应用MBR备份(如果您从/dev/sda设备备份/还原到磁盘设备(/dev/sda等),但所有这些都是不必要的。我将源代码系统复制到14个类似的物理框中,在“dd”整个磁盘之后单独恢复MBR没有什么区别。现在我了解到MBR中的GRUB2代码必须嵌入了特定于旧磁盘的sth. ),我只需要重新安装grub:

  • 找到任何UEFI mode grub引导CD/USB,引导到grub控制台(不需要引导到活动系统,只需在grub2启动菜单屏幕上按c即可。注意:使用grub1/grub4dos控制台,您看不到GPT分区。)
  • 通过ls (hd<press tab>探测磁盘,找到原始的grub.cfg文件。我的位置在(hd0,gpt1)/boot/efi/grub.cfg,然后是configfile (hd0,gpt1)/boot/efi/grub.cfg类型。现在你刚刚启动了你原来的系统。
  • 在启动新磁盘上的原始系统后,通过发出sudo grub-install /dev/sda0将grub重新安装到新磁盘的MBR中。(通常为/dev/sda0,但磁盘代码可能有所不同。因此,如果不确定,请检查您的系统所在的磁盘)。
  • 删除外部启动设备,重新启动,您的系统现在应该启动。
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/81708

复制
相关文章

相似问题

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