我安装了 Ubuntu,并在刚安装时使用以下命令捕获了整个驱动器
sudo dd if=/dev/sda of=/dev/sdb/image.img
然后将其放入
/boot/images/image.img
我想GRUB2从此映像启动,就像 Windows 使用 VHDX 的“本机启动”技术一样。我将 memdisk 复制/boot
到
cp /usr/lib/syslinux/memdisk /boot/
并创建了新文件50_memdisk
/etc/grub.d/50_memdisk
内容如下:
#!/bin/sh
set -e IMAGES=/boot/images .
/usr/lib/grub/grub-mkconfig_lib
if test -e /boot/memdisk ; then
MEMDISKPATH=$( make_system_path_relative_to_its_root "/boot/memdisk" )
echo "Found memdisk: $MEMDISKPATH" >&2 find $IMAGES -name "*.img" | sort | while read image;
do
IMAGEPATH=$( make_system_path_relative_to_its_root "$image" )
echo "Found floppy image: $IMAGEPATH" >&2
cat << EOF menuentry "Bootable floppy: $(basename $IMAGEPATH | sed s/.img//)"
{ EOF
prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} | sed -e "s/^/\t/"
cat << EOF linux16 $MEMDISKPATH bigraw initrd16 $IMAGEPATH
} EOF
done
fi
然后我就跑了
chmod +x /etc/grub.d/50_memdisk && update-grub
但 GRUB2 在启动过程返回时显示
内存不足
我做错了什么?
答案1
您生成的图像太大,无法放入 RAM,因此 ramdisk 不可行。