2019/4/15
apt install -y syslinux syslinux-efi
mkdir /tmp/usb-efi /tmp/usb-live /tmp/usb-persistence /tmp/live-iso mount -oro debian-live-9.8.0-amd64-xfce.iso /tmp/live-iso #/dev/sdxはfdisk -lなどで確認 umount /dev/sdx parted /dev/sdx --script mktable gpt parted /dev/sdx --script mkpart EFI fat16 1MiB 10MiB parted /dev/sdx --script mkpart live fat16 10MiB 2GiB parted /dev/sdx --script mkpart persistence ext4 3GiB 100% parted /dev/sdx --script set 1 msftdata on parted /dev/sdx --script set 2 legacy_boot on parted /dev/sdx --script set 2 msftdata on #パーティションをフォーマットしたのちマウント #sdx3はフォーマットに時間がかかる場合がある #Debian-Liveからsdx2へファイルをコピーする しばらく待つ mkfs.vfat -n EFI /dev/sdx1; mount /dev/sdx1 /tmp/usb-efi mkfs.vfat -n LIVE /dev/sdx2; mount /dev/sdx2 /tmp/usb-live; cp -ar /tmp/live-iso/* /tmp/usb-live mkfs.ext4 -F -L persistence /dev/sdx3; mount /dev/sdx3 /tmp/usb-persistence; echo "/ union" > /tmp/usb-persistence/persistence.conf #grub-installに時間がかかる場合がある grub-install --removable --target=x86_64-efi --boot-directory=/tmp/usb-live/boot/ --efi-directory=/tmp/usb-efi /dev/sdx dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/mbr/gptmbr.bin of=/dev/sdx syslinux --install /dev/sdx2 #ディレクトリisolinuxがあるときはディレクトリ名をsyslinuxに変更 mv /tmp/usb-live/isolinux /tmp/usb-live/syslinux mv /tmp/usb-live/syslinux/isolinux.bin /tmp/usb-live/syslinux/syslinux.bin mv /tmp/usb-live/syslinux/isolinux.cfg /tmp/usb-live/syslinux/syslinux.cfg #grub/grub.cfg,syslinux/meng.cfg中の起動オプションを修正 sed --in-place 's#isolinux/splash#syslinux/splash#' /tmp/usb-live/boot/grub/grub.cfg sed --in-place '0,/boot=live/{s/\(boot=live .*\)$/\1 persistence/}' /tmp/usb-live/boot/grub/grub.cfg /tmp/usb-live/syslinux/menu.cfg sed --in-place '0,/boot=live/{s/\(boot=live .*\)$/\1 keyboard-layouts=jp locales=ja_JP.UTF-8 keyboard-model=jp106 timezone=Asia\/Tokyo/}' /tmp/usb-live/boot/grub/grub.cfg /tmp/usb-live/syslinux/menu.cfg #書き込みが完了したのちアンマウント sync;sync;sync;umount /tmp/usb-efi /tmp/usb-live /tmp/usb-persistence /tmp/live-iso rmdir /tmp/usb-efi /tmp/usb-live /tmp/usb-persistence /tmp/live-iso