从具有 MBR 的外部硬盘驱动器启动

从具有 MBR 的外部硬盘驱动器启动

我是 MBR/GPT 的新手。我生活在 Ubuntu 16.04 的世界里。

我用Ubuntu 实时 CD非常频繁。由于我有一个带有许多驱动器的外部硬盘,所以我的巧妙想法是将这个硬盘上的一个驱动器专门用作 LiveCD,这样就不必一直将微型 USB 闪存驱动器放在钱包里。

HDD 安装为/dev/sdb。以下是我尝试的。

  1. 使用“ sudo parted /dev/sdb print”,我发现该硬盘有 MBR,但没有 GPT。

  2. 接下来,使用gparted“我创建了一个驱动器“ /dev/sdb8”(不是主驱动器,我只能将其设为扩展分区上的逻辑驱动器)

  3. 使用“ sudo rsync -a”,我已将 LiveCD 的所有内容复制到此驱动器“ /dev/sdb8

  4. 使用gparted->manage flags选项,我已将标志“启动”设置为开启/dev/sdb8(这是唯一设置了该标志的驱动器)

  5. 通过 USB 连接驱动器重新启动。

唉!没用。

在(Dell T1700 型号)的一次性启动选项列表中<F12>,我甚至没有看到列出的外部硬盘驱动器...即,我无法从这里启动。

有人请帮忙!

显然,我需要了解一些基础知识,非常感谢您的解释/指示!!

答案1

Grub4dos可以安装在支持的文件系统上的 USB 存储棒/HDD 上。在这种情况下,它可以完全替换原始操作系统加载器。最好以 ntfs 格式格式化。

  1. 在某处备份磁盘的全部内容(所有分区)。
  2. 任何程序或 livecd(、、gparted等)都会删除所有分区并在整个磁盘上创建一个分区(可能需要使其处于活动状态并可启动)。acronisparagonntfs
  3. 在此处下载grub4doszip 压缩包:

https://sourceforge.net/projects/grub4dos/files/GRUB4DOS/grub4dos%200.4.4/grub4dos-0.4.4.zip/download

如果您在 Windows 中工作,则可以在那里使用 GUI 安装程序:

https://yadi.sk/d/dQYHiAFJTH8TR

  1. 要将 Grub4dos 安装到 USB 棒/HDD,请运行任何操作系统(Windows、任何 LiveCD Linux),连接目标设备 - USB 棒或 USB HDD,包的内容grub4dos-0.4.4.zip将解压到所用操作系统的可用位置。在解压的目录中,执行以下命令

    # bootlace.com --time-out=0 --no-backup-mbr --mbr-disable-floppy /dev/sdX

其中/dev/sdX- 是目标连接设备

如果您在 Windows 中工作,您可以运行 GUI 安装程序Grub4DOS.exe(抱歉,第一个窗口是俄语的,但从图片上看一切都很清楚)(通过"Browse"选择 USB-HDD,提取文件)

http://lazvm-comp.ucoz.ru/_pu/0/s63791143.jpg

我们在田野里放一只鸟"Disc",然后选择我们的 USB-HDD。列表中还会有其他硬盘的部分,请小心,以卷为指导。在这种情况下,USB 测试驱动器的容量为 4 GB(3812M)。其他设置不要触摸并单击安装。

http://lazvm-comp.ucoz.ru/_pu/0/s53051361.jpg

此后,所需的文件将出现在 USB-HDD 上,并且可启动。只需将所需的文件放入介质中,即可下载所需的操作系统和程序。

Menu.lst是最重要的配置文件。这本质上是一个文本文件,您可以使用普通记事本打开它。grldr是加载器本身。Boot文件夹中有一个名为的子文件夹gfxGrub4dos主题存储在其中。

您只需将 ISO 映像复制到磁盘并添加一个menu.lst大致如下所示的条目:

title Ubuntu Mini Installer
find --set-root /images/ubuntu-mini.iso
map --heads=0 --sectors-per-track=0 /images/ubuntu-mini.iso (0xff)
map --hook
chainloader (0xff)

它会找到 ISO、提取它、将其循环挂载到内存中(前三行),然后使用一个grub4dos技巧,通过链式加载刚刚提取的映像的引导加载程序。通常,这会加载 ISO 附带的 grub 实例,然后引导内核。优点是您不需要知道 ISO 映像内所有文件的位置,这由映像本身的引导加载程序处理。

“Fatter” live 映像通常将文件系统作为压缩映像发送,并使用类似的技巧为您提供一个正常工作的系统。但是,如果您使用引导加载程序的初始链运行这些映像,对各种文件系统的引用就会混淆,并且 ISO 将无法启动“Unable to find a medium containing a live file system”

