Few questions before migration to Endeavour OS

I’m not a tootal noob on linux but I don’t have much experience, at least not with solving problems ect… :slight_smile: I have few questions.

  1. Do I need Btrfs filesystem to use timeshift for creating OS snapshots? I needa a way to quickly revert back if something goes wrong on update.
  2. It’s safe to use Btrfs or is better to go with ext4 ? I read that Btrfs is not stable in can cause data loss for no reason.?
  3. What is a good / proper way to set partitions? From what I read is good to mount /home on separate partition, so you don’t loose data in case you have to reinstall everything but you loose space for programs.
  4. Do I need swap(I have 32gb of ram) ?
  5. If I need swap, how big needs to be and is better to have a partition for it or just use file?
  6. any other tips?

No. btrfs snapshots are faster and use drastically less disk space. rsync snapshots are more portable.

With exception of some historical kernel bugs, btrfs rarely fails “for no good reason”. IMO, the issue with btrfs is that, due to it’s design, it is more likely to have complete data loss in the event of failure. Typically this is caused some form of improper shutdown.

Ultimately, you need to consider if all the special features of btrfs are important to you. If not, you are better off with ext4 or xfs.

This is entirely a matter of personal preference and something of a pseudo-religious debate among Linux enthusiasts who all have their own version of “best”.

With a traditional filesystem, I never recommend having a separate /home. I either recommend a single / for everything or keeping your data on a separate volume from everything else. That being said, many people do recommend a separate /home so it comes down to preference in the end.

Do you need to hibernate/suspend to disk? If so, you need swap to do that.

Even if you don’t, it is a good idea to have some amount of swap. In your case I would recommend zram if you don’t need suspend to disk support. It is compressed swap in memory.

It depends why you need swap.

Don’t obsess over the details. Your first try is going to be a learning experience no matter how much you plan. Just jump in and expect that after you learn more you are going to change your mind about how you want things to work.

15 Likes

Dobrodošel na forum! :smiley:

While everything @dalto said here is spot on, I would especially concentrate on the last sentence he said: don’t overthink it, it’s all a learning experience.

There are countless ways to set up partitions and filesystems. Only with experience will you know what works best for you.

That said, here is my recommendation for newbies who need a simple configuration to get started (and this is how I set up pretty much all my systems). It is simple and will be satisfactory in most cases. There is nothing fancy about it.

You have 32 GB of RAM, if this is a desktop computer, you don’t need it to hibernate. In that case, you don’t need to worry about swap at all when you install. Now, even a computer with a lot of RAM benefits from having swap, so after install, you can set up a swap file. Make it 6 GB, that’s plenty, and put it on your fastest SSD (ideally, NVMe, if you have it). With 32 GB of RAM, you will use swap very rarely, and you will never notice any degradation in performance due to swap.

Regarding partitioning, keep it super simple.

On your main drive (the fastest SSD you have):

  • you need an EFI partition, which should be some 256 MB (that’s more than enough, unless you boot multiple OS) and it should be formatted as vfat.
  • the rest make one partition, format it as ext4. No swap, you’ll make a swap file later.

For every other drive, keep it as one partition per drive, formatted as ext4. You can set up those other drives after you install the OS.

That should cover some 80-90% of all use cases, it’s simple and foolproof, great for newbies as well as for experienced users (though the latter usually have their own preferences).

Regarding your /home directory, making a separate partition for it is pointless (and will be quite limiting). It’s much simpler to keep /home on your root partition. Now, inside the home directory, you’ll have other directories like Pictures and Downloads. You can use these directories and others as mountpoints for your other drives. My recommendation is to mount all your additional internal drives inside your home directory (assuming you are the only person using this computer, of course). The benefit of that is that you will not have to bother with permissions and ownership. Other people might disagree with this recommendation of mine, and will insist that all drives have to be mounted in /mnt. I think they are wrong, but in the end, it’s a matter of personal preference.

This is how you make a swap file on ext4 drive:
https://wiki.archlinux.org/title/Swap#Swap_file

If you want Timeshift, you can set up rsync snapshots. They are slower than btrfs snapshots, but work perfectly fine. And if, down the line, you decide you want fancy btrfs features, you can always reinstall the OS, it’s not a big deal.

Regarding losing data, always have a backup of all files you don’t want to lose. This is not so much a matter of choosing a filesystem but the fact that all hardware will eventually fail and when SSDs fail, typically that means data is unrecoverable. So keep it backed up, preferably on external drives. Storage nowadays is fairly cheap and it’s not worth the frustration of losing important data.

6 Likes

Thanx both bor detailed answer.

@Kresimir => Hvala :slight_smile:

I will try not to overthginking it and just jump in. If you don’t choose manual partition, installation gives you an option to create swap file but nowhere is specified how big it will be. What exactly creates that option? … or is better to skip it and create it manually later?

I have another important question I forgot to ask. Currenly I’m working on Ubuntu and I update various packages almost every day. From what I saw in virtual box on Endeavour OS is similar. I’m wondering when things can go wrong and is good to create a snapshoot before update? …probably this everyday minor updates are for apps only and don’t include system / kernel updates where things can break?

Creating a swap partition later is very difficult – it should really be done on install, if you want one. On the other hand, creating a swap file is very easy after install, and you can easily create another one if the one you made turns out to be too big or too small. That’s the main advantage of using a swap file over a swap partition. A disadvantage of a swap file is that if you want your computer to hibernate, that’s a bit more difficult to set up (but doable).

