Move whole Kinoite 38 install to larger disk

My laptop came with a small NVMe SSD. I’ve gotten hold of a larger NVMe SSD now, and I’d like to move my whole install to the larger drive.
I don’t have an external NVMe adapter(?).

This is what I’ve done so far:

  1. btrfs snapshot -r root and home of running system that I want to migrate.
  2. btrfs send root and home subvolumes of old SSD to external HDD.
  3. replace old SSD with new SSD in the laptop.
  4. clean install of Kinoite 38 on new SSD.
  5. btrfs send snapshots of old root and home subvols from external HDD to new SSD
  6. convert snapshots from ro to rw.

I tried simply updating /etc/fstab to the migrated home subvolume… didn’t work too well. Couldn’t even get a rescue shell up, so had to reinstall.

Could this fine community help me out?

output of `btrfs subvol list / -u` on new system after receiving and rw'ing old snapshots
ID 256 gen 516 top level 5 uuid 6b962238-7f55-374e-8001-e0acf0ab3621 path var
ID 257 gen 516 top level 5 uuid 9c67bf6a-1d28-c845-be3a-98f200293615 path home00
ID 258 gen 512 top level 5 uuid 5013f3ba-0035-dd40-b221-462bd9c220a6 path root
ID 259 gen 112 top level 257 uuid 2bbf5a90-b666-ba4c-80a8-641f05c2d44f path home00/Jacob/snapshot/old_system_root
ID 260 gen 243 top level 257 uuid a8215f0c-2ac5-d443-916c-121e1f4aac4e path home00/Jacob/snapshot/old_system_home
output of `inxi -Faz`
  Host: fedora Kernel: 6.2.9-300.fc38.x86_64 arch: x86_64 bits: 64
    compiler: gcc v: 2.39-9.fc38
    parameters: BOOT_IMAGE=(hd1,gpt2)/ostree/fedora-9210ab55a479ca225f9eab5514530fcdf3c4a4b188728ca3c3f9cb8a6b09c2e1/vmlinuz-6.2.9-300.fc38.x86_64
    rhgb quiet root=UUID=1a9be0ee-bc41-48af-a750-6f06d7f2492d
    rootflags=subvol=root rw
  Desktop: KDE Plasma v: 5.27.4 tk: Qt v: 5.15.8 wm: kwin_wayland vt: 2
    dm: SDDM Distro: Fedora release 38 (Thirty Eight)
  Type: Laptop System: Notebook product: P95xER v: N/A
    serial: <superuser required> Chassis: No Enclosure type: 10
    serial: <superuser required>
  Mobo: Notebook model: P95xER serial: <superuser required>
    UEFI: American Megatrends v: 1.07.15 date: 11/16/2018
  ID-1: BAT0 charge: 32.1 Wh (89.4%) condition: 35.9/53.2 Wh (67.5%)
    volts: 16.3 min: 15.2 model: Notebook BAT type: Li-ion serial: 0001
    status: not charging
  Info: model: Intel Core i7-8750H bits: 64 type: MT MCP arch: Coffee Lake
    gen: core 8 level: v3 note: check built: 2018 process: Intel 14nm family: 6
    model-id: 0x9E (158) stepping: 0xA (10) microcode: 0xF0
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 1.5 MiB desc: 6x256 KiB
    L3: 9 MiB desc: 1x9 MiB
  Speed (MHz): avg: 1850 high: 2200 min/max: 800/4100 scaling:
    driver: intel_pstate governor: powersave cores: 1: 2200 2: 800 3: 2200
    4: 2200 5: 2200 6: 800 7: 800 8: 2200 9: 2200 10: 2200 11: 2200 12: 2200
    bogomips: 52799
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: retbleed mitigation: IBRS
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
  Type: spectre_v2 mitigation: IBRS, IBPB: conditional, STIBP: conditional,
    RSB filling, PBRSB-eIBRS: Not affected
  Type: srbds mitigation: Microcode
  Type: tsx_async_abort status: Not affected
  Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] vendor: CLEVO/KAPOK
    driver: i915 v: kernel arch: Gen-9.5 process: Intel 14nm built: 2016-20
    ports: active: eDP-1 empty: none bus-ID: 00:02.0 chip-ID: 8086:3e9b
    class-ID: 0300
  Device-2: NVIDIA GP104M [GeForce GTX 1070 Mobile] vendor: CLEVO/KAPOK
    driver: nouveau v: kernel non-free: 530.xx+ status: current (as of 2023-05)
    arch: Pascal code: GP10x process: TSMC 16nm built: 2016-21 pcie: gen: 1
    speed: 2.5 GT/s lanes: 16 link-max: gen: 3 speed: 8 GT/s ports:
    active: none empty: DP-1,DP-2,HDMI-A-1 bus-ID: 01:00.0 chip-ID: 10de:1ba1
    class-ID: 0300 temp: 41.0 C
  Device-3: Chicony USB 2.0 Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-8:2 chip-ID: 04f2:b5a7
    class-ID: 0e02
  Display: wayland server: v: 1.20.14 with: Xwayland v: 22.1.9
    compositor: kwin_wayland driver: N/A display-ID: 0
  Monitor-1: eDP-1 res: 1707x960 size: N/A modes: N/A
  API: OpenGL v: 4.6 Mesa 23.0.1 renderer: Mesa Intel UHD Graphics 630 (CFL
    GT2) direct-render: Yes
  Device-1: Intel Cannon Lake PCH cAVS vendor: CLEVO/KAPOK
    driver: snd_hda_intel v: kernel alternate: snd_soc_skl,snd_sof_pci_intel_cnl
    bus-ID: 00:1f.3 chip-ID: 8086:a348 class-ID: 0403
  Device-2: NVIDIA GP104 High Definition Audio driver: snd_hda_intel
    v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 16 link-max: gen: 3
    speed: 8 GT/s bus-ID: 01:00.1 chip-ID: 10de:10f0 class-ID: 0403
  API: ALSA v: k6.2.9-300.fc38.x86_64 status: kernel-api
    tools: alsactl,alsamixer,amixer
  Server-1: PipeWire v: 0.3.67 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
  Device-1: Intel Wireless-AC 9260 vendor: Rivet Networks driver: iwlwifi
    v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 1 bus-ID: 03:00.0
    chip-ID: 8086:2526 class-ID: 0280
  IF: wlp3s0 state: up mac: 74:e5:f9:89:55:2b
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
    vendor: CLEVO/KAPOK driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
    lanes: 1 port: 3000 bus-ID: 04:00.0 chip-ID: 10ec:8168 class-ID: 0200
  IF: enp4s0 state: down mac: 80:fa:5b:59:46:51
  Device-1: Intel Wireless-AC 9260 Bluetooth Adapter driver: btusb v: 0.8
    type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-14:4
    chip-ID: 8087:0025 class-ID: e001
  Report: rfkill ID: hci0 rfk-id: 3 state: up address: see --recommends
  Local Storage: total: 2.27 TiB used: 123.53 GiB (5.3%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 980 500GB
    size: 465.76 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 tech: SSD serial: S64DNL1TA03495F fw-rev: 2B4QFXO7 temp: 39.9 C
    scheme: GPT
  ID-2: /dev/sda maj-min: 8:0 vendor: Seagate model: ST2000LX001-1RG174
    size: 1.82 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    tech: HDD rpm: 5400 serial: WDZBQ51Q fw-rev: SDM1
  ID-1: /boot raw-size: 1024 MiB size: 973.4 MiB (95.06%) used: 93 MiB (9.6%)
    fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 600 MiB size: 598.8 MiB (99.80%)
    used: 11.6 MiB (1.9%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /var raw-size: 464.17 GiB size: 464.17 GiB (100.00%)
    used: 123.43 GiB (26.6%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 8 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
  System Temperatures: cpu: 51.0 C pch: 57.0 C mobo: N/A gpu: nouveau
    temp: 41.0 C
  Fan Speeds (RPM): N/A
  Processes: 327 Uptime: 12h 42m wakeups: 2 Memory: available: 31.06 GiB
  used: 5.47 GiB (17.6%) Init: systemd v: 253 target: graphical (5)
  default: graphical tool: systemctl Compilers: N/A Packages: pm: rpm pkgs: N/A
  note: see --rpm pm: flatpak pkgs: 0 Shell: Bash v: 5.2.15 running-in: konsole
  inxi: 3.3.27
1 Like

I just checked and a USB → NVME enclosure is only about $20 on

It would seem reasonable to obtain one of those then by booting to a live image one could clone the smaller device to the new one. Even if only by copying the data onto the new device after the install.

The only thing I see as a drawback with copying is that there would be a potential for it not booting properly, which you already see in what has been done to date. Cloning, however, should make it immediately bootable (especially if using dd to do the transfer).


Cloning with dd was not a good idea for me, but the mentioned btrfs commands may be