How to clone steamos to a new nvme
Short info about me
Im a linux software creater who makes cloning tools for arch ubuntu and debian
E.g squashfs, isos and .imgs

Ive been attempting to cloning my current steamos setup with dd and e2image onto a new nvme drive i plan todo this so i dont need steamos's annoying install scripts when it should be 5 minute transfer

So far im stuck with no boot entries
Wonderinf if anyone else has any ideas or guides todo this process
< >
Showing 1-6 of 6 comments
Clone partition table:
sgdisk --backup=table.sgdisk /dev/nvme0n1
sgdisk --load-backup=table.sgdisk /dev/nvme1n1

Clone partitions (ESP, root, etc):
dd if=/dev/nvme0n1pX of=/dev/nvme1n1pX bs=4M status=progress

Mount target system:
mount /dev/nvme1n1p3 /mnt
mount /dev/nvme1n1p1 /mnt/boot
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

Reinstall systemd-boot:
bootctl install

Update boot entry:
blkid # get UUIDs
nano /boot/loader/entries/steamos.conf # update root=UUID=

Optional: update /etc/fstab if UUIDs changed
Originally posted by Nicusor Dan:
Clone partition table:
sgdisk --backup=table.sgdisk /dev/nvme0n1
sgdisk --load-backup=table.sgdisk /dev/nvme1n1

Clone partitions (ESP, root, etc):
dd if=/dev/nvme0n1pX of=/dev/nvme1n1pX bs=4M status=progress

Mount target system:
mount /dev/nvme1n1p3 /mnt
mount /dev/nvme1n1p1 /mnt/boot
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

Reinstall systemd-boot:
bootctl install

Update boot entry:
blkid # get UUIDs
nano /boot/loader/entries/steamos.conf # update root=UUID=

Optional: update /etc/fstab if UUIDs changed

Thank you mate i will try that next
but im using partclone and other tools now todo a full system back into a .img.xz with the 8 partitions so will see after
Pepe Jun 12 @ 8:17am 
ddrescue should make a proper clone.

Make an empty "mapfile" (call it whatever, mapfile is fine) on the USB stick of your live distro. Mapfile is kind of a log file used in case errors occur, used for recovery attempts, but that's the case of a bad disk. In your case, the map file should be empty or relatively small (a header or something), that's why it will fit on your USB or ramdisk, if you boot in RAM.

https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html#Examples

The first example should do it.

Later Edit: It won't be fast, though. The whole disk is being cloned. There are some examples on cloning partitions, but that won't copy any kind of file system headers.
Last edited by Pepe; Jun 12 @ 8:56am
Originally posted by Pepe:
ddrescue should make a proper clone.

Make an empty "mapfile" (call it whatever, mapfile is fine) on the USB stick of your live distro. Mapfile is kind of a log file used in case errors occur, used for recovery attempts, but that's the case of a bad disk. In your case, the map file should be empty or relatively small (a header or something), that's why it will fit on your USB or ramdisk, if you boot in RAM.

https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html#Examples

The first example should do it.

Later Edit: It won't be fast, though. The whole disk is being cloned. There are some examples on cloning partitions, but that won't copy any kind of file system headers.

Okay ill take that info problem is i cant find nothing that supports cloning these fat16 partitions and the user above suggested things for debian without asking what im on 😅🤦‍♂️
Last edited by aarondsouza; Jun 12 @ 10:54am
Originally posted by Nicusor Dan:
Clone partition table:
sgdisk --backup=table.sgdisk /dev/nvme0n1
sgdisk --load-backup=table.sgdisk /dev/nvme1n1

Clone partitions (ESP, root, etc):
dd if=/dev/nvme0n1pX of=/dev/nvme1n1pX bs=4M status=progress

Mount target system:
mount /dev/nvme1n1p3 /mnt
mount /dev/nvme1n1p1 /mnt/boot
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

Reinstall systemd-boot:
bootctl install

Update boot entry:
blkid # get UUIDs
nano /boot/loader/entries/steamos.conf # update root=UUID=

Optional: update /etc/fstab if UUIDs changed

It dont evan work have you evan tested your method there is no mount points for dev ect in the partitions you clearly missed stuff like pts but overall your are partially correct .....
Last edited by aarondsouza; Jun 12 @ 11:03am
Originally posted by Nicusor Dan:
Clone partition table:
sgdisk --backup=table.sgdisk /dev/nvme0n1
sgdisk --load-backup=table.sgdisk /dev/nvme1n1

Clone partitions (ESP, root, etc):
dd if=/dev/nvme0n1pX of=/dev/nvme1n1pX bs=4M status=progress

Mount target system:
mount /dev/nvme1n1p3 /mnt
mount /dev/nvme1n1p1 /mnt/boot
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

Reinstall systemd-boot:
bootctl install

Update boot entry:
blkid # get UUIDs
nano /boot/loader/entries/steamos.conf # update root=UUID=

Optional: update /etc/fstab if UUIDs changed

Your method dont work ... .
< >
Showing 1-6 of 6 comments
Per page: 1530 50