• 2 Posts
  • 21 Comments
Joined 2 years ago
cake
Cake day: June 10th, 2023

help-circle
  • Sudo blkid confirms UUIDs do match. When I boot with the new SSD after using gparted to copy the partitions from the HDD for the third time exactly how you described above it still takes forever to think about booting and then lands me on that same page I screenshotted before. e still gives a “command not found error.” Also the UUIDs both match the ones in the error message, but not that directory structure. Instead of /dev/disk/by-uuid/blahblahblah they are referred to as dev/nvme0n1p2 and dev/nvme0n1p1 in gparted and blkid.

    I did find an interesting line in journalctl that suggested something about boot failing due to secure boot mode.

    I really really appreciate your help and you sticking it out with me. But unless anything here gives you a brain blast “Aha!” Moment I think I’m done fucking with this lol I’m just going to fresh install and call it a day.



  • sudo blkid shows all UUIDs are the same as the partitions they are cloned from. I’m unable to mount /dev/nvme0n1p2 (SSD root partition) and it gives a “bad superblock” error. A little bit of googling led me to attempt to use the command sudo btrfs rescue super-recover -v /dev/nvme0n1p2 but it told me “all supers are valid, no need to recover” I then run sudo dmesg and see BTRFS error (device nvme0n1pe): bad tree block start, mirror 1 want 2521222217728 have 0 BTRFS error (device nvme0n1pe): bad tree block start, mirror 2 want 2521222217728 have 0 BTRFS error (device nvme0n1pe): failed to read chunk root BTRFS error (device nvme0n1pe): open_ctree failed

    I think you’re right I am 99% confident I have seen the /boot/efi directory on my system before in the past.

    I am using Mint as my live USB image. But now I’m thinking it might have been wiser to use an opensuse tumbleweed live image since id reckon it would be better equipped to handle btrfs.

    I think I might need to clone the drive again to fix the superblock issue but I don’t know if I want to do it for what would be the 4th or 5th time now. I might just bite the bullet and fresh install to SSD again and copy my /home over and set everything up again. It will be a pain but not as big as this is becoming lol

    I am very appreciative of your time though! And this experience has certainly taught me more about Linux and gave me some familiarity with new commands. So thank you again!


  • Most recently I have used gparted to resize the root partition of my HDD (/dev/sda2) to be only a little larger than the amount of data I actually had on it. Taking it from ~7 TB to 1tb, mostly so that I wouldn’t have to copy “empty” space and also so that the partition would actually fit on my 4tb SSD (/dev/nvme0n1p2) Then I created 3 partitions on my SSD that matched the file structures on the HDD (fat=nvme0n1p1, btrfs=nvme0n1p2, linux-swap=nvme0n1p3).

    I then booted from a USB with clonezilla live on it and proceeded to clone partition to partition sda1>nvme0n1p1, sda2>nvme0n1p2, sda3>nvme0n1p3. The only way I could perform the clones without errors was to run in expert mode, selecting -icds (disables check for drive size), -k (can’t remember exactly what this one did, something about not copying partition header or title?) after cloning all partitions I unhooked the HDD inside the case and tried to boot. Hit the same grub screen and hitting e returned error: ../../grub-core/script/function.c119:can't find command 'e'.

    I think it’s booting from UEFI? But I’m not sure how to actually tell. I will check for those grub configs in the morning though. Your help is greatly appreciated!


  • Screenshot of screen ssd boots to currently

    spoiler

    results of sudo btrfs subvolume list newboot:

    spoiler

    mint@mint:~$ sudo btrfs subvolume list newboot

    ID 256 gen 16336 top level 5 path @

    ID 257 gen 16344 top level 256 path @/var

    ID 258 gen 16342 top level 256 path @/usr/local

    ID 259 gen 16336 top level 256 path @/srv

    ID 260 gen 16341 top level 256 path @/root

    ID 261 gen 16336 top level 256 path @/opt

    ID 262 gen 16344 top level 256 path @/home

    ID 263 gen 16163 top level 256 path @/boot/grub2/x86_64-efi

    ID 264 gen 16163 top level 256 path @/boot/grub2/i386-pc

    ID 265 gen 16327 top level 256 path @/.snapshots

    ID 266 gen 16345 top level 265 path @/.snapshots/1/snapshot

    ID 267 gen 65 top level 265 path @/.snapshots/2/snapshot

    ID 300 gen 13737 top level 265 path @/.snapshots/33/snapshot

    ID 301 gen 13737 top level 265 path @/.snapshots/34/snapshot

    ID 303 gen 13737 top level 265 path @/.snapshots/36/snapshot

    ID 323 gen 13737 top level 265 path @/.snapshots/56/snapshot

    ID 324 gen 13737 top level 265 path @/.snapshots/57/snapshot

    ID 337 gen 15853 top level 265 path @/.snapshots/70/snapshot

    ID 338 gen 15855 top level 265 path @/.snapshots/71/snapshot

    ID 339 gen 15884 top level 265 path @/.snapshots/72/snapshot

    ID 340 gen 15886 top level 265 path @/.snapshots/73/snapshot

    ID 341 gen 15889 top level 265 path @/.snapshots/74/snapshot

    ID 342 gen 15891 top level 265 path @/.snapshots/75/snapshot

    ID 343 gen 15929 top level 265 path @/.snapshots/76/snapshot

    ID 344 gen 15931 top level 265 path @/.snapshots/77/snapshot

    ID 345 gen 16281 top level 265 path @/.snapshots/78/snapshot

    ID 346 gen 16287 top level 265 path @/.snapshots/79/snapshot

    ID 347 gen 16291 top level 265 path @/.snapshots/80/snapshot

    ID 348 gen 16326 top level 265 path @/.snapshots/81/snapshot

    I appreciate your help! I probably won’t have time to work on it again really until tomorrow, but I feel like I’m close.


  • I tried that and for some reason it only had one directory in /etc and that was snapper. I unmounted and remounted without the -o subvol=/ and I checked in /etc for fstab again and this time I found it so I’m sure I just overlooked it the first time.

    I was able to verify that the UUIDs were all the same but then when I attempted to boot from the SSD it went straight to what I think is the grub recovery screen? I just typed shutdown and booted back into the HDD. I guess I’m going to try and clone the drive again. If it doesn’t work again I’ll probably just bite the bullet and perform a fresh install on the SSD again and set everything up manually.


  • I have hit a bit of a snag. Quick rundown of what I have done. I attempted to use clonezilla but then I learned that it can’t clone a larger partition to a smaller partition, even if it is mostly “empty” space. So I learned how to use gparted from a live USB version of Linux mint to size the partition on my hdd with all of my stuff on it to be the same size as my new SSD (8tb to 4tb) so that it could clone to it. Well clonezilla ran for a couple hours overnight and then when I went to check things in the morning I got an error attempting to mount the drive as described in step 12. I don’t remember the error specifically,something about a super block, but my googling told me it was most likely an issue with the cloning process. So I decided to just follow your directions exactly and use disc destroyer for the first time. It took five-ever as in almost 5 hours to copy everything over lol but I am able to mount it as described in step 12, great joy! But then at step 13 when I type sudo nano /newboot/etc/fstab I am told that it doesn’t exist. I mosey on over in the file browser and sure enough there is no file at that location. For shits and gigs I run sudo nano /etc/fstab to look at the one on the live USB version of Linux mint and it doesn’t seem to be what I should be looking for either:

    overlay / overlay rw 0 0 tmpfs /tmp tmpfs nosuid,nodev 0 0

    I thought about saying YOLO but then I remembered this was the exact UUID stuff I was worried about when I read the thread from Google so I thought I’d ask before just trying to boot the SSD and seeing what happens.

    Also I have some clarifying questions about the last few instructions. Step 15 says to remove the source HDD before booting, which I can do to test that the SSD cloned successfully but after the test I do want to be able to put the HDD back in to the computer and reformat it as extra storage space. Does that change anything about what I should do? If I want to use both drives together do the UUIDs still need to be identical? Or should they be different in that case?

    Thanks again so much for your help, I feel like I’m making progress and Im accidentally learning quite a bit in the process.









  • I really appreciate your help with this. With your changes we have even acheived some partial success!

    I did verify the package location with which google-drive-ocamlfuse, and replaced the ~ with %h.

    The current configuration for ocamlfuseStartup.sh is:

    #!/usr/bin/env bash
    /usr/bin/google-drive-ocamlfuse /home/tyler/googledrive
    

    startup.service is now:

    spoiler
    [Unit]
    Description=Startup Script
    
    [Service]
    Type=simple
    Restart=always
    RestartSec=60
    ExecStart=/bin/bash %h/.local/bin/ocamlfuseStartup.sh
    
    
    [Install]
    WantedBy=default.target
    

    This current configuration leads to 0=SUCCESS, and boy howdy was I ELATED! Until… I realized that it didn’t actually do the thing… The directory %h/googledrive remains empty unless I manually run the command “google-drive-ocamlfuse ~/googledrive” as before.

    Interestingly enough, status shows all good in the hood as far as I can tell:

    spoiler
    ~> systemctl --user status startup.service --now
     startup.service - Startup Script
         Loaded: loaded (/home/tyler/.config/systemd/user/startup.service; enabled; preset: disabled)
         Active: activating (auto-restart) since Sat 2025-03-29 15:37:04 CDT; 58s ago
     Invocation: 96b64438a1be4e36a12018e86418d8c6
        Process: 3822 ExecStart=/bin/bash /home/tyler/.local/bin/ocamlfuseStartup.sh (code=exited, status=0/SUCCESS)
       Main PID: 3822 (code=exited, status=0/SUCCESS)
            CPU: 49ms
    

    journalctl also shows no whammies as far as I can tell:

    spoiler
    ~> journalctl --user -xeu google-drive-ocamlfuse.service
    Mar 29 15:33:54 DESKTOP-MDJUBMM.attlocal.net systemd[1716]: Started FUSE filesystem over Google Drive.
    ░░ Subject: A start job for unit UNIT has finished successfully
    ░░ Defined-By: systemd
    ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
    ░░ 
    ░░ A start job for unit UNIT has finished successfully.
    ░░ 
    ░░ The job identifier is 704.
    Mar 29 15:38:56 DESKTOP-MDJUBMM.attlocal.net systemd[1716]: google-drive-ocamlfuse.service: Scheduled restart job, restart counter is at 2.
    ░░ Subject: Automatic restarting of a unit has been scheduled
    ░░ Defined-By: systemd
    ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
    ░░ 
    ░░ Automatic restarting of the unit UNIT has been scheduled, as the result for
    ░░ the configured Restart= setting for the unit.
    Mar 29 15:38:56 DESKTOP-MDJUBMM.attlocal.net systemd[1716]: Started FUSE filesystem over Google Drive.
    ░░ Subject: A start job for unit UNIT has finished successfully
    ░░ Defined-By: systemd
    ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
    ░░ 
    ░░ A start job for unit UNIT has finished successfully.
    ░░ 
    ░░ The job identifier is 806.
    lines 16-38/38 (END)
    

    So I am once again stumped. I feel like it’s so close.

    However, with resources from others in this thread I have begun a war on two fronts. Introducing our newest contender ~/.config/systemd/user/google-drive-ocamlfuse.service Which as far as I can tell is another way of skinning this cat that doesn’t involve a seperate .sh file to be called. Seems cleaner than the angle I had started working from, but what do I know. Special thanks to Oscar with his github link to documentation and after some iterative monkeying google-drive-ocamlfuse.service looks like so:

    spoiler
    [Unit]
    Description=FUSE filesystem over Google Drive
    After=network.target
    
    [Service]
    ExecStart=google-drive-ocamlfuse /home/tyler/googledrive
    Restart=always
    RestartSec=300
    Type=simple
    
    [Install]
    WantedBy=default.target
    

    And again 0=SUCCESS and premature elation, but alas no joy. Remarkably similar status and journalctl entries, so I remain stumped. Or possibly double stumped…

    spoiler
    ~> systemctl --user status google-drive-ocamlfuse.service --now
     google-drive-ocamlfuse.service - FUSE filesystem over Google Drive
         Loaded: loaded (/home/tyler/.config/systemd/user/google-drive-ocamlfuse.service; enabled; preset: disabled)
         Active: activating (auto-restart) since Sat 2025-03-29 15:49:00 CDT; 1min 5s ago
     Invocation: 813f1d3ce9fd4c21b409074a9fca7776
        Process: 4271 ExecStart=google-drive-ocamlfuse /home/tyler/googledrive (code=exited, status=0/SUCCESS)
       Main PID: 4271 (code=exited, status=0/SUCCESS)
            CPU: 42ms
    
    ~> journalctl --user -xeu google-drive-ocamlfuse.service
    Mar 29 15:43:57 DESKTOP-MDJUBMM.attlocal.net systemd[1716]: Started FUSE filesystem over Google Drive.
    ░░ Subject: A start job for unit UNIT has finished successfully
    ░░ Defined-By: systemd
    ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
    ░░ 
    ░░ A start job for unit UNIT has finished successfully.
    ░░ 
    ░░ The job identifier is 908.
    Mar 29 15:48:58 DESKTOP-MDJUBMM.attlocal.net systemd[1716]: google-drive-ocamlfuse.service: Scheduled restart job, restart counter is at>
    ░░ Subject: Automatic restarting of a unit has been scheduled
    ░░ Defined-By: systemd
    ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
    ░░ 
    ░░ Automatic restarting of the unit UNIT has been scheduled, as the result for
    ░░ the configured Restart= setting for the unit.
    Mar 29 15:48:58 DESKTOP-MDJUBMM.attlocal.net systemd[1716]: Started FUSE filesystem over Google Drive.
    ░░ Subject: A start job for unit UNIT has finished successfully
    ░░ Defined-By: systemd
    ░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
    ░░ 
    ░░ A start job for unit UNIT has finished successfully.
    ░░ 
    ░░ The job identifier is 1031.
    lines 46-68/68 (END)
    

    I have attempted to run these competing services seperately as well as in tandem with the same lack of results. I feel that if I can’t get it licked soon I will kick systemd to the curb and attempt another method outlined in the github link provided by Oscar. Most likely the fstab method that he mentioned because it sounds violent and that’s the vibe at the moment lol. Once again thank you for any and all assistance.


  • I like to have a decently firm grasp of the commands I type into the terminal so either I’m too high or what you’re throwing down is more advanced than I’m comfortable with. Thank you for your help though. Especially regarding the broken environment, I think I am dealing with some of that now as I am now receiving an error 127. I added the full path for the google-drive-ocamlfuse package but am still receiving the error 127 so I will try to load it’s dependencies next time similar to your which sed example.




  • Thanks a ton for your help! I’m not quite there but I feel like I’m learning more lol

    With your help I have made the changes you listed as well as some other changes while trying to troubleshoot. In no particular order:

    Moved ocamlfuseStartup.sh to ~/.local/bin/ocamlfuseStartup.sh because I now am more familiar with what an immutable distro is and does and also added the shebang. File now reads:

    #!/usr/bin/env bash
    /usr/bin/google-drive-ocamlfuse ~/googledrive
    

    Moved startup.service to ~/home/tyler/.config/systemd/user/startup.service, file now reads as follows:

    [Unit]
    Description=Startup Script
    
    [Service]
    Type=simple
    Restart=always
    RestartSec=60
    ExecStart=/bin/bash ~/.local/bin/ocamlfuseStartup.sh
    
    
    [Install]
    WantedBy=default.target
    

    I am now getting (code=exited, status=127) when I run “systemctl --user status startup.service --now.” Which I have googled and determined that it is now having difficulty finding the program or one of the dependencies according to the bash man page. I attempted to troubleshoot this error by adding the full location of the program /usr/bin/google-drive-ocamlfuse to the ocamlfuseStartup.sh file. I’m unsure how to proceed from here though. Once again, super appreciative of your help. I’m going to bed now though…



  • Oh I see. I’m still pretty new to linux so I didn’t realize that tumbleweed was immutable and I guess it also didn’t really dawn on me that I was monkeying around in protected directories as I followed along with various resources trying to understand the commands and things. I now see how that could cause some issues.

    So I guess a better question would be, what is the best way to go about getting an immutable distro to run that command for me at boot? cron job? Thanks for your guidance.