So, if you want a swap file, install without any swap, and then when you have an installed, fully functional OS, just create a swap file.

Arch (and consequently, EndeavourOS) is a rolling distro. There are pretty much always updates available. If you want, you can update 10 times a day. All packages are treated pretty much equally, when there is a new version of, say, LibreOffice available, it will be updated when you next update your system. Same thing with the new version of the kernel. There is no difference. You also cannot pick and choose which packages to update, typically, it’s all or nothing (well, that’s not entirely true, but partial updates are unsupported and can cause issues ranging from mild annoyance to unbootable system).

Things rarely break in my experience, especially if you don’t use a NoVidya graphics card.

When I was using Manjaro, I was quite cautious of updates breaking things. Manjaro has less frequent, bigger updates. On the old Manjaro forum, there was always a poll where people voted whether the update went smoothly or things broke, and there were always people reporting breakages. Nothing ever broke on my system, but still, I was nervous and I would use Timeshift and set it for daily snapshots.

Here on EndeavourOS (which is pretty much the same as vanilla Arch), I am much more confident. I just update whenever I remember to. I don’t use Timeshift. If something breaks, and it rarely does, usually it’s a very minor thing that can either be fixed within a few minutes, or a minor annoyance that will be fixed in a day or two with the next update.

I would recommend using the linux-lts kernel instead of the mainline one, but keep both installed. That way, if a kernel breaks on update, you have another one that can boot.

3 Likes

(deleted by author)

This is phenomenal advice, and an approach I hope more users can take. I already knew it was going to be a learning experience for myself having never really given an Arch-based distro a proper try (outside of a brief stint with Manjaro). That was actually one of the reasons why I chose EndeavourOS, but jumping right in can be daunting at first, even with a plan in place. Sometimes the hardest step is that first step. But as long as you have a desire and a willingness to learn @replenish you’ll have an interesting (hopefully good!) time using EndeavourOS :wink:

And just to add my own anecdotal advice, I considered Btrfs over Ext4, but I had to be honest with myself and realized I’d never actually use any of Btrfs features, so stuck with Ext4, which is perfectly fine for a filesystem. My only other tip really is search the forums, EndeavourOS wiki, and Arch wiki first since a lot of what you might be looking for has possibly already been answered. I’d say jump right in! :smiley:

3 Likes

It is up to you. If I am being honest, I have had to restore a snapshot to from a failed update. That is over quite a few years and a lot of installs.

That being said, if you want that, there is a package called timeshift-autosnap in the AUR that will automate that process for you. It takes a snapshot automatically when you update.

1 Like

I’m not going to reanswer the question because @dalto as always nailed them. I’m just going to share how I have my system set up.

I have 2 internal hard disks and 3 externals. Internal 1 is an SSD 128 Gb and the other is a normal HDD 1Tb. I’ve my efi boot and / on my SSD and I have my /home on my HDD the entire disk is dedicated to that partition. Do I see much of a difference when it comes to performance? Not that I can mention.

I don’t use btrfs like you I faced the same dilemma which to use. I scovered the internet to learn more about btrfs but in the end, I decided to use ext4. Because for one I don’t use all the new stuff btrfs brings it’s much more gear towards industrial server type machines as a home user I really don’t need them and the real thing I would have used is the integrated ability to keep snapshots. ext4 is more than enough for normal daily use and it supports enough data storage.

Max. volume size	1 EiB (for 4 KiB block size)
Max. file size	16 TiB (for 4 KiB block size)
Max. number of files	4 billion (specified at filesystem creation time)
Max. filename length	255 bytes

And I run timeshift with timeshift-autosnap so every update timeshift makes a rsync snapshot on one of my external hard drives. All my external hard drives are perma mounted as data drives.

I have bot files uploaded to GitLab and MEGASync just in case and have a pacman software list if I need to reinstall the software I have in my system. Everything else I run them in Virtual machines including Windows, so I don’t have to break my system when I go testing stuff.

I do a fun fledged time shift backup before doing any major changes.

I also ALWAYS practice on a VM or even my test laptop before adding/removing things from my daily so I don’t screw anything up.

When I first started I was significant more diligent with backups than I am today

Expect to break everything at first. You learn more fixing/reinstalling than you will if you just plug and play and nothing ever goes wrong

Thanx for suggestion. I will check it out how to install another kernel and how to swith between them :slight_smile: I never done that.

My goal is to install OS once and keep it for entire current PC life. Main problem is that I need it for work and I can’t afford to be without it for a day or two if something goes wrong.

Does imeshift-autosnap still need to be triggered or configured somehow, or is it enough to install it in addition to timeshift?

The same as any other package. Couldn’t be easier. For example, to install the lts kernel, just run:

sudo pacman -S linux-lts linux-lts-headers

The post transaction hooks will automatically configure your bootloader, so that you can select which kernel to boot at startup.

Great, thank you very much. I tried and it works. Is that other kernel just for case when main doesn’t work? Are there any difference for me If I start with one or another?

There is a config file in /etc. It is a hook so it should just be a matter of making sure everything in the config is the way you want it.

2 Likes

thx @dalto :ok_hand:t2:

2 Likes

I would recommend the lts kernel for daily use, unless you have specific reasons to use mainline kernel (like very recent hardware).

There is no general answer to this. It depends a lot on your hardware. In most cases, you will probably not notice any difference. The biggest difference is that lts kernel is much less likely to be broken on update, because it is thoroughly tested and no new features are added to it. This is not to say that the mainline kernel is likely to get broken, it is not, but if you are afraid of updates, use lts kernel.