Hầu hết các hệ thống hỗ trợ khởi động các cài đặt khác nhau từ các phân vùng khác nhau. Tôi đã tìm thấy multiboot với nhiều cài đặt Linux để hoạt động tốt nhất, nếu mỗi cài đặt có bản sao GRUB riêng.
Tải GRUB từ bên trong GRUB khá đơn giản nếu bạn đang sử dụng phiên bản GRUB gần đây.
Tập /etc/grub.d/40_custom
tin này cho phép tôi đa nhóm giữa các phiên bản Ubuntu khác nhau. Nó trông giống như trên các bản phân phối khác, mặc dù tệp cấu hình có thể có một tên khác và rõ ràng đường dẫn đến core.img
sẽ khác nhau trong mỗi trường hợp.
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
set timeout=25
set timeout_style=menu
menuentry 'Raring' { multiboot /raring/boot/grub/i386-pc/core.img }
menuentry 'Saucy' { multiboot /saucy/boot/grub/i386-pc/core.img }
menuentry 'Trusty' { multiboot /trusty/boot/grub/i386-pc/core.img }
Có thể khởi động nhiều bản phân phối Linux từ một phân vùng duy nhất. Tôi không biết bất kỳ phân phối nào hỗ trợ ngoài luồng này, nhưng hầu hết các phân phối có thể thực hiện với những thay đổi nhỏ. Tôi đã sử dụng /usr/share/initramfs-tools/hooks/rootdir
tệp này để khởi động Ubuntu và Debian từ thư mục con chứ không phải từ thư mục gốc của phân vùng:
#!/bin/sh
# /usr/share/initramfs-tools/hooks/rootdir
set -e
if [ "$1" = prereqs ]; then
exit 0
fi
. /usr/share/initramfs-tools/hook-functions
DEFAULT_DIR="$(/usr/bin/grub-mkrelpath /)"
mkdir -p "$DESTDIR"/scripts/local-bottom
cat >"$DESTDIR"/scripts/local-bottom/rootdir <<EOF
#!/bin/sh
PREREQ=""
prereqs()
{
echo "\$PREREQ"
}
case \$1 in
prereqs)
prereqs
exit 0
;;
esac
ROOTDIR="$DEFAULT_DIR"
for x in \$(cat /proc/cmdline); do
case \${x} in
rootdir=*)
ROOTDIR="\${x#rootdir=}"
;;
esac
done
if [ -n "\${ROOTDIR#/}" ] && [ -d "/root/\${ROOTDIR}" ]
then
[ -d /rootfs ] || mkdir -m 0700 /rootfs
mount --move "/root" "/rootfs"
mount --bind "/rootfs/\${ROOTDIR}" "/root"
umount "/rootfs"
fi
EOF
chmod 0755 "$DESTDIR"/scripts/local-bottom/rootdir
ex:ext4
(?) Hay không, không cần định dạng và tôi chỉ cần tạo phân vùng dưới dạng phân vùng RAW?