linux 不使用grub-install创建GRUB分区?[关闭]

c2e8gylq  于 2023-05-16  发布在  Linux
关注(0)|答案(1)|浏览(156)

**关闭。**这个问题是not about programming or software development。目前不接受答复。

这个问题似乎不是关于a specific programming problem, a software algorithm, or software tools primarily used by programmers的。如果你认为这个问题与another Stack Exchange site的主题有关,你可以留下评论,解释在哪里可以回答这个问题。
9天前关闭
Improve this question
我需要做一些棘手的事情:我需要在一个文件中创建GRUB分区。我的系统是用buildroot(x86)构建的,grub不是为主机构建的,ony是为目标构建的,所以我不能使用grub-install
我的步骤(ATM):

GRUB=grub.partition
MOUNTPOINT=/tmp/bootloader
sudo umount -f ${MOUNTPOINT} 2>/dev/null

dd if=/dev/zero of=${GRUB} bs=1M count=32 # 32 MB partition

echo -e "g\nn\n\n\n\nx\nA\nr\nw" | fdisk ${GRUB} -n
mke2fs -t ext2 -F -L LOADER ${GRUB}

mkdir -p ${MOUNTPOINT}
sudo mount -o rw -t ext2 ${GRUB} ${MOUNTPOINT}
sudo mkdir -p ${MOUNTPOINT}/boot/grub/i386-pc
sudo mkdir -p ${MOUNTPOINT}/boot/grub/fonts

GRUB_BUILD_DIR=path_to_grub_inside_of_buildroot

# copying *.mod
sudo cp ${GRUB_BUILD_DIR}/build-i386-pc/grub-core/*.mod ${MOUNTPOINT}/boot/grub/i386-pc

# copy grub.cfg
sudo cp default_grub.cfg ${MOUNTPOINT}/boot/grub/grub.cfg

sudo chown -R root:root ${MOUNTPOINT}/boot

sync
sudo umount ${MOUNTPOINT}

问题是:当我用dd刷新grub.partition时,我的设备可以看到grub.cfg,但在引导时它说“找不到命令”linux“…我错过了哪些步骤?Buildroot还创建了./images/grub.img,我应该以某种方式使用它吗?需要你的建议,先谢了

bz4sfanl

bz4sfanl1#

处理文件的典型方法是创建循环装载点。

$ dd if=/dev/zero of=mydisc.img count=100000
$ sudo losetup /dev/loop0 ./mydisc.img

然后,通常fstabmkfsgrub-install任何你想要的/dev/loop0

相关问题