Grub2 引导 Acronis True Image 2013 Rescue media
Published by on under Linux/Archlinux Tags: grub2,Acronis True Image,Recovery Manager 1630 views
起因
Win7 昨天突然无法启动了,准确地说是可以启动,但是启动后动弹不得,运行cmd 运行不了,d , e 等分区也打不开。。。
进入安全模式查看了下系统事件记录,貌似是有几个核心驱动无法加载。。。
算了,还是恢复吧,还好前不久做了一次备份。
用Acronis True Image 2013 Recovery Manager成功恢复系统,正常启动。
虽然只是备份了C盘,但是由于我的用户家目录和程序目录都是设置在D盘的,因此,一些在备份之后安装的软件,恢复之后,除开有些注册表信息不存在外,基本上是可以使用的。这一点特别是对于那种限时免费的软件特别重要~~
恢复之后,archlinux进不去了。
用easyBCD 2.2 增加linux启动项,它直接“停止响应”。
只好给加了个neogrub ,easyBCD带的这个neogrub貌似是个grub4dos.
我编译了它的menu.lst 文件,加上archlinux引导 :
1 2 3 4 | title Arch Linux HuangYe root (hd0,4) kernel /vmlinuz-2.6.39.2-ARCH-HuangYe-revision1 root=/dev/disk/by-uuid/d95683c2-582f-404f-8aa4-b0856858d4e0 ro 5 vga=773 initrd /kernel-2.6.39.2-ARCH-HuangYe-revision1.img |
这段配置信息是我从为知笔记里copy出来的,因为很久以前重装win7后也导致了linux无法启动,那时就记录下来了这些东西。
感觉bootmgr还是不太靠谱。
于是想通过neogrub进入archlinux后,直接把grub2安装到MBR.但是这样一来又有新的问题了,Acronis True Image 2013 Recovery Manager是默认安装到MBR的,直接把grub2安装到MBR会把Recovery Manager的引导给废除掉。
【先前我的引导是: Recovery Manager(MBR) --》 bootmgr (win7的引导程序) --》 grub2 (Archlinux的引导程序)】
因此得想个办法让Recovery Manager通过grub2来引导。
于是,有了此文。
注:Acronis家的 Recovery Manager 和 Rescue media 其实是同一个东西。只不过后者是生成的一个ISO文件。
折腾
备份MBR
1 | dd if=/dev/sdX of=/path/to/backup/mbr_backup bs=512 count=1 |
仅备份引导代码(除去最后 64字节的分区表):
1 | # dd if=/dev/sdX of=/path/to/backup/bootcode_backup bs=446 count=1 |
Install to 440-byte MBR boot code region
把GRUB2安装到MBR 前440字节:
1 2 3 4 | # modprobe dm-mod # grub-install --target=i386-pc --recheck --debug /dev/sda # mkdir -p /boot/grub/locale # cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo |
按照archlinux官方wiki: Booting an ISO Directly From GRUB2 的方法,在custom.cfg中添加自定义启动项。
挂载AcronisMedia.iso查看下其启动文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | sudo mount -tiso9660 AcronisMedia.iso /home/admin/tmp_mnt/ ┌─[admin@HuangYe] - [~/tmp_mnt/Recovery Manager] - [Mon Jan 14, 10:20] └─[$] <> ls bootmenu_logo.png f11-efi.xml icu38.so libgcc_s.so resource.so bootwiz.bin f11-grub.cfg icudt38.so mouse.com splash.run bootwiz.efi fox.so kernel64.dat osfiles.so threads.so cpp.so gen_bootmenu.bin kernel.dat ramdisk64.dat ti_boot.so f11.cfg graphapi.so libc.so ramdisk.dat ┌─[admin@HuangYe] - [~/tmp_mnt/Recovery Manager] - [Mon Jan 14, 10:20] └─[$] <> cat f11-grub.cfg [start] echo Starting Acronis Backup & Recovery 11... initrd ramdisk.dat /s kernel kernel.dat quiet media_for_linux quiet on mbrcrcs on vga vesa [continue] sysboot /mbr [bootmgr] echo Press F11 for Acronis Bootmenu... default start delay 30 bootmenu 389 |
根据上面的grub指令,我写出了下面的grub2配置项(自定义的配置项写在/boot/grub/custom.cfg ):
ps: 这里我的AcronisMedia.iso文件是放在D盘(第1硬盘的第2主分区)下的iso目录下面。写grub2配置项时要注意分区和路径。
1 2 3 4 5 6 7 8 | ┌─[admin@HuangYe] - [/boot/grub] - [Mon Jan 14, 10:21] └─[$] <> cat custom.cfg menuentry "AcronisMedia" { set isofile="/iso/AcronisMedia.iso" loopback loop (hd0,2)$isofile linux (loop)/Recovery\ Manager/kernel.dat quiet vga=788 initrd (loop)/Recovery\ Manager/ramdisk.dat } |
其实我的custom.cfg还把archlinux 的安装镜像也加进来了,以备救急:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | ┌─[admin@HuangYe] - [/boot/grub] - [Mon Jan 14, 10:26] └─[$] <> cat custom.cfg menuentry "AcronisMedia" { set isofile="/iso/AcronisMedia.iso" loopback loop (hd0,2)$isofile linux (loop)/Recovery\ Manager/kernel.dat quiet vga=788 initrd (loop)/Recovery\ Manager/ramdisk.dat } menuentry "archlinux-2013.01.04-dual.iso x86_64" { set isofile="/iso/archlinux-2013.01.04-dual.iso" loopback loop (hd0,2)$isofile linux (loop)/arch/boot/x86_64/vmlinuz archisolabel=ARCH_201301 img_dev=/dev/sda2 img_loop=$isofile initrd (loop)/arch/boot/x86_64/archiso.img } menuentry "archlinux-2013.01.04-dual.iso x86" { set isofile="/iso/archlinux-2013.01.04-dual.iso" loopback loop (hd0,2)$isofile linux (loop)/arch/boot/i686/vmlinuz archisolabel=ARCH_201301 img_dev=/dev/sda2 img_loop=$isofile initrd (loop)/arch/boot/i686/archiso.img } |
Generate GRUB2 BIOS Config file
1 | # grub-mkconfig -o /boot/grub/grub.cfg |
重启,测试OK。







wmtimes
现在讲的这些内容越来越看不懂了。再讲这些就没人来了。
荒野无灯
@依云必须是的~~
依云
Acronis Rescue Media 是 Linux?