解决方案是不链式加载下一个引导程序,而是grub4dos直接引导 ISO 的 Linux 内核。这可能需要一些反复试验,因为每个发行版似乎都有自己的惯例,规定实时映像的文件存放在何处(在/live/casper/boot或 ......)。为了引导 Ubuntu Desktop ISO,menu.lst条目如下所示:

title Ubuntu Desktop Live
find --set-root /images/ubuntu-desktop.iso
map --heads=0 --sectors-per-track=0 /images/ubuntu-desktop.iso (0xff) || map --mem /images/ubuntu-desktop.iso (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz.efi  file=/preseed/ubuntu.seed noprompt boot=casper iso-scan/filename=/image/ubuntu-desktop.iso quiet splash --
initrd /casper/initrd.lz

与之前的区别是:

chainloader (0xff)被替换为root (0xff): 不是链式加载 (0xff) 临时卷的引导加载程序,而是将临时卷设置为下一个命令的根卷 内核行: 这是 ISO 上 grub 实例的内核行,带有附加选项iso-scan/filenameinitrd 行: 这是 ISO 上 grub 实例的 initrd 行 找出要传递给内核的选项(以及所有文件的位置)的一种方法是先链式加载包含的引导加载程序并检查其启动配置。然后,您可以将这些参数复制到grub4dos menu.lst。尽管这些设置在不同的发行版之间有所不同,但发行版本身并不会经常更改它们。一旦您有了最喜欢的发行版的工作条目,您就有可能在下一个版本发布时批量重复使用它们。

来源:

http://lazvm-comp.ru/publ/sozdanie_multizagruzochnoj_usb_fleshki_na_osnove_zagruzchika_grub4dos/1-1-0-38

https://wdullaer.com/blog/2010/02/26/boot-iso-files-from-usb-with-grub4dos/ https://wdullaer.com/blog/2016/08/17/boot-live-disks-from-a-multiboot-usb-as-an-iso/

我的例子menu.lst

timeout=20
default 0
gfxmenu (hd0,0)/Boot/gfx/dragon.gz

title Windows XP BartPE Mini
map (hd0,0)/iso/bartpe_mini.iso (0xff)
map --hook
chainloader (0xff)
boot

title Win7 Live CD x86&x64
chainloader /XMPE/WinPE/bootmgr (0xff)
boot

title xubuntu-16.04.1-desktop-i386
kernel /ubuntu/vmlinuz iso-scan/filename=/ubuntu/xubuntu-16.04.1-desktop-i386.iso boot=casper only-ubiquity initrd=/casper/initrd.lz locale=ru_RU quiet splash --
initrd /ubuntu/initrd.lz

title Acronis Disk Director 12
map --mem --heads=0 --sectors-per-track=0 (hd0,0)/dd/ADD12_3270_ru-RU.iso (hd32)
map --hook
chainloader (hd32)
boot

title Acronis True Image 2017
map --mem --heads=0 --sectors-per-track=0 (hd0,0)/ti/acronis_true_image_2017.iso (hd32)
map --hook
chainloader (hd32)
boot

title Hiren's BootCD 9.3 Rus
map (hd0,0)/iso/Hiren's_BootCD_9.3.iso (0xff)
map --hook
chainloader (0xff)
boot

title MemTest86 5.1
map (hd0,0)/iso/Memtest86-5_1.iso (0xff)
map --hook
chainloader (0xff)
boot

title ERD 6.5_x86_Win7_RTM
map (hd0,0)/iso/ERD65_x86_Win7_RTM.iso (0xff)
map --hook
chainloader (0xff)
boot

title ERD 6.5_x64_Win7_RTM
map (hd0,0)/iso/ERD65_x64_Win7_RTM.iso (0xff)
map --hook
chainloader (0xff)
boot

title ReBoot
reboot

title ShutDown
halt

对应的目录结构为:

[0000] # user directory with any files on my disk
[Boot]
    [gfx]
        dragon.gz # theme screen `grub4dos`
    BCD
    BCD.log
    memdisk.gz
[dd]
    ADD12_3270_ru-RU.iso
[iso]
    [HDDScan-3.3] # from here I run the program HDDScan under windows liveCD (Win7 Live CD x86&x64)
    bartpe_mini.iso
    ERD65_x64_Win7_RTM.iso
    ERD65_x86_Win7_RTM.iso
    Hiren's_BootCD_9.3.iso
    Memtest86-5_1.iso
[ti]
    acronis_true_image_2017.iso
[ubuntu]
    initrd.lz
    vmlinuz
    xubuntu-16.04.1-desktop-i386.iso
[XMPE] # Windows 7 LiveCD
    [FONTS]
    [W7PePrograms]
    [WinPE]
        BOOT.SDI
        bootmgr
        grldr
        M1
        XM64.bat
        XM64.WIM
        XM86.bat
        XM86.WIM
    BCD
grldr
Menu.lst

menu.lst您可以通过类似编辑添加、删除任何启动映像

相关内容