Void Linux Install 2026 – Btrfs and Encryption — Transcript

Step-by-step Void Linux installation guide with BTRFS and LUKS1 encryption in a VM, updated for 2026 by Jake@Linux.

Key Takeaways

  • Void Linux can be installed securely with BTRFS and LUKS1 encryption via command line.
  • Using LUKS1 is preferred over LUKS2 currently due to GRUB compatibility issues.
  • Partitioning correctly and selecting the right disk is critical to avoid data loss.
  • The process remains largely unchanged but an updated guide helps build user confidence.
  • Virtual machines are a safe environment to test and learn Void Linux installation.

Summary

  • Jake@Linux provides an updated walkthrough for installing Void Linux in a virtual machine using the command line.
  • The installation includes setting up a GPT partition table with a 200MB EFI partition and a main root partition.
  • The root partition is encrypted using LUKS1 due to better GRUB support compared to LUKS2.
  • The EFI partition is formatted as FAT32 and labeled accordingly for boot purposes.
  • The encrypted root partition is formatted with the BTRFS filesystem and labeled 'void'.
  • Jake emphasizes careful disk selection to avoid data loss during partitioning.
  • The video addresses common user requests and the trend of switching away from systemd-based distros.
  • Jake mentions allergy interruptions to add a personal touch and authenticity to the tutorial.
  • He explains the use of cryptsetup commands for encryption setup and opening the encrypted volume.
  • The video aims to provide reassurance with a current and reliable installation method despite minimal changes from previous versions.

Full Transcript — Download SRT & Markdown

