• 9 Posts
  • 231 Comments
Joined 1 year ago
cake
Cake day: February 17th, 2024

help-circle



  • I’ve been using Ubuntu server on my server for close to a decade now and it has been just rock solid.

    I know Ubuntu gets (deserved) hate for things like snaps shenanigans, but the LTS is pretty great. Not having to worry about a full OS upgrade for up to 10 years (5 years standard, 10 years if you go Ubuntu pro (which is free for personal use)) is great.

    A couple times I’ve considered switching my server to another distro, but honestly, I love how little I worry about the state of my server os.






  • Thank you for the link!

    I do understand the logic and the difference between ;, &&, and `||. What was confusing me was the command grouping and my misunderstanding of the curly brace grouping rule that the command list has to END with a semicolon. @SheeEttin@lemmy.zip pointed out to me with the link in the comment they left.

    I had read that same link and misunderstood it. On second read I got it, and see now why my script is working, as the newlines serve the same purpose as the semicolon, so the curly braced groups are terminated correctly.


  • My environment is just my homelab. Ubuntu server on my server, Arch (btw) on my laptop. So I could go with any language , but right now I’m choosing Bash. I know stuff I’m doing would probably be easier in a different language, and maybe I’m a glutton for punishment. I just want to get really good with Bash.

    The logic is Bash is gonna be available on just about any computing environment I encounter (linux especially, but even Windows with WSL and zsh on macOS (which I know is different, but still very similar). But really, I am just enjoying the hell out of learning and scripting with Bash. I’ll move on to Python or something someday.








  • Perfect. So you’ve got separate /boot and /boot/efi partitions, which means dual booting will be much easier if you want to do that.

    The ubuntu--vg-ubuntu-lv is the logical volume you’ll want to resize. So now we need to see how much space is available on the volume. To get that, run the command sudo df -h and paste that output into a comment.

    From there we can figure out how much space you have and how you might want to resize the volume to prep for a new install.

    What is challenging about this is that your data is under your root (/) mount, which is also the ubuntu os. If in the end you want to entirely remove ubuntu, it’ll be a little trickier than if your data was in a separate logical volume that you mounted into your root system during boot.

    For example many people have a separate logical volume for /home, which makes it easier to switch distros while preserving your home folder with all of your user data, config files, etc…

    But that’s getting a little ahead of ourselves. Start with sudo df -h for the filesystem usage info and we can go from there.



  • Okay, more details will be required, but here’s what I’m thinking will work.

    One of the benefits of an LVM is its pretty easy to resize it.

    The outline of what you can do is this (and we can refine the steps with more details)

    Right now you’ve got your 8TB physical volume, and within that, you should have your volume group, and within that volume group, you should have one or more logical volums that are mounted for your system. The idea is to resize the existing logical volume by shrinking it, creating addition space within the volume group that can be used to create a new logical volume. Then, that new logical volume can be used to install Fedora.

    Depending on how much free space you have on the entire physical volume, you could potentially dual boot Fedora and Ubuntu. Roughly speaking, the steps would look like this:

    WARNING: These steps are not exhaustive because I don’t know the full details of your system. This is not meant to be a guide for you to immediately implement and follow, but to help get you down the right path DO NOT FOLLOW THESE STEPS WITHOUT FIRST FULLY UNDERSTANDING HOW THIS WILL APPLY TO YOUR UNIQUE SYSTEM SETUP.

    1. Download a Linux ISO of your choice. Ubuntu, Fedora, it doesn’t really matter. This one is going to be used to live boot on your server so you can make adjustments to your lvm without having the lvm mounted.
    2. Boot into the live usb
    3. Once you get to the desktop environment of the live usb dismiss any installation prompts, etc and open a terminal
    4. Install the logical volume tools with sudo whatever-the-package-manager-install-command-is lvm2
    5. If your volume group is encrypted (typically with LUKS), you’ll need to decrypt it to make sizing changes to the lvm(s) in the volume group. You can decrypt it with:
      1. cryptsetup open /dev/your-disk-here name-of-your-volume-group
      2. For example, on my system if I were doing this it would be cryptsetup open /dev/nvme0n1p2 server (I very creatively named my server volume group server)
    6. Once you can access your volume group, you can use the df command to see how much space is free in your volume group. The full command you’ll want to run is:
      1. sudo df -h
      2. This command will list all mounted disks along with filesystem usage data. With this you should be able to determine how much free space you have in your volume group.
    7. Once you’ve determined how much free space you have, you can decide how big you want to make your new logical volume. For example, if your current usage is 6TB out of the 8TB total, you could resize the current logical volume down to 7TB, and then create a new logical volume that’s 1TB in size for the Fedora install
    8. You will do the resize using the lvm2 tools installed. The command to shrink the logical volume looks like this:
      1. sudo lvreduce --resizefs --size -1TB /dev/your-volume-group/the-lvm-name
    9. Once you’ve shrunk the lvm, You can create your new lvm

    IMPORTANT NOTES:

    1. If at all possible, you should really back up the data. If you don’t have any kind of backups in place, you’re risking losing all of your data, not just in doing this operation, but in general.
    2. If you want to dual boot, things are more complicated because of where your /boot exists