Moving my boot partition to a external ssd connected over USB. Mission impossible?

Hello guys,

after 3,5 days and myself getting in a trance like state, i give up and i need help.

I have installed Qubes OS on my /dev/nvmne0n.
Structure is:
/dev/nvmne0np1 - 1GB - EXT4 (Linux)
/dev/nvmne0np1 - 800GB - LVM encrypted (Linux)

My goal is to have a dualboot with windows later on my other ssd.
To not brake the concept i need a removable /boot or external ssd connected via usb.

Now i have tried everything i can imagine.
I copied using gparted live the whole p1 partition to my new drive, made sure it has boot flag on it, that its gpt,then changed the guid and started the system as usally.

Now i already have to use qube-attach to redirect the external ssd from sys-usb to dom0 to use it in my main Qubes OS.

Do i need to add it to somekind of exception so it gets not automatically drafted to the sys-usb, is there some else stuff i have to consider?

Just adjusting my fstab to the new guid brings me nothing but a start to emergency console.
grub2-install on /dev/xvdi does not seem possible as it keeps saying:
warning: this GPT partition label contains no BIOS Boot Partition
embedding wont be possible, embredding is not possible grub can only be installed in this setup by using blocklists. however, blocklists are unreliable and thier use is discouraged.

I dont know why i dont have a fat32 efi partition, i even created one with 500mb but still same result with grub2-installer script

I dont know what to try anymore else.

Did you install your Qubes OS in UEFI mode or in Legacy BIOS mode?
If it’s UEFI then you should have EFI System partition on one of your drives that Qubes OS is using.

Also you could install your boot and EFI partitions on USB drive during Qubes OS installation by configuring custom partitioning.

I’ve installed it in UEFI so i tought at least but im pretty sure it installed in Legacy Mode from all i’ve seen so far in lsblk and such commands. When i tried it with legacy grub2-install said it has no efi partition. So i tought i may need to make it gpt ext4.

I really dont want to reinstall everything.
I have this 1gb EXT4 partition (MBR no uefi i think) on my nvme that contains grub2 folder and a efi folder.

And i want to move the existing boot partition to my external detachable usb ssd

Check if /sys/firmware/efi exists in dom0. If it exists then you’ve installed it in UEFI and there should be EFI partition somewhere.

No this folder does not exist.
Okay thats why i dont have a efi partition i understand… that means i should make sure the external drive boot partition is MBR.

If i put the uid lf the new device into the fstab it has problems booting because by default Qubes OS puts my usb ssd to sys-usb instead of dom0.

I think this might be the problem here.
Or would i need to install grub2, if yes with which command exactly, as MBR to my /dev/sda?

Or where else would i need to configure it and how so it permanently allows my usb ssd to dom0?

I don’t know the exact process, but I think it should be like this (not tested):

  1. Attach whole block device of your USB drive from sys-usb to dom0 (not just a single partition like /dev/sda1, but /dev/sda). It should be /dev/xvdi in dom0, but double check it.
  2. Format the /dev/xvdi to MBR and create a new partition for boot, make it bootable.
  3. Mount it and copy the files from your /boot to this new partition.
  4. Mount your new boot to /boot:
    sudo mount /dev/xvdi1 /boot
  5. Install grub:
    sudo grub2-install /dev/xvdi
  6. Update grub config:
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  7. Update fstab to your new /boot partition.

I’ve done like you said, i have /dev/xvdi and even unmounted the other /boot as second try but this error output keeps showing:

$ mount --bind /dev/xvdi1 /boot
mount: /boot: mount(2) system call failed: Not a directory

$ umount /boot
$ mount --bind /dev/xvdi1 /boot
mount: /boot: mount(2) system call failed: Not a directory

My bad, it should’ve been:
mount /dev/xvdi1 /boot
I’ve edited my previous post as well.

I have done as you said too :smiley: (while you were writing, sry just found the documention now) and it worked installig grub and regenerating the grub cfg

Now i get like in the past:
A start job is running for /dev/disk/by-uuid/[uuid] and just times out.

Which disk does this UUID belongs to?

Add noauto option to /boot partition in fstab.

This is the output after the timeout as addition to my prev post:
Dependency failed for /boot.
Dependency failed for Local File Systems
Dependency failed for Anti Evil Maid sealing.
Dependency failed for Filesystem check on
Dependency failed for /dev/[uuid].
Dependency failed for /boot
Dependency failed for Locale Filesystems.
Emergency Mode

It belongs to the external ssd /dev/sda

I will try the no auto option and report in a minute, thank you for the patience

I have now selected the external usb ssd for boot again and this time i had no errors.

Looking in dom0 root with lsblk does not show a mountpoint at /boot and the external ssd is in sys-usb.

Im not sure how to check now if it worked besides deleting the original partition on the nvme now? I do not feel so comfortable with that to be honest :smiley:

Change something in grub.conf on your USB drive and check if the change will be visible in grub. You can change the menu entry text for example.

palmface i guess when excluding the nvme from bios boot and setting the usb ssd on top of the boot-chain should let me safley conclude it worked and i can delete (or just format?) the old boot partition.

But i’ve read somewhere that /boot needs to be available to the host / dom0 during runtime, is that correct? If so what last step would i be missing?

I will try the grub thing

I think you only need it when you update your dom0 to write new initramfs, grub config etc.

Its working, i thank you so so much yay :]

Edit: cant pm you sadly, if you want only ofc. i would like to give you a small gift, you can dm me a pp address or a btc addr, i really struggled on this one, gpt / mbr + linux + grub never were my fav subject :smiley:

It’s better to support the Qubes OS:

1 Like