Захотелось флешку с несколькими linux'ами сразу. Разметил, отформатировал, поставил grub2.
grub2-install --root-directory=/mnt/usbdir /dev/sdb1
Debian и SystemRescueCd без проблем завелись, но мне захотелось ещё UbuntuServer туда и тут начались проблемы...
Если кто знает более правильное решение - напишите в комментариях, потому как я довольно грубо пропатчил initrd.
План действий был примерно таков:
# mkdir tmp
# mv initrd-ubuntu.gz tmp/
# cd tmp
# gunzip initrd-ubuntu.gz
# mkdir tmp2
# cd tmp2
# cpio -id < ../initrd-ubuntu
# vim init
# find . | cpio --create --format='newc' > ../newinitrd
# cd ..
# gzip newinitrd
# mv -i newinitrd.gz /mnt/usbdir/
Для пущей информативности приведу часть конфига grub'а
menuentry 'Ubuntu Server 12.04 (64-bit)' {
set isofile="/ubuntu-12.04.2-server-amd64.iso"
loopback loop $isofile
linux (loop)/install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed iso-scan/filename=$isofile quiet noeject noprompt splash --
initrd /newinitrd.gz
}
Ну и конечно что поменялось в init файле после редактирования.
@@ -10,6 +10,11 @@
mount /sys
/lib/debian-installer/start-udev
+mkdir -p /media/flash
+mount /dev/disk/by-uuid/E13C-7500 /media/flash
+mkdir /cdrom
+mount -o loop,ro -t iso9660 /media/flash/ubuntu-12.04.2-server-amd64.iso /cdrom
+
init='/bin/busybox init'
for i in $(cat /proc/cmdline); do
case $i in
Где /dev/disk/by-uuid/E13C-7500 конечно путь к флешке.
P.S.: это не указание как правильно делать, а просто указание на потенциальную возможность так делать.
Ссылки:
http://www.thegeekstuff.com/2009/07/how-to-view-modify-and-recreate-initrd-img/
http://www.pendrivelinux.com/install-grub2-on-usb-from-ubuntu-linux/
https://help.ubuntu.com/community/Grub2/ISOBoot/Examples#Utility_Menuentries
http://askubuntu.com/questions/128995/grub2-loopback-booting-ubuntu-server-iso