boot/grub2/readme.txt: don't specify /dev/loop0

losetup -f returns the next free loop device, which may not be
/dev/loop0.  If you blindly follow the readmy you may end up destroying
an existing device.

Make it more robust with a variable to store the loop device.

Signed-off-by: Cherniaev Andrei <dungeonlords789@naver.com>
[Arnout: keep the actual losetup atomic]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
(cherry picked from commit 7dd56b6cd928ee36c96a697075e3fa47b0c52d5e)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Cherniaev Andrei 2024-11-13 00:53:59 +09:00 committed by Peter Korsgaard
parent b3fad7e105
commit 511a6157e2

View File

@ -10,20 +10,20 @@ Notes on using Grub2 for BIOS-based platforms
is enough free space *before* the first partition to
store Grub2. Leaving 1 MB of free space is safe.
3. Setup loop device and loop partitions
sudo losetup -f disk.img
sudo partx -a /dev/loop0
loop_dev=$(sudo losetup -f disk.img)
sudo partx -a "$loop_dev"
4. Prepare the root partition
sudo mkfs.ext3 -L root /dev/loop0p1
sudo mount /dev/loop0p1 /mnt
sudo mkfs.ext3 -L root "${loop_dev}p1"
sudo mount "${loop_dev}p1" /mnt
sudo tar -C /mnt -xf output/images/rootfs.tar
sudo umount /mnt
5. Install Grub2
sudo ./output/host/sbin/grub-bios-setup \
-b ./output/host/lib/grub/i386-pc/boot.img \
-c ./output/images/grub.img -d . /dev/loop0
-c ./output/images/grub.img -d . "$loop_dev"
6. Cleanup loop device
sudo partx -d /dev/loop0
sudo losetup -d /dev/loop0
sudo partx -d "$loop_dev"
sudo losetup -d "$loop_dev"
7. Your disk.img is ready!
Using genimage
@ -65,22 +65,22 @@ Notes on using Grub2 for x86/x86_64 EFI-based platforms
- Create a second partition, type 8300, for the root
filesystem.
3. Setup loop device and loop partitions
sudo losetup -f disk.img
sudo partx -a /dev/loop0
loop_dev=$(sudo losetup -f disk.img)
sudo partx -a "$loop_dev"
4. Prepare the boot partition
sudo mkfs.vfat -n boot /dev/loop0p1
sudo mount /dev/loop0p1 /mnt
sudo mkfs.vfat -n boot "${loop_dev}p1"
sudo mount "${loop_dev}p1" /mnt
sudo cp -a output/images/efi-part/* /mnt/
sudo cp output/images/bzImage /mnt/
sudo umount /mnt
5. Prepare the root partition
sudo mkfs.ext3 -L root /dev/loop0p2
sudo mount /dev/loop0p2 /mnt
sudo mkfs.ext3 -L root "${loop_dev}p2"
sudo mount "${loop_dev}p2" /mnt
sudo tar -C /mnt -xf output/images/rootfs.tar
sudo umount /mnt
6 Cleanup loop device
sudo partx -d /dev/loop0
sudo losetup -d /dev/loop0
sudo partx -d "$loop_dev"
sudo losetup -d "$loop_dev"
7. Your disk.img is ready!
To test your i386/x86-64 EFI image in Qemu