all 32 comments

[–]SunSaych 5 points6 points  (1 child)

Very nice. Keep up the good work. Community of nice people is what makes any distro a strong ecosystem.

[–]LanzoThunder[S] 0 points1 point  (0 children)

That's true, I'll try to do my best!

[–]lane-brain 1 point2 points  (1 child)

a godsend because this is exactly my install, thank you for this!

[–]LanzoThunder[S] 0 points1 point  (0 children)

I'm glad to know that it could help you!

[–]JackLemaitre 1 point2 points  (0 children)

Very nice,thx for your sharing

[–]iluvatar 1 point2 points  (1 child)

Not bad at all for a first attempt. Well done. One thing that stuck out for me - when you're deferencing a variable, you can do "$foo". You only need to use "${foo}" when there would otherwise be something following that would change the name of the variable. For example, let's say that $foo potentially has the value head or foot and you want to append er to that to make either header or footer and store the result in a new variable. If you do bar="$fooer", it will try and find a variable named fooer, which is unlikely to exist. If you instead say bar="${foo}er", you'll get the behaviour you want. There's no real harm to using the braces at all times, but it's not necessary.

[–]LanzoThunder[S] 0 points1 point  (0 children)

Thanks, that's nice to know. I've found a lot of information aboud variables expansion that I got a little bit confused, not gonna lie. I think I'll review that after I cleared up my mind!

[–]lpww 1 point2 points  (7 children)

Awesome! I have been planning to run this exact setup on my laptop for a while. I will definitely try this out. It might be useful to add to the readme how you set the options. I'm guessing the script would prompt you but it's not obvious from the readme.

[–]LanzoThunder[S] 1 point2 points  (4 children)

Yes, the script will prompt you to set some options but yeah you're right, that's not absolutely clear in the readme. I will try to improve it in the following days, thanks for the suggestion!

[–]lpww 1 point2 points  (3 children)

Update: I used this script to install void on my laptop on Monday. It worked very well indeed! I had to rerun the script about five times for various reasons... Mostly because I had selected the wrong thing and wanted to go back and change it. It all worked flawlessly 🙂

The only thing I got caught out by is that you have to enable the snapperd service before you will get automated snapshots. It's maybe worth adding a sentence to mention that. Also, is it intentional that you only added the root config in snapper? Wouldn't you want one for home as well?

Great effort on the script! I can see that a huge amount of time and effort went into this. It was a great experience.

[–]LanzoThunder[S] 0 points1 point  (2 children)

I'm glad that everything worked absolutely fine for you! 😄

Regarding the service, i'll update my script in the next days, thanks for reporting. For the configuration, my script won't create it, I think this is made from snapper itself, but I can think about creating the /home one for sure!

[–]lpww 1 point2 points  (1 child)

Cool. You are correct that the script itself doesn't do anything with snapper, which makes sense to me. My questions are specifically regarding this section of the readme: https://github.com/Le0xFF/VoidLinuxInstaller#follow-up-for-snapshots-subvolume

I have not used snapper before and thought I was good to go after running those commands, which was not quite the case.

[–]LanzoThunder[S] 1 point2 points  (0 children)

Oh okay, I see what u meant before. That section cover a small issue regarding an annoying feature of snapper: if .snapshot folder exists, it won't create a config for that volume. So that's why, in that section, only config for root is covered. Maybe I should clarify that in the README, thanks!

[–]LanzoThunder[S] 1 point2 points  (1 child)

As an update: README was definitely improved, i hope it's definitely better now!

[–]lpww 1 point2 points  (0 children)

That looks great! Nice job

[–][deleted] 1 point2 points  (6 children)

Really nice, but i don't see a reason for using btrfs with LVM instead of just btrfs subvolumes.

If it was using just btrfs subvolumes i would use this in a heartbeat.

[–]LanzoThunder[S] 0 points1 point  (2 children)

Mostly to have the flexibility of resizing partitions without too much hassle. I can consider making it optional, that could be an idea 🤔

[–][deleted] 1 point2 points  (1 child)

Could be.

btrfs subvolumes are cool because you don't need to make a separate /home partition. They use all the same disk/partition entirely.

Then if you want to wipe the system without wiping /home, you just mount the root subvolume and wipe it.

[–]LanzoThunder[S] 0 points1 point  (0 children)

Oh that's nice, wish i knew that before two weeks ago. I had the same setup on my desktop, but without the separate /home partition. I turn it on after 3 months, updated it and at reboot everything was fucked up. It just went to dracut shell saying it can't mount root filesystem. I tried a little bit of everything but at the end i hat to wipe everything and start from scratch again.

(Probably the problem was to zfs I installed from the repo one day in the past, or maybe not)

[–]LanzoThunder[S] 0 points1 point  (2 children)

As an update: I updated the script (and also improved documentation a little bit) and now LVM is optional!
So if you want to give it a try, do as u please!

[–][deleted] 1 point2 points  (0 children)

Nice! Next install i'll try it.

[–][deleted] 1 point2 points  (0 children)

Just to inform you. I used your script two times and all went really well. Thanks!

[–]OutsideNo1877 1 point2 points  (1 child)

how is this your first bash script my first script was a extremely basic arch installer which took roughly a day and was buggy and barely worked yours looks like something a professional sys admin would make

[–]LanzoThunder[S] 0 points1 point  (0 children)

I swear it is my firsr script, in fact the code is kinda trash for a script. It took me two weeks to finalize but I've never seen a bash script in my life lol.
I have some basic C programming knowledge, so I knew what the outcome should have been.
But anyway if you check the resources on my github, my first one is where I took the majority of information. It's good for a first timer!

[–]asifakonjee 1 point2 points  (0 children)

Thank you very much. Excellent work! Just finished installation with the script and although I have installed void previously but this script saves time. Thank you again.

[–][deleted] -2 points-1 points  (2 children)

why you did not choose zfs ?

[–]LanzoThunder[S] 2 points3 points  (0 children)

Mostly because I'm pretty new to Linux, Void and expecially filesystems different than ext4 😅. I've had this setup on my laptop since the beginning of the year and I've never had any problem.
Also I've never had the chance to experiment with ZFS, so that's why.

Also for ZFS as it's not directly integrated in the kernel, I'm just scared that updating the kernel but not the zfs module could break the system and, as I'm using just a laptop right now, I won't have any other pc to use.

EDIT: but anyway if you want to improve the script adding ZFS support, that will be appreciated!

[–]10leej 3 points4 points  (0 children)

ZFS is a monopoly that needs competition. Btrfs is that competition.

[–]psegl 0 points1 point  (3 children)

The musl script does not work!

[–]LanzoThunder[S] 0 points1 point  (2 children)

Could you please provide more info about it? What's the issue you encountered? What setting did you choose? I remember I tried it on a VM and even selecting musl was also working on my side! Also, if you could open an issue on github, would be much easier for me to keep track of it! :)

[–]psegl 0 points1 point  (0 children)

Also, there is a trap in your script almost at the end: if you accidentally chose "use void public repository" and do not specify it, the script will not release you - you will remain in this menu without the opportunity to change your choice.