00:03
Speaker A
[music] What's going on, everybody? Welcome back to the channel. I hope you guys are having a great day so far. So, today what we're going to do is we are going to do a Void Linux install. And yes, I
00:12
Speaker A
know I've done a lot of these on my channel, but I have had quite a few requests lately and a lot of people asking, and you see a lot of people switching away from the whole systemd debacle.
00:22
Speaker A
I call it a debacle, but you know, whatever. It is what it is. It's what's going on right now. So, I do see a lot of people switching away. I've had a lot of people ask about it. So, we're going to run
00:30
Speaker A
through a complete install of Void Linux from the command line with BTRFS and encryption. Yes, I do have a video out about this. It's a couple years old now though, so I figured I would just do an updated version even though not a whole
00:42
Speaker A
lot has changed in the process. In fact, I can just still run that same exact script that I had in the video before or process, excuse me, not script. Run through the same process and have a completely up and running Void system
00:54
Speaker A
perfectly fine. But, I figure getting one out that's current might give people a little bit more peace of mind on installing it and, you know, not thinking they're getting something old.
01:05
Speaker A
So, we're just going to go ahead and jump right in. We are going to go ahead and install Void Linux in a virtual machine from the command line with BTRFS and encryption. So, let's just go ahead and get to it. So,
01:17
Speaker A
first things we're going to do is, excuse me, first thing I'm going to do is respond to my wife who just texted me.
01:30
Speaker A
And now we are going to turn the volume down on that because we're trying to make a video here. I could have paused that, but you know, life is life and people like to see life too, right? So,
01:39
Speaker A
anyway, first thing we're going to do is we are going to go ahead and uh take a look at our system. So, like I said, I'm installing this in a VM, so you can see my disk is VDA right at the
01:49
Speaker A
bottom there and it's 50 gigs. Now, make sure you pay attention to where you're installing it, whether it's SDA, NVMe, whatever it is, go ahead and make sure you use the correct disk when you go through this whole thing because you
02:00
Speaker A
will run into problems if you have stuff stored elsewhere, it will be gone. So, first things first, what we need to do is we need to prepare the device. So, we are going to run Fdisk and we're going
02:09
Speaker A
to say dev and we're going to do VDA because again, that is my drive. We're going to hit enter.
02:15
Speaker A
And we are now in the Fdisk utility. First thing we need to do is we need to create a partition table. So, we're going to hit G for GPT partition table or [snorts] disk label, excuse me. That gives us a our GUID and everything. So,
02:26
Speaker A
first things first, now once we've done that, we'll hit N for a new partition, hit enter. We can go ahead and leave the default at one. We can leave the default first sector alone as well, but then on
02:34
Speaker A
the second sector, last sector, we're going to hit plus 200 capital M. This [snorts] is going to give us 200 meg partition and this will be used for our EFI partition. When we hit enter, we can go ahead and press one for type or
02:47
Speaker A
excuse me, T for type and enter and we're going to select one because one sets it as an EFI partition. So, you can type L if you want to list all the partitions, but I know the number one is the EFI partition. So,
02:59
Speaker A
we're going to hit enter. And there you go, you can see it changed the type of partition Linux file system to EFI file system. Now, we're going to go ahead and hit N again. Partition number two, we can hit enter for default just fine.
03:10
Speaker A
First sector, we can leave as default as well and last sector, we can leave as default because we are going to take up the whole rest of this disk. Now, we don't need to do a file type on the
03:19
Speaker A
error partition type on this, so we can just hit W for write. It's going to go ahead and write all that and now we can clear the screen.
03:26
Speaker A
We can run lsblk and hit enter and you can see it now. We've got VDA, VDA1 and VDA2. So, we have two partitions. Partition one, which is going to be our EFI partition and partition two is going to be our
03:38
Speaker A
main root partition. So, now that we have that done, we need to start making No, no, excuse me, we need to encrypt.
03:44
Speaker A
So, first step we're going to do is we are going to encrypt. So, what do we need to do there? Once we've got the drive all partitioned out, we are going to use the cryptsetup. So, one thing I
03:54
Speaker A
will note on this is we're going to use LUKS 1. Same thing as I used on the last one.
03:58
Speaker A
I hear LUKS 2 doesn't have great GRUB support, so I haven't messed around with it because LUKS 1 has worked perfectly fine for me.
04:06
Speaker A
[snorts] So, we're not going to get into switching over to LUKS 2. If you feel more comfortable using LUKS 2 or whatever else, you can look into using LUKS 2 for this or by all means, if you know that
04:15
Speaker A
LUKS 2 works fine with GRUB now, let me know in the comments because, you know, maybe next time I'll switch over to LUKS 2. But, for this video, we are going to go ahead and use LUKS 1.
04:26
Speaker A
So, what we need to do is we need to run the cryptsetup command. So, cryptsetup and we're going to say luksFormat. So, and then we're going to give it the dash dash type and we're going to say LUKS 1.
04:42
Speaker A
And then we're going to say dash Y and we're going to do dev VDA and we're going to give it the second partition because we don't want to encrypt that EFI partition. We want to encrypt the second the second big
04:54
Speaker A
partition, the root partition. Excuse me, one second. I apologize if my voice starts to do that every so often and I have to either pause or mute.
05:12
Speaker A
Allergy season is upon us and well, you know, I've got allergies, so it really sucks. But anyway, so we've got cryptsetup luksFormat type LUKS 1 dash Y dev VDA2. We're going to go ahead and hit enter. This is
05:24
Speaker A
going to overwrite all data, so do you want to do it? Yes. We're going to have to type Now, we need to enter a super secret password that no one will ever crack ever in life. So, we're going
05:35
Speaker A
to go ahead and do that. It's going to take a second and verify that passphrase.
05:40
Speaker A
Unless I fat-fingered it. Nope, we are good to go. So, we now have our um We now have it encrypted, so what we need to do is we need to open that so we can actually work with it. So, we're
05:50
Speaker A
going to do cryptsetup again. If I can type. We're going to do cryptsetup open and we're going to say dev uh Yeah, excuse me, dev VDA uh [snorts] two and we're going to give it a name. I'm just going to call it
06:10
Speaker A
cryptvoid. Let me make sure I spelled that correctly. c r y p t v o i d. Last thing I need is a typo that's going to give me hell when I'm trying to do this video.
06:19
Speaker A
So, cryptvoid. We're going to hit enter, enter our super secret pass passphrase we just created.
06:26
Speaker A
And now we are open and we can work with it. So, what we're going to do now is we are going to format the partition. So, first things first, we need to do mkfs dash fat.
06:37
Speaker A
We'll give it the dash capital F and say 32. We'll give it dash N and we'll say EFI. We'll say dev VDA1. So, we are formatting and uh uh setting the file system to fat32 on our EFI file system. So, we're going to
06:55
Speaker A
go ahead and hit enter. That has created that. Now, we're going to do mkfs dash btrfs and we're going to give it the dash L and we'll say void and we'll say dev mapper cryptvoid. So, mkfs dash btrfs dash L void.
07:20
Speaker A
You can name it whatever you want. That's just the label. I'm naming it void and we're going to open or we're going to do it to dev mapper cryptvoid.
07:27
Speaker A
We're going to hit enter. We've got that all done. If we clear the screen and run lsblk, we can now see that we have VDA1, VDA2 and cryptvoid underneath it. So, um first things first, now we're going
07:41
Speaker A
to create a variable for our mount options. So, what we're going to do is we're going to call it bopts for BTRFS options.
07:51
Speaker A
We're going to say equals and we're going to go with noatime. Now, you can do rw, but that's the default. So, I just kind of leave it out because it automatically does that and that's just
08:04
Speaker A
But, you can do something like rw, no atime, but we're just going to leave no atime and we're going to say compress equals zstd discard equals async.
08:20
Speaker A
So, now we've got bopts equals no atime compress zstd and discard is async. So, we're going to hit enter. We've got that stored. So, now what we're going to do is we're going to mount. We're going to mount dash O and we're going to say
08:36
Speaker A
bopts bopts [laughter] We'll do dev mapper crypt [snorts] void. [sighs] And we will do /mnt. So, this is going to go ahead and mount that partition in our mount directory and we're going to hit enter and we should be good to go.
09:00
Speaker A
So, once we've got that mounted, it's the top level we're going to mount. Now, we're going to go ahead and create some subvolumes. So, for subvolumes, we do btrfs and we're going to do sub volume create.
09:13
Speaker A
And we're going to do /mnt /@ and that's going to give us our root.
09:19
Speaker A
We're going to hit enter and now we're going to do the same thing, but we're going to do mount at home and hit enter. So, that gave us our home subvolume and then we're going to do erase home and say snapshots
09:33
Speaker A
and hit enter. So, now we've created three subvolumes. We have our root, we have home and we have snapshots. So, now we are going to umount /mnt. So, we're going to unmount our mount directory or our Yeah, excuse me, our mount directory.
09:49
Speaker A
And now we are going to do mount and we're going to do dash O and we're going to give it the BTRFS option. So, bop bopts [snorts] That was a bad That was a bad name to call it. So, I'm going to do B opts.
10:05
Speaker A
We're going to give it the space. We'll do subvol = @ and we'll do dev mapper I can't type this morning.
10:20
Speaker A
cryptvoid and we'll do /mnt and hit enter. So, now we have uh mounted that.
10:27
Speaker A
So, we are going to create our mount directories that we want to mount our other subvolumes in. So, let's go ahead and do mkdir and we'll do /mnt and then / and we'll do a curly brace so we can create this all in one uh one
10:41
Speaker A
command instead of creating each one individually. So, we need an EFI, we need a home, and we need a dot snapshots so we can keep our snapshots directory as well. So, mkdir /mnt/ and then in curly braces with a comma-separated list, you want to
10:59
Speaker A
list the different uh um subvolumes you created. So, if you created any more outside of the ones I just recommended, the the root, home, and snapshots, then you need to add those into this list.
11:10
Speaker A
We're going to hit enter. We've created all those. So, now let's go ahead and mount the rest of our subvolumes. So, we're going to do mount -o and we're going to do B opts.
11:21
Speaker A
Um and then we're going to do s subvol = @home and we're going to do dev mapper cryptvoid and we're going to do [snorts] /mnt/home.
11:39
Speaker A
So, that's going to mount our root or excuse me, our home subvolume in our home directory.
11:46
Speaker A
So, we're going to go ahead and enter. Um now we're going to press up and we're going to do the same. We're going to change this though to snapshots and we are going to mount that in mount/dot.snapshots.
12:03
Speaker A
So, that one is in our root directory hidden under our dot snapshots. Um so, we're going to hit enter.
12:10
Speaker A
And then we're going to create some nested volumes for directories that we don't need to include in any snapshots we may create because they just take up too much space um and they're really unnecessary in there. So, what we're
12:20
Speaker A
going to do is we're going to do mkdir and we're going to give it the dash p flag and we're going to do /mnt/var/ cache cache and hit enter.
12:33
Speaker A
And then we're going to do cache xbps. So, just press the up key to bring up that previous command, that's like mkdir -p mount var cache, and we are going to add append the xbps to the end of it and
12:46
Speaker A
hit enter. And then we're going to use the up key again to bring that command back up and we're going to scroll back and we're going to do var temp. So, mkdir -p /mount/var/temp and hit enter. And then if we press up
13:01
Speaker A
one more time, we're going to do /mount srv um and we're going to hit enter. So, now we've created uh some directories that are not going to be included in snapshots. They're just going to be nested. Um so, now we need to go ahead
13:13
Speaker A
and mount our EFI partition. So, we're going to do mount -o and we're going to do rw /noatime [clears throat] / and we're going to do /dev and we're going to do VDA1 and we're going to do it as /mount/efi.
13:34
Speaker A
So, that mounts our uh EFI partition, the dev VDA1 or SDA1 if if you're on SDA or NVMe 0n1p1 if you're on an NVMe um so, make sure again you you're using the correct disk, but uh so, we're going
13:50
Speaker A
to go ahead and mount that there. We're going to hit enter. And now we're going to do df. We're going to give it the dash h and we're going to check to make sure we got everything there. So, we have uh dev
14:01
Speaker A
mapper cryptvoid cryptvoid cryptvoid VDA1. So, we've got a mount mount home mount snapshots and EFI. So, we are good to go. Let's go ahead and clear the screen.
14:11
Speaker A
[gasps] And next we are going to uh install our base system. So, we need to set up a mirror and architecture. So, first thing we're going to do is we are going to type repo and we're going to hit equals
14:23
Speaker A
and we'll do https colon slash slash and we're going to say I think this might have changed, but we're going to see.
14:32
Speaker A
Um actually yeah, give me 1 second here. I want to look at something. Uh let's see.
14:42
Speaker A
[snorts] And there we are. Let me just take a look. I just want to make sure we are Let's use a different mirror for this install than I did for the last one cuz I'm if I recall correctly, the last time
15:02
Speaker A
I did my install, I had to change my my mirror. So, let's do https repo um let's use the fastly. So, we'll do repo-fastly.
15:15
Speaker A
If you want to know where you can find all the different Void mirrors, you can go to xmirror.voidlinux.org um it'll give you a list of all the mirrors, uh their last sync date or last sync time um and kind of put them in
15:26
Speaker A
order of tier one, tier two, uh which ones are best. So, we're going to do uh repo-fastly.void linux.org Um so, that's going to be our repo. So, https colon slash slash repo-fastly.voidlinux uh dot org.
15:44
Speaker A
Um we're going to go ahead and hit enter. We're going to do arch for architecture is going to equal x86_64.
15:53
Speaker A
We're going to hit enter. And once we're done with that, we are going to do mkdir. So, we're going to copy our package signing keys so that way, you know, we we have them. Um so, we're going to do mkdir -p and we're
16:07
Speaker A
going to do /mnt/var/db/keys. Um No, excuse me, /xbps/keys. Um I think that's right. mount var db xbps keys mount var db xb Yeah, yeah, that's right. And hit enter. Then we're going to cp and we're going to do / var uh db
16:35
Speaker A
xbps keys and we're going to give it the star and we're going to copy that to /mnt var [snorts] db xbps keys.
16:47
Speaker A
Um and hit enter. So, that copied all our keys over and now we are going to go in and install the base system uh with our BTRFS and our encryption tools. So, what we're going to do is we're going to
16:57
Speaker A
do xb ps um _arch. Sorry, I'm drawing a blank here. Um my brain is a little fried. Uh and then we're going to do arch xbps -install uh -S -r um and then repo um -r mount and then we want
17:31
Speaker A
base system linux-mainline. You can do um linux-linux-mainline. You can You can install the kernel you'd like here. We're going to do btrfs uh [snorts] progs I believe it is and cryptsetup and vim. So, for our base install, we're
17:55
Speaker A
just going to install some Let's do this to mainline headers linux firmware. Um so, anyway, we're going to do the base system. We're going to do linux-mainline btrfs-progs cryptsetup vim linux-mainline-headers and linux-firmware.
18:18
Speaker A
Um and we're going to hit enter. I think those are correct. Errors in fastly. Why are we not repo-fastly.voidlinux.org x86_64 repo data failed to fetch.
18:33
Speaker A
Hold on 1 second here. All right, what is going on here? Uh let's see here. xbps-install the repo.
18:40
Speaker A
Repo is https colon slash slash void repo-fastly.voidlinux.org. x86_64. Let me see. Okay, let's try this again. So, we're going to change that repo. So, we're going to make repo equal to um https colon slash slash um repo-default Let's see if this works.
19:12
Speaker A
dot voidlinux.org Yeah, we're going to try this one. And then we're going to go up. We're going to try this command again. So, xbps architecture is going to equal our x86_64 architecture and the default of the repo is going to be
19:27
Speaker A
repo-default.voidlinux.org. And we're going to go ahead and hit enter. And it failed to fetch repo-default.voidlinux.org x86_64 repo data.
19:39
Speaker A
[sighs] Okay, one more time. We're going to go ahead and change uh change this repo because I think I left out current is what I forgot and we're going to go ahead and enter and we're going to try this one more time
19:55
Speaker A
and I am sorry about this big stupid mess. We're going to hit enter and there we go. Now we are finally sinking. So this will take a minute to go ahead and go through and sync and install. Do you
20:06
Speaker A
want [snorts] to continue? We're going to go ahead and hit yes, we want to.
20:09
Speaker A
It's going to download packages, take a few minutes, but we will be back to you shortly and we'll continue with this.
20:15
Speaker A
Again, sorry about that mistake. Okay, and now we are back. The install has finished. Um after those few little hiccups, I'm sorry about that. It's been a minute since I've actually gone through the install and I knew something
20:31
Speaker A
had changed and I had messed up with something last time and I obviously didn't catch it. So sorry about that, but hey, you know, that's how life works sometimes. You don't get it all right on the first shot every time, but
20:42
Speaker A
um as long as you get it right eventually, that's what matters. So let's go ahead and keep moving here. So we are going to go ahead and mount our pseudo file system. So let's go ahead and do for DIR in dev, proc, sys, run,
20:54
Speaker A
colon. We'll say do mount dash dash rbind slash DIR slash mnt slash DIR colon mount dash dash make dash rslave slash mount slash dir colon done and hit enter.
21:26
Speaker A
Oh, I type typo. Got to love that. Uh m o u t n mount. Okay, there we go. Now let's clear the screen again so we're not so cluttered and hit enter and now that we've got that done, we are going to go ahead and
21:40
Speaker A
copy our DNS config. So let's do CP and we're going to do ETC resolve.conf and we're going to copy that to slash mount slash ETC and hit enter.
21:54
Speaker A
Uh LS slash mount slash ETC uh make sure it's there. Um resolve.conf uh we are good to go. So let's clear the screen again. Uh so now that we've got that computer copied over, we're going to do bopts
22:10
Speaker A
equals and we're going to change this a little bit. So we're going to do noatime uh we're going to compress equals zstd uh we're going to say discard equals a sync again.
22:30
Speaker A
And we'll say PS1 and we're going to say equals chroot. Uh let's put that in parentheses.
22:44
Speaker A
chroot and we'll do [sighs] space. We'll give it the pound sign, hashtag, whatever you want to call it. I don't know what you young'uns call it nowadays. CHroot and do slash mnt and we'll do slash bin slash bash.
23:00
Speaker A
And hit enter. Now we are in chroot, chroot, whatever you want to call it.
23:05
Speaker A
And we're going to go ahead and configure the system. Everything from here we're going to do inside of this CHroot environment. So first things first, we need to set up the time zone.
23:14
Speaker A
So we're going to do LS and then we'll do slash user share and it is zoneinfo.
23:23
Speaker A
Zoneinfo yeah. I think so. Now let's just do yep, zoneinfo. Okay. So there we got all the list of everywhere you can put. So we are going to actually do ln sf and we're going to do the user share
23:37
Speaker A
zoneinfo and I am in America and we'll just do Chicago cuz that's the uh uh closest to me. Um not in Chicago obviously. I've said this a million times, but I'm just going to say it again. We'll say ETC and we'll do uh
23:56
Speaker A
local time. So now we have copied our zone information to ETC local time. We're going to hit enter.
24:04
Speaker A
Now we're going to edit our local file. So we are going to vim because we installed that on our base install and we're going to do ETC and we're going to say uh default and lib c locales and hit enter and we are going
24:20
Speaker A
to search for en _US and there we are right there. We've got UTF-8 and so we're going to go insert and we're going to uncomment those and we're going to write and quit.
24:32
Speaker A
That's for English UTS or English and hit enter. You're going to go ahead and pick whichever one where you are, you're going to go ahead and change your locale to that. Um so we are going to now do xbps. Actually, let's clear the
24:44
Speaker A
screen and we're going to do xbps dash reconfigure. Um and we're going to do dash f glibc glibc locales and hit enter. Now it's going to go ahead and generate the locales for us.
25:05
Speaker A
Good and done. Configured successfully. And next step is we are going to create our host name. So we are going to echo and we're going to create a unique host name. So you can create whatever host name you want to.
25:20
Speaker A
Uh we're just going to do uh void VM as our host name and uh we're going to go ahead and put that into slash ETC host name.
25:32
Speaker A
And hit enter. And now if we cat slash ETC host name and [snorts] hit enter, you can see we've got void VM as our host name. So next thing we need to do is we need to um We've set our host name, so we need to
25:47
Speaker A
create our host file. So if we want to go ahead and have internet and everything, I want to have a local host and all that, we need to set up our ETC slash hosts. So what we're going to do
25:56
Speaker A
is we're going to say cat and we're going to go with um EOF and then ETC hosts and hit enter and we're going to do 127.0.0.1 local host and then we're going to do colon colon one local host and hit enter and we're going
26:27
Speaker A
to do 127.0.1.1 equals um void VM uh dot local domain uh [sighs and gasps] space void VM. So this is what's going to be inside your slash ETC slash hosts. We're going to hit [snorts] enter and we're going to EOF and hit enter. Now if we
26:52
Speaker A
cat ETC hosts, you can see we've got our local host all set up. So first things now first thing definitely not the first thing. Now what we're going to do is we're going to set up our password. So we're going to say p
27:04
Speaker A
a s s w d and hit enter and our new super secret uncrackable password. You can make it the same as your um lux password if you want. You can make it different than your lux password.
27:14
Speaker A
Just go ahead and set up a password. Now we're going to create a regular user. So we're going to do useradd and we're going to give it a username. Of course, I am Jake.
27:25
Speaker A
I can't even spell my own name. So we're going to Jake. We're going to hit enter.
27:27
Speaker A
We're going to say pass word Jake and hit enter. We're going to do a new super secret password that's definitely not the same as my root password, correct? And then we're going to do usermod dash a g and we're going to add the user
27:42
Speaker A
to whatever groups we want. So wheel um disk network video audio um whatever groups you want your user to be a part of, you can add them later on if you want or whatever. But so right now we'll just do wheel, disk, network,
28:03
Speaker A
video, audio and then your username. Um we're going to go ahead and hit enter. So now we've been added to those groups.
28:10
Speaker A
And now we are going to um set our editor and we are going to edit our sudoers file. So we are going to do editor equals vim visudo and hit enter. And now we're going to find wheel and so there we have the wheel.
28:32
Speaker A
Uncomment to allow members of the wheel group to execute any command. Yes, we want that. So we're going to go to insert mode. Now there's something else you can do here. A lot of people tell me you don't have to do this. Some people
28:41
Speaker A
tell me yeah, it's better to do this. I don't care one way or the other what you do or what you don't do, but I always do it. So we're going to do Jake all equals and then all colon all
28:54
Speaker A
all. So I give myself as the user permission to do everything. Some people don't like that. Some people do. That's up to you. That's your preference. So that step right there, you can copy or not copy. Just change Jake to your
29:04
Speaker A
username if you do. We're going to write and quit. Let's clear the screen. So now we've got our sudoers file set up. So what we're going to do now is we are going to um [clears throat] enable all the repositories. So we're
29:18
Speaker A
going to do xbps dash install dash s. So we're syncing. And once we're done syncing, we're going to go [clears throat] ahead and add the nonfree repo and uh multilib repo and go from there.
29:34
Speaker A
So what we're going to do now is we are going to do um xbps dash install and void repo nonfree void repo multilib and hit enter. And this is going to install these two repos. You don't have to do this. You can if you
29:56
Speaker A
want. Um and then we are going to run xbps-install -s to sync those repos as well.
30:07
Speaker A
And once that's done, we are going to go ahead and create our fstab um or fstab, whatever you want to call it. So, what we're going to do now as now, excuse me, is we're going to cat and we're going to put this into
30:20
Speaker A
/etc/fstab. We're going to hit enter and we're going to say UUID equals root Oh, excuse me, I got to create the Got to create the variables first, Jake.
30:38
Speaker A
You're getting a little bit ahead of yourself. So, what we need to do is we need to create our UUID variables. So, we're going to do efi_ UUID. Let's clear the screen first. I get so close to the bottom of the screen
30:51
Speaker A
that you guys should just yell at me. So, we're going to do uh efi_uuid equals and we're going to give it the blk id -s and we're going to say UUID -o value and then dev vda1. So, that's
31:14
Speaker A
going to give us the UUID of dev vda1, which is our EFI partition, which is why we want the EFI UUID. So, we're going to hit enter. Then we're going to say root_uuid equals blk id -s UUID -o value dev mapper, remember, cuz now
31:41
Speaker A
we're doing our encrypted uh partition and we're going to say cryptvoid and close that and we're going to hit enter. And then we are going to do lux not lix lux UUID equals block id -s UUID -o value and now we're going to give it the
32:12
Speaker A
dev uh vda2. So, hit enter. So, now we've got our EFI UUID, our root UUID, and our lux UUID.
32:22
Speaker A
So, once we call those variables, it's going to actually run that command that's um that they're calling and it will get us the uh UUID partition or the UUID for the different partitions, so we can put them in our fstab. So, let's go ahead
32:37
Speaker A
and cat eof etc fstab tab. There we go. Holy cow. And then we're going to say UUID equals We're going to say dollar sign root_uuid and we're going to give it the /btrfs and we're going to say bopts
33:02
Speaker A
and subvol equals at and then we're going to do zero space one and hit enter and we're going to say UUID equals and then we'll say root_id UUID We're going to say /home [sighs] and we're going to say btrfs
33:28
Speaker A
and then we'll do bopts bopts [laughter] subvol equals at home and we're going to give it zero two and then we're going to go UUID equals and we'll do dollar sign root_uuid/ .snap shots cuz remember we created that
33:57
Speaker A
.snapshots directory and that is btrfs and we'll do bopts and then we'll say sub vol equals at snapshots and we'll do zero two and hit enter and then we're going to do UUID equals efi_uuid and we are going to do /t or going to do
34:28
Speaker A
/ um /efi vfat Sorry, I got a little ahead of my notes there. Uh default It's funny, I can sit here and do this on my own um installing my own system without following any notes or anything like
34:44
Speaker A
that, but as soon as I try to walk through it for people and explain as I'm going, my my brain fries. So, it's funny. Doing it on my own and just hammering through the commands, I can do this no problem.
34:53
Speaker A
Creating a video to help you people walk through it, I have to have my notes up and uh so, it's just weird. I'm not used to glancing over at notes and so, I apologize for any uh fumbling through anything. So, we're
35:05
Speaker A
going to do no atime and we're going to do zero two and hit enter and we're going to do tmpfs and we're going to do /tmp and we're going to do tmpfs.
35:17
Speaker A
We're going to say defaults no suid and nosuid. There we go. No suid, didn't think that looked right. No dev and then we'll do zero zero um and hit enter and then we'll do eof.
35:37
Speaker A
There we go. So, now if we cat etc/fstab, you can see we have our UUIDs listed in there. We've got tmpfs and we are good to go. So, let's clear the screen and now we are going to install grub. So, we
35:51
Speaker A
are going to do a xbps-install and we're going to do grub um -x 86_64 but since we're on an EFI system, we want to do -efi and hit enter.
36:11
Speaker A
Yes, we want to go ahead and install it. Uh so, we're going to let that run through here real quick and that's installed, so let's clear the screen. This whole time I've been typing clear, well, we're in bash,
36:25
Speaker A
so I can do control L to clear the screen as well. It's just habit to type clear, so I am sorry. Um so, now that we've got that installed, we're going to enable enable encryption support. So, we're going to echo
36:35
Speaker A
and we're going to say grub_enable _ _cryptodisk. Sorry, I sometimes have to spell things out loud to myself equals [snorts] y and then we're going to do etc default grub. So, echo grub enable cryptodisk equals y and we are going to
36:56
Speaker A
append that to our etc/default/grub and we're going to hit enter. And now we're going to vim into etc default grub and hit enter.
37:13
Speaker A
So, once we're in there, we need to find the grub command line Linux default line and we're going to update it. So, grub command line Linux default, you can see right here we've got log level equals four.
37:25
Speaker A
So, we're going to add on to that line. So, we're going to go into insert mode.
37:28
Speaker A
We're going to add a space um and we're going to do rd.auto equals one and we're going to do rd.
37:39
Speaker A
luks.a a lot not / .allow uh /dis or space discards. cards. There we go. Okay, not space dash. Wait. See?
37:52
Speaker A
Fumbling through like crazy. So, log level equals four, rd.auto equals one, rd.luks.allow-discards. So, once we've got that added in, we can go ahead and write and quit. Clear the screen again to get us back up to the top.
38:08
Speaker A
And we're going to do grub-install and we're going to do dash dash target uh equals x 86_64 -efi and then we'll do dash dash efi directory um equals /efi and then we'll do dash dash bootloader -id equals void. So, grub-install -
38:45
Speaker A
-target=x86_64-efi --efi-directory=/efi and --bootloader-id=void. We're going to go ahead and hit enter. That's going to go ahead and install and if we get a no issues, we will be able to move on. So, installation finished, no error reported. That is
39:05
Speaker A
what we want to see. So, now we are going to do grub um -makeconfig-o /boot/grub/grub.cfg and hit enter.
39:21
Speaker A
Now, we went ahead and configured our grub configuration file. Excuse me 1 second. All right, sorry about that. Um okay, so now we've done grub-makeconfig-o boot/grub/grub.cfg to generate our grub config file. Now, what we're going to do is we are going to go ahead and set up a
39:38
Speaker A
key file. This is optional, but it is definitely recommended. This lets you avoid typing your password twice when you boot up. So, [clears throat] we're going to go ahead and create a key file from random data. So, what we're
39:49
Speaker A
going to do is we're going to do a DD BS equals 515. We're going to say count equals four.
39:59
Speaker A
We're going to say IF equals dev u random. Um and then we'll say OF equals {slash} boot um {slash} keyfile .bin.
40:15
Speaker A
Boot Yeah. Yeah. Um so, input file is going to check is going to do dev u random. So, it's like I said, it's basically going to uh um um create a key file from random random data. Holy crap, my brain is fried
40:30
Speaker A
already. Um and it is going to store it in boot keyfile.bin. So, we're going to go ahead and do that.
40:36
Speaker A
We're going to hit enter. Uh so, we've got that done. Um now, what we're going to do is we're going to add it as a second key for the encrypted volume. So, we're going to do cryptsetup.
40:46
Speaker A
So cryptsetup um we're going to do {dash} V a- or lux not add lux add key and we'll do dev uh VDA two cuz that's our our root directory and we'll do {slash} boot {slash} keyfile.bin. So, we're going to do
41:11
Speaker A
cryptsetup {dash} V lux add key dev and SDA2 VDA2 whatever your root partition is and then {slash} boot keyfile.bin. So, we're going to hit enter enter any existing passphrase.
41:27
Speaker A
So, So, now we've unlocked the key slot. And key slot one created. Command is successful. So, now what we're going to do is we're going to do a CHMOD and we're going to do 000 and we're going to do {slash} boot
41:48
Speaker A
{slash} keyfile.bin and enter and we're going to CH mod or CHMOD as some people will say G uh {dash} RWX comma [snorts] O {dash} uh RWX Yeah, {slash} boot.
42:15
Speaker A
Um so, this is going to secure your key file. So, um go ahead and hit enter.
42:20
Speaker A
And next, we are going to create crypttab. This is going to tell the system to use the key file. So, we are going to say cat and we're going to do EOF ETC crypttab Um we're going to enter and we're going
42:38
Speaker A
to say cryptvoid. So, that's the name of our encrypted partition cryptvoid. Um UUID equals and remember we created the lux UUID variable earlier. So, we're going to do lux {underscore} UUID.
42:54
Speaker A
Um we're going to do {slash} boot {slash} keyfile.bin and we're going to do lux.
43:02
Speaker A
And then we're going to hit enter and we're going to do EOF. So, we're going to cat and we're going to do a here doc and we're going to do ETC crypttab and we're going to add the cryptvoid and the UUID
43:13
Speaker A
for the lux UUID and then boot {slash} keyfile.bin. We're going to hit enter. And we're almost done, folks. Um thank you for sticking out with me. Um so, next thing we're going to do is we're going to configure dracut to include the
43:26
Speaker A
key file in the basically initial RAM disk. Um so, what we're going to do is we're going to say echo and we're going to do install {underscore} items um then we'll do plus equals and then we'll do space {slash} boot
43:43
Speaker A
{slash} keyfile .bin um and then we'll do space ETC crypttab space and then we're going to do ETC dracut.conf .d and then we'll do 10 {dash} crypt.conf.
44:15
Speaker A
So, we're going to echo that into ETC dracut.conf.d 10 crypt .conf. [laughter] And we're going to go ahead and hit enter.
44:31
Speaker A
So, now that we've got that done, our final setup here, we are going to um go ahead and LN. We're going to enable our DHCP for wired connection if you got it. So, we'll do {dash} S. Well, we
44:43
Speaker A
don't really need to do that on here, but let's actually install Well, yeah, I'm on a I'm on a VM, so I guess it's going to So, we're going to do um I'm so used to installing on hardware.
44:55
Speaker A
{dash} S and we'll do {slash} ETC SV DHCPCD and we'll do that to var service. Now, here is where if you're working on Wi-Fi, if you weren't in a VM, you'd want to install like network manager or something along
45:10
Speaker A
those lines using XBPS install network manager and then you'd want to link network manager to your var {slash} service if you are using Wi-Fi. If you're a wired connection, you're going to want to have the DHCPCD just like we did here. Um we're going to
45:23
Speaker A
go ahead and hit enter and then we are going to do XBPS-reconfigure and we'll do {dash} FA and hit enter.
45:31
Speaker A
It's going to go ahead and reconfigure this. And at that point, we should be done and ready to exit and reboot. So, let's just go ahead and see what happens here.
45:42
Speaker A
And once this is done and we will see if we were successful or if this whole video was a waste of time.
45:49
Speaker A
Golly, with the amount of times I've installed Void Linux, I will hope this is successful. But like I said, doing it myself, just hammering out the commands as opposed to writing it out and doing it for you guys and explaining
45:58
Speaker A
everything I'm doing. And that's that's not pointing blame at you guys by any means, but uh somehow I just get a little tongue-tied and fumble over my words and I can't type for squat, but uh yeah, so hopefully this works and I
46:11
Speaker A
don't look like a complete fool. But while I've got you guys here and everything's going, um oh, no, we're done. So, I won't spoil what I was going to spoil for you because that'll be in my next video. But
46:20
Speaker A
uh let's go ahead and clear the screen. Uh let's go ahead and exit. Um and let's reboot and hit enter and fingers crossed that this works because otherwise I just wasted a good 2 hours of uh the day. Enter passphrase. So,
46:40
Speaker A
uh attempting to decrypt. Fingers crossed. If it says slot zero open, I am going to jump up and down and be super happy and things are going to be Oh, slot open. We're going to hit enter.
46:54
Speaker A
And we are going to boot in and what do we get? It's going to take a second and starting Let's see here. Cannot continue due to errors above. Unknown parameter default.
47:10
Speaker A
Uh let's see here. No, let's see here. Welcome to Void. Mounting pseudo file system. Remounting root FS read only.
47:23
Speaker A
Uh scanning BTRFS register dev master cryptvoid. Activating encrypted devices. Already exist. Uh checking file systems. FSCK.
47:34
Speaker A
Mounting root FS read write. Mounting all non-network. Mounting EFI failed. VFAT unknown parameter default.
47:42
Speaker A
Um we have more information. I can't believe I just ruined this whole darn install video.
47:49
Speaker A
Um okay. Well, we're going to exit. Oh, well, there we go. I'll have to change some issues here, but let's see if we can at least log in. Oh, we're logged in. Uh what do we got changed here? Um
48:06
Speaker A
What do we got to do? Uh let's see here. We actually got it up and going. So, let's go ahead and cat our fstab cuz I think we might have an issue in there.
48:21
Speaker A
Uh let's see here. What do we got going on? So, I think Uh let's see.
48:35
Speaker A
You'll probably catch this a lot quicker than I will. But Oh, I see it. I see it. I see it. I see it. So, let's go ahead and sudo vim ETC fstab.
48:55
Speaker A
Right there. It's supposed to be defaults plural. So, we're going to do S. We're going to escape. We're going to write and quit. Now, let's reboot that.
49:08
Speaker A
And we're going to see what happens now. Maybe we will get lucky and that was my only issue. So, let's decrypt and go from there.
49:19
Speaker A
So, again, I apologize about that. If you followed along and got that same error because I typoed and yeah didn't didn't fix that, then I apologize. But hey, at least we figured it out.
49:33
Speaker A
Hopefully, fingers crossed. And there we go. Okay, so that took care of it. So look at that. We have our Void system all set up. We have a working Void very base TTY install with encryption with BTRFS and
49:54
Speaker A
sub-volume. So if we run lsblk, you can see we've got VDA1, VDA2, and cryptvoid with snapshots and home.
50:03
Speaker A
So we've got everything all set up. Again, sorry about the hiccups, but sometimes that's just the way things go.
50:11
Speaker A
But yeah, since it took so long on this one, I'm not going to be able to sit down and continue on here with the installing Nury and or a actual user space.
50:20
Speaker A
But hopefully within the next few days I can get that out and you guys can get Void up and going on your system. But by all means play around with that to begin with. You can install Gnome or Cinnamon
50:32
Speaker A
or any of the other desktops, XFCE, simply by running the command XFCE or sudo xbps-install and then said environment if you want to actually get it up and going so it's usable.
50:45
Speaker A
Um in fact uh you can install any desktop environments you want and then follow my next video to install Nury if you'd like. And so we'll get that set up next time and so that way you can have a super cool setup
50:57
Speaker A
just like I've got because you know what? I've got the greatest setup ever made and you all know it and you guys are just scared to say it. But no, that's not not the not the case I know.
51:06
Speaker A
But anyway, I hope you guys enjoyed this. I hope you guys have a great rest of your day, a great rest of your week. Follow me for more stuff. I got some stuff coming up that hopefully will knock your socks
51:15
Speaker A
off. I doubt it. But anyway, I got some more videos coming out now that I'm done with school. I want to be able to do this a little more frequently.
51:22
Speaker A
Keep up with you guys and remember you can find stuff like this on my merch shop. You can find it on my website or on my YouTube channel linked in the bottom.
51:32
Speaker A
Um self shameless plug there. I do have some other stuff going on too that you can help support the channel through.
51:38
Speaker A
Again, I hate I hate asking for money and support. You guys watching and everything is great and I appreciate it and that's all I expect from anybody.
51:45
Speaker A
But if anybody feels so led, support is greatly appreciated. I've got Patreon, buy me a coffee, YouTube memberships, or like I said, just just like, share, get my videos out, do what you need to do. But again, this has been a Void
51:59
Speaker A
install from TTY kind of sloppily done, but we've got it done. We've got Void up and going and yeah, good times. So I hope you guys have a great rest of your day, great great rest of your week. Stay
52:08
Speaker A
safe and God bless. [music]
Topics:Void LinuxLinux installationBTRFSLUKS encryptionLUKS1GPT partitionEFI partitioncryptsetupsystemd alternativecommand line install

Frequently Asked Questions

Why does Jake use LUKS1 instead of LUKS2 for encryption?

Jake uses LUKS1 because it currently has better GRUB support. He mentions that LUKS2 support in GRUB is not great yet, so he prefers to stick with LUKS1 for reliability.

What partition scheme is used for the Void Linux installation?

A GPT partition table is created with two partitions: a 200MB EFI partition formatted as FAT32 and a main root partition that is encrypted and formatted with BTRFS.

What precautions should be taken when selecting the disk for installation?

It is important to select the correct disk (e.g., VDA, SDA, NVMe) to avoid overwriting other data. Jake stresses verifying the disk to prevent data loss during partitioning.

Get More with the Söz AI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries, speaker detection, and unlimited transcriptions.

Or transcribe another YouTube video here →