Skip to content

Instantly share code, notes, and snippets.

@znz
Created July 14, 2012 15:44
Show Gist options
  • Save znz/3111861 to your computer and use it in GitHub Desktop.
Save znz/3111861 to your computer and use it in GitHub Desktop.
HDD 上の KNOPPIX の ISO イメージから直接起動する GRUB2 の設定
#!/bin/sh
# LICENSE: MIT License. Copyright (C) 2012 Kazuhiro NISHIYAMA
set -e
IMAGES=/boot/knoppix
. /usr/lib/grub/grub-mkconfig_lib
knoppix_add () {
echo "Found knoppix iso image: $image" >&2
device="$($grub_probe -t device "$image")"
access_device=$(prepare_grub_to_access_device "$device" | sed -e "s/^/\t/")
cat <<EOF
submenu "KNOPPIX $(basename "$IMAGEPATH" .iso | sed -e 's/^knoppix_//')" {
EOF
label=""
kernel=""
cmdline=""
bootfrom=""
initrd=""
/usr/bin/7z e "$image" boot/isolinux/isolinux.cfg -so 2>/dev/null | while read keyword args; do
case "$keyword" in
DEFAULT | default )
label="$keyword $args"
;;
LABEL | label )
label="$args"
;;
KERNEL | kernel )
kernel="$args"
;;
APPEND | append )
cmdline="$args"
case "$cmdline" in
*initrd=*)
initrd=$(echo "$cmdline" | sed -e 's/.*initrd=//; s/ .*//')
cmdline=$(echo "$cmdline" | sed -e 's/initrd=[^ ]*//')
;;
esac
case "$label" in
grub | memtest | dos )
cat <<EOF
menuentry "$label" {
EOF
;;
*)
cat <<EOF
menuentry "$label" --class knoppix --class gnu-linux --class gnu --class os {
EOF
bootfrom=" bootfrom=${device}${image}"
;;
esac
echo "$access_device"
cat <<EOF
loopback loop0 ${IMAGEPATH}
EOF
case "$kernel" in
memtest* | memdisk )
cat <<EOF
linux16 (loop0)/boot/isolinux/${kernel} ${cmdline}${bootfrom}
EOF
if [ -n "$initrd" ]; then
cat <<EOF
initrd16 (loop0)/boot/isolinux/${initrd}
EOF
fi
;;
*)
cat <<EOF
linux (loop0)/boot/isolinux/${kernel} ${cmdline}${bootfrom}
EOF
if [ -n "$initrd" ]; then
cat <<EOF
initrd (loop0)/boot/isolinux/${initrd}
EOF
fi
;;
esac
cat <<EOF
}
EOF
label=""
kernel=""
cmdline=""
bootfrom=""
initrd=""
;;
*)
# ignore
;;
esac
done
echo "}"
}
if test -x /usr/bin/7z; then
if [ ! -d "$IMAGES" ]; then
echo "Imagepath $IMAGES not found" >&2
exit
fi
find "$IMAGES" -iname 'knoppix*.iso' | sort |
while read image ; do
IMAGEPATH=$( make_system_path_relative_to_its_root "$image" )
knoppix_add
done
else
echo "7z not found" >&2
echo "Please install p7zip-full" >&2
fi

HDD 上の KNOPPIX の ISO イメージから直接起動する GRUB2 の設定

boot directly from knoppix iso files

動作確認環境

environments

  • OS
    • Ubuntu 12.04 LTS (precise)
  • packages:
    • grub2-common 1.99-21ubuntu3.1
    • p7zip-full 9.20.1~dfsg.1-4
  • ISO images
    • knoppix_v6.7.1CD_20110914-20111018.iso
    • knoppix_v7.0.2DVD_20120530-20120615.iso

使い方

usage

  • sudo cp 50_knoppix /etc/grub.d/50_knoppix
  • sudo mkdir /boot/knoppix
  • (download knoppix_v7.0.2DVD_20120530-20120615.iso)
  • sudo cp knoppix_v7.0.2DVD_20120530-20120615.iso /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
  • sudo update-grub
  • reboot
  • “KNOPPIX v7.0.2DVD_20120530-20120615” で起動

出力例

partial example of /boot/grub/grub.cfg

