SakamonWeb
New
Tools
Index
Edit
Linux/USBメモリブート
<<<EFI領域を利用してLinuxを起動する>>> EFIブートはMBRを利用せずに、直接FAT領域にあるローダを読み込む仕様のようだ。((br)) 但しディレクトリ名は固定で「/EFI/BOOT/」である必要がある。※もしかするとBOOTは不要?。小文字でもいける? 1. USBメモリの準備(従来のMBR版と同じ) VFATパーティションがあるUSBメモリを用意する Bootフラグが有効になっていること.有効でない場合はfdiskコマンドで設定しておく. <pre> # /sbin/fdisk -l /dev/sdb Disk /dev/sdb: 131 MB, 131072000 bytes 5 heads, 50 sectors/track, 1024 cylinders, total 256000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xb0bcd68e Device Boot Start End Blocks Id System /dev/sdb1 * 2048 133119 65536 b W95 FAT32 /dev/sdb2 133120 255999 61440 83 Linux # /sbin/mkfs.vfat -F32 /dev/sdb1 </pre> 2. ブートファイル類の配置 Linuxカーネルとinitrd.gz <pre> # mount /dev/sdb1 /mnt # mkdir -p /mnt/EFI/BOOT # cp vmlinuz /mnt/EFI/vmlinuz # cp initrd.gz /mnt/EFI/initrd.gz </pre> ブート設定ファイル <pre> # cat > /mnt/EFI/BOOT/syslinux.cfg <<EOF default current prompt 1 timeout 30 label current kernel /EFI/vmlinuz append initrd=/EFI/initrd.gz EOF </pre> 3. syslinux のインストール syslinux の version6.0以上がEFI対応しているらしい。 https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.gz <pre> # mount /dev/sdb1 /mnt/ # tar xvfz syslinux-6.03.tar.gz # cd syslinux-6.03 # cp com32/elflink/ldlinux/ldlinux.e64 /mnt/EFI/BOOT/ # cp efi/syslinux.efi /mnt/EFI/BOOT/ </pre> #MBR起動も併用可能。設定しておくと対応環境が増えて便利。 <pre> # syslinux -i /dev/sdb1 -d /EFT/BOOT ※「-d directory」はMountポイントでなく、/dev/sdb1を基準にしたパス # dd if=/usr/share/syslinux/mbr.bin of=/dev/sdb </pre> <<<MBR + vfat領域を利用してLinuxを起動する>>> syslinux をUSBメモリ(/dev/sdb)へインストールする 1. USBメモリの準備 VFATパーティションがあるUSBメモリを用意する Bootフラグが有効になっていること.有効でない場合はfdiskコマンドで設定しておく. <pre> # /sbin/fdisk -l /dev/sdb Disk /dev/sdb: 131 MB, 131072000 bytes 5 heads, 50 sectors/track, 1024 cylinders, total 256000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xb0bcd68e Device Boot Start End Blocks Id System /dev/sdb1 * 2048 133119 65536 b W95 FAT32 /dev/sdb2 133120 255999 61440 83 Linux # /sbin/mkfs.vfat -F32 /dev/sdb1 </pre> 2. ブートファイル類の配置 Linuxカーネルとinitrd.gz <pre> # mount /dev/sdb1 /mnt # mkdir /mnt/syslinux # cp vmlinuz /mnt/syslinux/vmlinuz # cp initrd.gz /mnt/syslinux/initrd.gz # umount /mnt </pre> 3. syslinux のインストール vfat 領域に syslinux コマンドで起動プログラムをインストールし, メモリデバイスのMBRにdd コマンドでブートコードを書き込む(パーティション分割した場合のみ) <pre> # syslinux /dev/sdb1 # dd if=/usr/share/syslinux/mbr.bin of=/dev/sdb </pre> 起動パラメータ類の設定とファイル確認 <pre> # mount /dev/sdb1 /mnt # cat > /mnt/syslinux/syslinux.cfg default linux label linux kernel /syslinux/vmlinuz append root=/syslinux/initrd.gz ... 確認 ... # ls /mnt ldlinux.sys syslinux # ls /mnt/syslinux initrd.gz vmlinuz syslinux.cfg # umount /dev/sdb1 </pre> <<<MBR + ext2,3領域を利用してLinuxを起動する>>> extlinux をUSBメモリ(/dev/sdb)へインストールする 1. USBメモリの準備 ext3パーティションがあるUSBメモリを用意する Bootフラグが有効になっていること.有効でない場合はfdiskコマンドで設定しておく. <pre> # /sbin/fdisk -l /dev/sdb Disk /dev/sdb: 131 MB, 131072000 bytes 5 heads, 50 sectors/track, 1024 cylinders, total 256000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xb0bcd68e Device Boot Start End Blocks Id System /dev/sdb1 2048 133119 65536 b W95 FAT32 /dev/sdb2 * 133120 255999 61440 83 Linux </pre> 2. ブートファイル類の配置 Linuxカーネルとinitrd.gz <pre> # mount /dev/sdb1 /mnt # mkdir /mnt/extlinux # cp vmlinuz /mnt/extlinux/vmlinuz # cp initrd.gz /mnt/extlinux/initrd.gz # umount /mnt </pre> 3. extlinux のインストール ext3 領域に extlinux コマンドで起動プログラムをインストールし, メモリデバイスのMBRにdd コマンドでブートコードを書き込む(パーティション分割した場合のみ) <pre> # mount /dev/sdb2 /mnt # /sbin/extlinux -i /mnt/extlinux /mnt/extlinux/ is device /dev/sdb2 # dd if=/usr/share/syslinux/mbr.bin of=/dev/sdb </pre> 起動パラメータ類の設定とファイル確認 <pre> # mount /dev/sdb1 /mnt # cat > /mnt/extlinux/extlinux.conf default linux label linux kernel /extlinux/vmlinuz append root=/extlinux/initrd.gz ... 確認 ... # ls /mnt lost+found extlinux # ls /mnt/extlinux extlinux.conf initrd.gz vmlinuz # umount /dev/sdb1 </pre>
Sign:
freeze
sage
Attachment
New:
Sign:
Rename
Title:
Sign: