I’m looking to upgrade drives on two of my machines. My server running ubuntu has a 3.5" and will be getting a larger capacity HDD, while my personal computer running endeavor OS will be going from a 2.5" ssd to an nvme drive. (Not sure if it helps giving the drive types, but can’t hurt).
I’m fine with a clean install and reinstalling everything, but to save some time I’d of course like to minimize the effort that goes into it (importing settings etc). Any tips/tricks for either? Thanks in advance
If you don’t want to reinstall the OS, you can probably use Clonezilla: https://clonezilla.org/show-live-doc-content.php?topic=clonezilla-live/doc/03_Disk_to_disk_clone
Maybe you need to update the drive ids for your bootloader (grub) afterwards, not sure about that.
Edit: Maybe the advanced “-g auto” option does that for you.
Clonezilla can also update grub. Last time I upgraded system drive I had to do nothing.
This is looking like a good option, thanks!
Try Foxclone. I prefer it over Clonezilla.
Why do you prefer it?
I find the UI pretty slick. No confusion over what needs to be done. All the tools are there plus I had to rely on it recently to get one of my machines back up and running. It worked flawlessly and restored everything from the backup images like my system had never been down.
Good points. I’ll have to try it.
Set up a proper backup system for your server. I like to use borg. Just to be safe, make a copy of your drive as well (like full disk rsync). Then do a clean install and restore as if your drive had failed. If your backups missed anything, you will now know and can fix your backup system and can still recover from your rsync’d drive.
You might also want to take this opportunity to start administering your server with code, like using ansible or other remote provisioning tools. This makes your system configuration reproducible so that you only really need to back up a few kinds of data like media files or databases.
dd then resize the fs?
Edit: one caveat here I forgot: if your fstab is using UUIDs, you’re going to have to update that, since the new drive won’t be the same UUID because, well, it’s not the same drive.
Any help with the acronyms? I’m still pretty new to Linux
two commands: dd and resize2fs, assuming you’re using ext4 and not something more exotic.
one makes a block-level copy of one device to another like so: dd if=/dev/source-drive of=/dev/destination-drive
the other is used to resize the filesystem from whatever size it was, to whatever size you tell it (or the whole disk; I’d have to go read a manpage since it’s been a bit)
the dd is completely safe, but the resize2fs command can break things, but you’d still have the data on the original drive, so you could always start over if it does - i’d unplug the source drive before you start doing any expansion stuff.
dd is completely safe.
Only if you have the correct args and device names. Make a backup if you want to do it from the command line and aren’t feeling 100% confident.
Absolutely this. Relatively quick and clean, no messing with installation or reconfiguration. That is, assuming your data isn’t completely corrupted and the old drive doesn’t just outright fail during transfer… But if that happens you were screwed to begin with.
When I’ve needed to transfer data over to a new disk, I’ve used gparted from a live usb to copy/paste partitions directly. Once that’s done, you’ll probably need to update /etc/fstab to point to the new drives and run
update-grub
(assuming you are using grub) to update the bootloader config.I just do clean installs anymore not a lot to do with Linux as vs Windows, Linux takes me like 30 mins to setup as vs Windows can take hours.