Given something like ubuntu.img
…
- Check partition layout:
fdisk -l ubuntu.img
Device Boot Start End Sectors Size Id Type
ubuntu.img1 * 2048 526335 524288 256M ef EFI (FAT-12/16/32)
ubuntu.img2 526336 12582911 12056576 5.7G 83 Linux
- Mount using loop device:
# create mountpoints
sudo mkdir -p /mnt/ubuntu /mnt/ubuntu/boot/efi
# setup loop device
sudo losetup -fP ubuntu.img
sudo losetup -a # note the loop device number, like /dev/loop0
# mount root and EFI partitions
sudo mount /dev/loop0p2 /mnt/ubuntu
sudo mount /dev/loop0p1 /mnt/ubuntu/boot/efi
- Prepare chroot environment:
# mount necessary system directories
for i in /dev /dev/pts /proc /sys /run; do
sudo mount -B $i /mnt/ubuntu$i
done
- (Optional) Setup emulation working with a different arch (like
aarch64
):
sudo apt-get install qemu-user-static binfmt-support
sudo update-binfmts --import qemu-aarch64
sudo cp /usr/bin/qemu-aarch64-static /mnt/ubuntu/usr/bin/
- Chroot and Do Work:
sudo chroot /mnt/ubuntu
echo "im in ur chroot, configurin ur t00ls"
Cleanup:
# exit chroot
exit
# unmount all the things
for i in /dev/pts /dev /proc /sys /run /boot/efi; do
sudo umount /mnt/ubuntu$i
done
sudo umount /mnt/ubuntu
# remove loop device
sudo losetup -d /dev/loop0