尝试使用 grub2 从磁盘映像启动

尝试使用 grub2 从磁盘映像启动

我安装了 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 不可行。

相关内容