首先,有时我需要在装有 Windows 7 或更高版本的任意计算机之间传输数据(在极少数情况下,需要从 Mac 传输数据或向 Mac 传输数据)。为此,我更喜欢使用带有 FAT32 分区的 USB 驱动器。其次,我偶尔会从外部媒体启动 Debian Live。为此,我通常会使用完全免费的 USB 驱动器dd
从http://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/,但我准备改变这种创建实时分区的方式。
如何实现这两个目标使用同一个 USB 驱动器?(是的,我知道持久性是不够的:驱动器上的 FAT32 分区必须可在 Windows 下使用,并且 Debian live 必须可启动。是的,我尝试过 Unetbootin;它没有产生可启动的 pendrive;不要问我为什么,我不知道。)
答案1
许多实时 Linux 发行版支持在启动期间回送安装 iso,而 GRUB 支持从 ISO 中加载 Linux。结合这些,就可以将实时 Linux iso 作为一个文件来启动。这应该可以满足您的要求,但请注意,有些发行版不支持此功能,或者至少它们没有正式支持此功能。
首先将 GRUB 安装到您的 USB 驱动器:
将 USB 挂载到 mnt
mount /dev/sdb1 /mnt/usb
要安装以便旧版 BIOS 启动 USB,请使用:
grub-install --target=i386-pc --boot-directory=/mnt/usb/boot /dev/sdb
对于 UEFI 使用:
grub-install --target=x86_64-efi --efi-directory=/mnt/usb --boot-directory=/mnt/usb/boot --removable
如果 /mnt/usb/boot 不存在,则使用 mkdir 创建它,然后执行以下操作:
grub-mkconfig -o /mnt/usb/boot/grub/grub.cfg
然后编辑 /mnt/usb/boot/grub/grub.cfg :
menuentry "Debian live ISO" {
insmod loopback
insmod iso9660
set isofile="/debian.iso"
loopback loop $isofile
linux (loop)/install.amd/vmlinuz findiso=$isofile vga=788 -- quiet
initrd (loop)/install.amd/initrd.gz
}