Unix/USBメモリブート

EFI領域を利用してLinuxを起動する

## Under Writting Now

https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.xz

cp com32/elflink/ldlinux/ldlinux.e64 /mnt/tmp/EFI/BOOT/ cp efi/syslinux.efi /mnt/tmp/EFI/BOOT/

bios/linux/syslinux -i /dev/sdb2 -d /EFI/BOOT

dd if=bios/mbr/mbr.bin of=/dev/sdb bs=512 count=1

###

vfat領域を利用してLinuxを起動する

syslinux をUSBメモリ(/dev/sdb)へインストールする

1. USBメモリの準備

 VFATパーティションがあるUSBメモリを用意する

 Bootフラグが有効になっていること.有効でない場合はfdiskコマンドで設定しておく.

# /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

2. LinuxOSのカーネル,initrdイメージの配置

# mount /dev/sdb1 /mnt
# mkdir /mnt/syslinux
# cp vmlinuz /mnt/syslinux/vmlinuz
# cp initrd.gz /mnt/syslinux/initrd.gz
# umount /mnt

3. syslinxu のインストール

 vfat 領域に syslinux コマンドで起動プログラムをインストールし,

 メモリデバイスのMBRにdd コマンドでブートコードを書き込む(パーティション分割した場合のみ)

# syslinux /dev/sdb1
# dd if=/usr/share/syslinux/mbr.bin of=/dev/sdb

 起動パラメータ類の設定とファイル確認

# 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

ext2,3領域を利用してLinuxを起動する

extlinux をUSBメモリ(/dev/sdb)へインストールする

1. USBメモリの準備

 ext3パーティションがあるUSBメモリを用意する

 Bootフラグが有効になっていること.有効でない場合はfdiskコマンドで設定しておく.

# /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

2. LinuxOSのカーネル,initrdイメージの配置

# mount /dev/sdb1 /mnt
# mkdir /mnt/extlinux
# cp vmlinuz /mnt/extlinux/vmlinuz
# cp initrd.gz /mnt/extlinux/initrd.gz
# umount /mnt

3. extlinxu のインストール

 ext3 領域に extlinux コマンドで起動プログラムをインストールし,

 メモリデバイスのMBRにdd コマンドでブートコードを書き込む(パーティション分割した場合のみ)

# 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

 起動パラメータ類の設定とファイル確認

# 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



---
update at 2020/09/11 15:11:16

※注:当サイトは特定環境において確認できた事象のみを記述しています。他の環境での動作は一切保証しません。