Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release:11
Codename: bullseye
I'm trying to install Debian onto a USB stick, and I'm getting this error on boot:
GRUB loading.
Welcome to GRUB!
error: no such device: /boot/grub/uuid/1eib15ge3kie0f55amm79t6u
error: unknown filesystem.
grub rescue>
Here is the what I used to install Debian to the USB:
WARNING: DO NOT RUN THIS AS A SCRIPT. Just copy line by line, watching for errors!!!
sudo apt-get --assume-yes install debootstrap pv
cd /home/user/Downloads
rm -f debian.img
sudo rm -rf /mnt
rm myloopdevice
sudo rm -rf /dev/loop0
sudo rm -rf /dev/loop1
sudo rm -rf /dev/loop2
sudo mkdir -p /mnt
sudo umount /mnt/{dev/pts,dev,sys,proc,}
fallocate -l 4G debian.img
sudo su
exit
echo -e "o\nn\np\n1\n\n\nw" | sudo fdisk debian.img
echo -e "a\nw\n" | sudo fdisk debian.img
loop=$(sudo losetup --partscan --show --find debian.img)
echo "Your loop device is: $loop"
echo $loop > myloopdevice
sudo mkfs.ext4 "$loop"p1
sudo mount -o loop "$loop"p1 /mnt
sudo debootstrap --arch=amd64 --variant=minbase bullseye /mnt https://deb.debian.org/debian/
sudo mount -t proc /proc /mnt/proc
sudo mount -t sysfs /sys /mnt/sys
sudo mount -o bind /dev /mnt/dev
#sudo mount -t devpts /dev/pts /mnt/dev/pts
sudo chroot /mnt
version=bullseye
cat > /etc/apt/sources.list << EOF
deb https://deb.debian.org/debian/ $version main contrib non-free
#deb-src https://deb.debian.org/debian/ $version main contrib non-free
deb https://security.debian.org/debian-security $version-security main contrib non-free
#deb-src https://security.debian.org/debian-security $version-security main contrib non-free
deb https://deb.debian.org/debian/ $version-updates main contrib non-free
#deb-src https://deb.debian.org/debian/ $version-updates main contrib non-free
EOF
apt update --allow-releaseinfo-change --assume-no
apt install --assume-yes --no-install-recommends grub2-common grub-pc systemd-sysv locales linux-image-amd64 firmware-linux
echo "LABEL=DEBUSB / ext4 defaults 0 1" > /etc/fstab
echo "root:root" | chpasswd
grub-install \
--target=i386-pc \
--boot-directory=/boot \
--force-file-id \
--skip-fs-probe \
--recheck /dev/loop0
### Exit chroot
exit
sudo su
cat << EOF > /mnt/boot/grub/grub.cfg
# grub.cfg
set default="0"
set timeout=1
menuentry "Debian" {
linux /vmlinuz root=/dev/disk/by-label/DEBUSB quiet
initrd /initrd.img
}
EOF
exit
sudo e2label /dev/loop0p1 DEBUSB
echo "localhost" | sudo tee /mnt/etc/hostname
sudo umount /mnt/{dev,sys,proc}
sudo umount /mnt
sudo losetup -d /dev/loop0
# find with sudo fdisk -l
sdX=sdb
sudo umount /dev/sdX*
sudo e2fsck -p /dev/sdX1
sudo dd if=debian.img of=/dev/sdb && sync
I had this working several times before, and now it's not working. Not sure what I'm doing wrong.
Also, another script I tried that won't work:
#!/bin/bash
set -e # Exit on error
DEVICE=$1
[ -z "${DEVICE}" ] && echo "Usage $0 /dev/sdX" && exit 1
udevadm info -n ${DEVICE} -q property
echo "Selected device is ${DEVICE}"
read -p "[Press enter to continue or CTRL+C to stop]"
echo "Umount ${DEVICE}"
umount ${DEVICE}* || true
echo "Set partition table to GPT (UEFI)"
parted ${DEVICE} --script mktable gpt
echo "Create EFI partition"
parted ${DEVICE} --script mkpart EFI fat16 1MiB 10MiB
parted ${DEVICE} --script set 1 msftdata on
echo "Create OS partition"
parted ${DEVICE} --script mkpart LINUX btrfs 10MiB 100%
echo "Format partitions"
mkfs.vfat -n EFI ${DEVICE}1
mkfs.btrfs -f -L LINUX ${DEVICE}2
echo "Mount OS partition"
ROOTFS="/tmp/installing-rootfs"
mkdir -p ${ROOTFS}
mount ${DEVICE}2 ${ROOTFS}
echo "Debootstrap system"
debootstrap --variant=minbase --arch amd64 bullseye ${ROOTFS} https://deb.debian.org/debian/
echo "Mount EFI partition"
mkdir -p ${ROOTFS}/boot/efi
mount ${DEVICE}1 ${ROOTFS}/boot/efi
echo "Get ready for chroot"
mount --bind /dev ${ROOTFS}/dev
mount -t devpts /dev/pts ${ROOTFS}/dev/pts
mount -t proc proc ${ROOTFS}/proc
mount -t sysfs sysfs ${ROOTFS}/sys
mount -t tmpfs tmpfs ${ROOTFS}/tmp
echo "Entering chroot, installing Linux kernel and Grub"
cat << EOF | chroot ${ROOTFS}
set -e
export HOME=/root
export DEBIAN_FRONTEND=noninteractive
debconf-set-selections <<< "grub-efi-amd64 grub2/update_nvram boolean false"
apt-get remove -y grub-efi grub-efi-amd64
apt-get update
apt-get install -y linux-image-amd64 linux-headers-amd64 grub-efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --recheck --no-nvram --removable
update-grub
EOF
echo "Unmounting filesystems"
umount ${ROOTFS}/dev/pts
umount ${ROOTFS}/dev
umount ${ROOTFS}/proc
umount ${ROOTFS}/sys
umount ${ROOTFS}/tmp
umount ${ROOTFS}/boot/efi
umount ${ROOTFS}
echo "Done"
Any ideas?
