Migrate USB UEFI boot with iSCSI root Ubuntu to Proxmox VM
Migrate USB boot with iSCSI root Ubuntu to Proxmox VM
To convert Ubuntu to Proxmox Virtual Environment, the migration is required.
Ubuntu configuration
The Ubuntu server has following configuration
- Boots from USB device with
/boot
and/boot/efi
filesystems. - Connect to iSCSI host using GRUB2 configuration
- Root file system
/
is on iSCSI disk
Conversion
Create Proxmox VM
- Create VM with 2GB disk
- BIOS type is UEFI
- Add EFI disk
- Add Ubuntu Live CD and boot from CD
Create partition
Duplicating USB device partition to 2GB VM disk
Create filesystems
mkfs.vfat /dev/sda1
mkfs.btrfs /dev/sda2
Duplicate UUID
Duplicate UUID for /boot/efi
If don't change UUID for /boot/efi
, later will need to change /etc/fstab
file after reboot.
Duplicate UUID for /boot
Using following command to duplicate UUID for BTRFS filesystem
-
Retrieve partition from USB Ubuntu
sfdisk -d /dev/sda
-
Create partitions on 2GB VM disk
-
Duplicate UUID of partition
/boot/efi
-
Duplicate UUID of partition
/boot
btrfstune -U
/dev/sda2
Change network interface name in iSCSI configuration in Grub
- Retrieve network interface name
ip a
- Mount boot filesystem
mount /dev/sda2 /boot
- Edit file
/boot/grub/grub.cfg
Change all interface names in the grub.cfg.
linux /vmlinuz-5.4.0-113-generic ... ip=192.168.1.99::192.168.1.254:255.255.255.0:fish:ensXX::192.168.1.55
Reboot VM
References
Change partition UUID in Ubuntu
Change partition UUID in Ubuntu
Generate UUID
uuidgen
Change one partition
sgdisk -U <uuid> /dev/sda1
Change multiple partitions
Run following command to retrieve partitions info
sfdisk -d /dev/sda > /tmp/sda.dsk
Edit the UUID in the file /tmp/sda.dsk
.
Run following command to reimport the modified partitions
sfdisk /dev/sda < /tmp/sda.dsk
References
Duplicate partition table in ubuntu
Duplicate partition table in ubuntu
Note: Haven't got chance to test this.
Duplicate partitions
sfdisk -d /dev/sdX > part_table
sfdisk /dev/sdY < part_table
This will keeping the same disk & partition IDs, mainly for backup and restore partition purpose.
Generate new partition IDs
grep -v ^label-id part_table | sed -e 's/, *uuid=[0-9A-F-]*//' | sfdisk /dev/sdY
References
How to copy the partition layout of a whole disk using standard tools