### BEGIN /etc/grub.d/50_knoppix ###
submenu "KNOPPIX v6.7.1CD_20110914-20111018" {
menuentry "DEFAULT knoppix" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/ ramdisk_size=100000 lang=ja vt.default_utf8=0 apm=power-off  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "adriane" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja vt.default_utf8=0 apm=power-off video=640x480  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo adriane bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "adriane64" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/linux64 ramdisk_size=100000 lang=ja vt.default_utf8=0 apm=power-off video=640x480  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo adriane bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "knoppix" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja vt.default_utf8=0 apm=power-off  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "knoppix64" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/linux64 ramdisk_size=100000 lang=ja vt.default_utf8=0 apm=power-off  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "debug" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja vt.default_utf8=0 apm=power-off  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo debug bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "debug64" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/linux64 ramdisk_size=100000 lang=ja vt.default_utf8=0 apm=power-off  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo debug bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "grub" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/grub.exe --config=;
}
menuentry "fb1024x768" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja vt.default_utf8=0 apm=power-off vga=791 video=1024x768 xmodule=fbdev  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "fb1280x1024" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja vt.default_utf8=0 apm=power-off vga=794 video=1280x1024 xmodule=fbdev  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "fb800x600" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja vt.default_utf8=0 apm=power-off vga=788 video=800x600 xmodule=fbdev  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "fb640x480" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja vt.default_utf8=0 apm=power-off vga=785 video=640x480 xmodule=fbdev  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "memtest" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux16 (loop0)/boot/isolinux/memtest foo
}
menuentry "dos" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux16 (loop0)/boot/isolinux/memdisk 
        initrd16 (loop0)/boot/isolinux/balder.img
}
menuentry "failsafe" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja vt.default_utf8=0 vga=normal atapicd nosound noapic nolapic noacpi pnpbios=off acpi=off nofstab noscsi nodma noapm nousb nopcmcia nofirewire noagp nomce libata.force=noncq hpsa.hpsa_allow_any=1 nonetwork nodhcp xmodule=vesa  bootfrom=/dev/sda2/boot/knoppix/knoppix_v6.7.1CD_20110914-20111018.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
}
submenu "KNOPPIX v7.0.2DVD_20120530-20120615" {
menuentry "DEFAULT knoppix" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/ ramdisk_size=100000 lang=ja apm=power-off  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "adriane" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja apm=power-off video=640x480  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo adriane bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "adriane64" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/linux64 ramdisk_size=100000 lang=ja apm=power-off video=640x480  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo adriane bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "knoppix" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja apm=power-off  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "knoppix64" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/linux64 ramdisk_size=100000 lang=ja apm=power-off  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "debug" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja apm=power-off  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo debug bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "debug64" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/linux64 ramdisk_size=100000 lang=ja apm=power-off  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo debug bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "grub" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/grub.exe --config=;
}
menuentry "fb1024x768" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja apm=power-off vga=791 video=1024x768 xmodule=fbdev  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "fb1280x1024" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja apm=power-off vga=794 video=1280x1024 xmodule=fbdev  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "fb800x600" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja apm=power-off vga=788 video=800x600 xmodule=fbdev  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "fb640x480" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja apm=power-off vga=785 video=640x480 xmodule=fbdev  nomce libata.force=noncq hpsa.hpsa_allow_any=1 loglevel=1 tz=Asia/Tokyo bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
menuentry "memtest" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux16 (loop0)/boot/isolinux/memtest foo
}
menuentry "dos" {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux16 (loop0)/boot/isolinux/memdisk 
        initrd16 (loop0)/boot/isolinux/balder.img
}
menuentry "failsafe" --class knoppix --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos2)'
        search --no-floppy --fs-uuid --set=root 33d00cd6-2ba2-4aed-9409-4e70519a6576
        loopback loop0 /boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        linux (loop0)/boot/isolinux/linux ramdisk_size=100000 lang=ja vga=normal atapicd nosound noapic nolapic noacpi pnpbios=off acpi=off nofstab noscsi nodma noapm nousb nopcmcia nofirewire noagp nomce libata.force=noncq hpsa.hpsa_allow_any=1 nonetwork nodhcp xmodule=vesa  bootfrom=/dev/sda2/boot/knoppix/knoppix_v7.0.2DVD_20120530-20120615.iso
        initrd (loop0)/boot/isolinux/minirt.gz
}
}
### END /etc/grub.d/50_knoppix ###

できなかったこと

known issues

  • DEFAULT がついているのが、そのまま起動したときと同じオプションなのがわかりにくい。
  • /dev/sda2 のようなデバイス名決め打ち回避
    • bootfrom が /dev/disk/by-uuid/UUID だとマウントしてくれなかった。

変更点

change log

  • isolinux.cfg から複数メニュー項目の抜き出し
    • memtest なども除外せずに linux16 などで起動するようにした。
    • サブメニューにしてトップの項目を減らした。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment