我的分区表如下:
/dev/sda
- /dev/sda1 Arch Linux (200G)
- /dev/sda2 Swap (16G)
- /dev/sda3 Recovery (1G)
- /dev/sda4 Extended
- - /dev/sda5 Arch_201212 (256M)
- Free Space (15G)
我曾经将dd
最新的 arch-linux 安装 ISO 写入 /dev/sda5。如果我挂载该分区,所有文件都在那里。恢复分区仅包含 syslinux 加载程序,用于启动 /dev/sda4 之后的各个分区。
当我加载该条目时,它显示:
正在启动...
isolinux.bin 丢失或损坏
然后它尝试使用 PXE/网络适配器进行启动,但显然失败了。
虽然不是丢失。它位于 [ /dev/sda5 ]/isolinux/isolinux.bin
这是我的syslinux.cfg
/dev/sda3
默认 arch-recovery
PROMPT 0
TIMEOUT 100
UI menu.c32
菜单标题恢复分区
菜单颜色边框 30;44 #40ffffff #a0000000 std
菜单颜色标题 1;36;44 #9033ccff #a0000000 std
菜单颜色选择 7;37;40 #e0ffffff #20ffffff 全部
菜单颜色取消选择 37;44 #50ffffff #a0000000 std
菜单颜色帮助 37;40 #c0ffffff #a0000000 std
菜单颜色 timeout_msg 37;40 #80ffffff #00000000 std
菜单颜色超时 1;37;40 #c0ffffff #00000000 std
菜单颜色 msg07 37;40 #90ffffff #a0000000 std
菜单颜色 tabmsg 31;40 #30ffffff #00000000 std
标签 arch-recovery
菜单标签 Arch Linux Live CD
COM32 chain.c32
APPEND hd0 5
标签 hdt
菜单标签 HDT(硬件检测工具)
COM32 hdt.c32
标签 reboot
菜单标签 重新启动
COM32 reboot.c32
标签 off
菜单标签 关机
COMBOOT poweroff.com
答案1
使用 Knoppix 的示例。
创建挂载点以使用环回挂载 ISO:
mkdir /mnt/LiveISO
挂载映像:
mount -t iso9660 -o loop,ro /DOWNLOADS/Knoppix-3.7-en.iso /mnt/LiveISO
在您要从中启动的设备上创建一个目录:
mkdir /mnt/hda4/KNOPPIX
将已挂载映像的内容复制到该目录:
cp /mnt/LiveISO/KNOPPIX/* /mnt/hda4/KNOPPIX/
将内核和 initrd 文件复制到您的启动设备:
cp /mnt/LiveISO/boot/* /boot
蛴螬:
title KNOPPIX root (hd0,0) kernel /linux26 ramdisk_size=100000 fromhd=/dev/hda4 initrd /minirt26.gz savedefault boot
Lilo:
image=/boot/linux26 initrd=/boot/minirt26.gz label=KNOPPIX append="ramdisk_size=100000 fromhd=/dev/hda4"
基本思路是将 iso 的内容复制到一个分区。然后,在当前的 linux 操作系统中,将 iso 中的内核和 initrd 映像复制到当前的启动目录。最后,编辑 LILO,使其指向刚刚复制的内核和 initrd 映像,并确保添加“fromhd”行,以便“livecd”知道其余 knoppix 文件的位置。我知道类似的说明也适用于 kanotix(这很有意义,因为它是基于 knoppix 的)。其他 iso(例如非 livecd)的唯一可能问题是它们可能没有像 knoppix 发行版那样的“fromhd”选项。
在此处找到:从硬盘启动 ISO 映像?
答案2
我希望对原始问题给出一个明确的答案,这里重述为“为什么在 dd_bitcopied_isoimage 到 /dev/sda5 之后,isolinux.bin 丢失或损坏了?”(没有不回答就无法解决的替代命题!)
isolinux.bin 是 isofs_image 的引导加载程序。当使用 mkisofs(或任何克隆,如 genisoimage、wodim 等)或较新的 xorriso 创建 isoimage 时,该 isofsimage 上的 isolinux.bin 的物理位置被硬编码到主 mbr 或 isohybrid-mbr 中,以便在启动时 BIOS 或类似固件可以访问它。
dd isoimage
保持/dev/sda
该精确位置以便能够启动。
dd isoimage
保持/dev/sda5
相对于mbr 所在的位置/dev/sda5
不变!!! 只需尝试:/dev/sda
qemu-system-x_YYYY /dev/sda5
去理解它!