Site Tools


start:howtoinstall

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
start:howtoinstall [2023/08/28 17:55] peterstart:howtoinstall [2024/01/24 19:45] (current) peter
Line 1: Line 1:
 +DATE CHECKED THIS PAGE WAS VALID: 28/08/2023
 +
 Overview: Having fun on Debian will mean we are installing Testing Branch so we get the latest most awesome software while using BTRFS. To accommodate security deficiencies in Testing we will be using a containerized version of Firefox as the default browser (and using chromium as a secondary browser for occasional emergency use). Snap security is very good, excellent even, and as the web is the main point of entry for malicious things for your install, this should be considered to prevent any issues (please don't complain you don't like snap, make your own arrangement in that case). By default Debian comes with the .deb version of Firefox ESR which is excellent but if there is a security bug in the testing branch there can be a delay before a patch arrives. In addition we will also secure a firewall on the local install (see later on in the guide). Once web is secure and a firewall is on you should be good to go so long as you don't ever run commands you saw on the internet you didn't understand, or that came outside of the official repositories. Don't make the mistake of adding repositories from 3rd parties, these can be very risky and in most cases you can use a different method, like flatpak,snap build from source etc. If you do have to, it probably means you need to log a feature request or bug to improve Debian. Overview: Having fun on Debian will mean we are installing Testing Branch so we get the latest most awesome software while using BTRFS. To accommodate security deficiencies in Testing we will be using a containerized version of Firefox as the default browser (and using chromium as a secondary browser for occasional emergency use). Snap security is very good, excellent even, and as the web is the main point of entry for malicious things for your install, this should be considered to prevent any issues (please don't complain you don't like snap, make your own arrangement in that case). By default Debian comes with the .deb version of Firefox ESR which is excellent but if there is a security bug in the testing branch there can be a delay before a patch arrives. In addition we will also secure a firewall on the local install (see later on in the guide). Once web is secure and a firewall is on you should be good to go so long as you don't ever run commands you saw on the internet you didn't understand, or that came outside of the official repositories. Don't make the mistake of adding repositories from 3rd parties, these can be very risky and in most cases you can use a different method, like flatpak,snap build from source etc. If you do have to, it probably means you need to log a feature request or bug to improve Debian.
 +
 +Note: Two video guides from YT creators showing a differing perspective / alternate view on how to do this is shown here: https://www.youtube.com/watch?v=MoWApyUb5w8 and here (using snapper instead of timeshift): https://www.youtube.com/watch?v=b4vTKg-qW_0
 +
 +Note 2: This guide purposefully leaves @home broken so this can be show, how to fix afterwards. This is crucial if you are not versed in btrfs and snapshots so you can develop an understanding how these subvolumes work, and can be manipulated. If you do understand you should be able to resolve during the setup, the creation of @home yourself. However if you cant complete the steps on your own, then following Step2, then Step3 will bring you into the understanding you need and resolve the @home missing. Its split purposefully over 2 Steps so you can learn and gain a better understanding.
  
 ==== Ventoy ==== ==== Ventoy ====
Line 9: Line 15:
 All data on the USB stick will obviously be lost so make sure you use one you have spare that does not contain files you need. All data on the USB stick will obviously be lost so make sure you use one you have spare that does not contain files you need.
  
-Step 1: Get a USB (big enough for several iso images) stick that can be formatted and delete all partitions on it. I use Gparted to do this (I make a GPT partition table under Device-Create Partition Table to blank it). Also note the device the USB stick is accessed by (in my example /dev/sdc):+Step 1: Get a USB (big enough for several iso images) stick that can be formatted and delete all partitions on it. I use GParted to do this (I make a GPT partition table under Device-Create Partition Table to blank it). Also note the device the USB stick is accessed by (in my example /dev/sdc):
  
 {{:images:gparted.png|}} {{:images:gparted.png|}}
  
-//gparted showing usb disk is blank and unformatted.//+//GParted showing USB disk is blank and unformatted.//
  
 Step 2: Step 2:
Line 45: Line 51:
 Download Small CD AMD64 ISO for Debian here: https://www.debian.org/distrib/netinst Download Small CD AMD64 ISO for Debian here: https://www.debian.org/distrib/netinst
  
-The small cd installer for Debian is the best unless you have some other requirements. If you need the super secret proprietary driver cd its hidden here but dont tell anyone. https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/current/amd64/iso-dvd/ +The small cd installer for Debian is the best unless you have some other requirements. 
-Dont use that cringe version unless you need to because you have an annoying wifi driver and you are stuck without any internet or something.+
  
 Once we have downloaded the ISO images simply copy or cut and paste them onto the VENTOY usb partition. You will end up with something like this: Once we have downloaded the ISO images simply copy or cut and paste them onto the VENTOY usb partition. You will end up with something like this:
Line 52: Line 57:
 {{:images:copiedventoy.png|}} {{:images:copiedventoy.png|}}
  
-We can now boot from this UBS stick and choose out of the ISO images you copy on what to boot up from. So you can add as many ISO's that you can fit onto the USB stick and carry around with you all sorts of install CD's. Windows 11 ISO's/Debian/Ubuntu/Arch/Kali whatever you want. Just copy them on and you are good to boot. Dont forget to always pull out safely. You want to eject the USB from the OS first so you dont corrupt any of the ISO images.+We can now boot from this UBS stick and choose out of the ISO images you copy on what to boot up from. So you can add as many ISO's that you can fit onto the USB stick and carry around with you all sorts of install CD's. Windows 11 ISO's/Debian/Ubuntu/Arch/Kali whatever you want. Just copy them on and you are good to boot. Don'forget to always pull out safely. You want to eject the USB from the OS first so you don'corrupt any of the ISO images.
  
 Step 6: Testing the USB boot. Step 6: Testing the USB boot.
  
-We are now ready to test the USB stick we just created works. On your Computer just ensure UEFI mode is enabled in the BIOS and the USB stick is selected as the boot device. We dont want to use legacy boot anymore when installing linux or any OS. This is an older method that is falling out of support.Its also super lame.+We are now ready to test the USB stick we just created works. On your Computer just ensure UEFI mode is enabled in the BIOS and the USB stick is selected as the boot device. We don'want to use legacy boot anymore when installing linux or any OS. This is an older method that is falling out of support. Its also super lame.
  
-One note is secure boot: for windows or Ubuntu secure boot works well after the OS is installed. But Debian still has some trouble with secure boot and NVidia drivers. If you are using Debian you might want to turn off secure boot if you intend to use proprietary drivers such as Nvidia (or they dont work at the time of writing but might be subject to change if and when I get it working with auto signing the drivers but I havent yet got it going in an automatic way like Ubuntu). Either way when installing a new OS you need to turn off secure boot or the BIOS will not boot anything other than the signed bootloader it was expecting, which is the OS currently installed on it. So in the screenshots below to test Ventoy you note secure boot is off.+One note is secure boot: for windows or Ubuntu secure boot works well after the OS is installed. But Debian still has some trouble with secure boot and NVidia drivers. If you are using Debian you might want to turn off secure boot if you intend to use proprietary drivers such as Nvidia (or they don'work at the time of writing but might be subject to change if and when I get it working with auto signing the drivers but I haven'yet got it going in an automatic way like Ubuntu). Either way when installing a new OS you need to turn off secure boot or the BIOS will not boot anything other than the signed bootloader it was expecting, which is the OS currently installed on it. So in the screenshots below to test Ventoy you note secure boot is off.
 (EDIT 16/05/2022 I managed to get secure boot working. Look at the front page for how I did it under the secure boot link - Pete). (EDIT 16/05/2022 I managed to get secure boot working. Look at the front page for how I did it under the secure boot link - Pete).
  
Line 80: Line 85:
 Step 2: Boot the ISO and select Advanced options - expert install. NOTE V IMPORTANT - YOU DO NOT WANT TO SEE BIOS MODE AT THIS STEP!!!!!!!! Note Difference between both screenshots below. BIOS MODE WILL PREVENT CREATING AN EFI PARTITION. Step 2: Boot the ISO and select Advanced options - expert install. NOTE V IMPORTANT - YOU DO NOT WANT TO SEE BIOS MODE AT THIS STEP!!!!!!!! Note Difference between both screenshots below. BIOS MODE WILL PREVENT CREATING AN EFI PARTITION.
  
 +{{:images:notbiosmode.png|}}
 {{:images:debianbooting.png|}} {{:images:debianbooting.png|}}
 {{:images:debianbootingcorrectly.png|}} {{:images:debianbootingcorrectly.png|}}
Line 86: Line 92:
  
 {{:images:expertinstalldeb.png|}}  {{:images:expertinstalldeb.png|}} 
 +
 //Above screenshot that shows the only option you will choose when installing Debian.//  //Above screenshot that shows the only option you will choose when installing Debian.// 
  
-Step 3: Once into Debians setup we will choose the usual settings like language, location, keyboard etc. This is very easy, you hit enter and select an appropriate option then hit enter and it moves you to the next step. Yo do not need to select additional locales. Just leave them deselected (unless you want some). Basically just select whats relevant until you get to detect and mount installation media and ensure that your USB storage has a * in it. On Load installer components from installation media you do not need to select anything normally. You will likely be an expert already and know if you needs to select something, but pretty much that is rare. So leave them all deselected and move on. You can detect network hardware, and configure the network automatically in most cases (ie you use dhcp). It should succeed and move onto setting a hostname. Here you can put in anything cool you like so make sure you choose a cool name like 'batman' or something. Domain name will be if you are on an enterprise network. If its a home PC just use workgroup.local or something boring like that.+Note: Installer for Debian 12 is the same but has a lighter blue background. Have checked the steps are the same at this point. Dont worry if the screenshots show Debian 11, it is the same process. 
 + 
 +Step 3: Once into Debians setup we will choose the usual settings like language, location, keyboard etc. This is very easy, you hit enter and select an appropriate option then hit enter and it moves you to the next step. You do not need to select additional locales. Just leave them deselected (unless you want some). Basically just select whats relevant until you get to detect and mount installation media and ensure that your USB storage has a * in it. On Load installer components from installation media you do not need to select anything normally. You will likely be an expert already and know if you needs to select something, but pretty much that is rare. So leave them all deselected and move on. You can detect network hardware, and configure the network automatically in most cases (ie you use dhcp). It should succeed and move onto setting a hostname. Here you can put in anything cool you like so make sure you choose a cool name like 'batman' or something. Domain name will be if you are on an enterprise network. If its a home PC just use workgroup.local or something boring like that.
  
-The next part is setting users and passwords. Say yes to shadow passwords and NO to login as root. Instead we will add a user who will then use the sudo command. Setup your user (ie name like Peter or Pauline) and give it a strong password you wont forget like YourMomIs100%Sexy or anything you want. You will then do the part where you make yourself a username. I'm not doing screenshots for this because its boring and easy. Configure your clock and detect the disks.+The next part is setting users and passwords. Say yes to shadow passwords (no longer asked on Debian 12) and NO to login as root. Instead we will add a user who will then use the sudo command. Setup your user (ie name like Peter or Pauline) and give it a strong password you wont forget like YourMomIs100%Sexy or anything you want. You will then do the part where you make yourself a username. I'm not doing screenshots for this because its boring and easy. Configure your clock and detect the disks.
  
 Next Major section:  Next Major section: 
Line 193: Line 202:
 <code> <code>
 btrfs subvol list . btrfs subvol list .
-mount -o defaults,compress=lzo,autodefrag,space_cache,subvolid=258 /dev/vda3 /target+Old Debian 11 command: 
 +mount -o defaults,compress=lzo,space_cache,subvolid=258 /dev/vda3 /target 
 +New Debian 12 command: 
 +mount -o defaults,compress=lzo,space_cache=v2,subvol=@ /dev/vda3 /target/
 </code> </code>
 +
 +More Notes on this in late 2023: 
 +space_cache=v2 is not actually required to be specified. space_cache is enough as newer kernels use v2 by default. So 100% you can just use space_cache
 +discard=async is not required if defaults are set, so this can be removed from fstab.
  
 Apologies for some errors in my command, I was tired and it was late.  Apologies for some errors in my command, I was tired and it was late. 
Line 218: Line 234:
 So lets enter in out mount performance improvements after the 'defaults' section on / mount and edit @rootfs to be @ like this: So lets enter in out mount performance improvements after the 'defaults' section on / mount and edit @rootfs to be @ like this:
  
-I cant easily show you the edits as it spans more than the screen but all I did was add "compress=lzo,autodefrag,space_cache" and edit the @ at the end.  +I cant easily show you the edits as it spans more than the screen but all I did was edit the fstab options to: 
-Dont forget if you opted to use space_cache=v2 you must continue to use that or it wont mount.+ 
 +defaults,noatime,compress=lzo,discard=async,space_cache=v2,subvol=@ (edit the @ at the end from @rootfs that no longer exxists).  
 + 
 +Note: Dont forget if you opted to use space_cache=v2 you must continue to use that or it wont mount (space_cache=v2 is newer and better, suggest Debian12 users use this). 
 + 
 +Repeating of More Notes on this in late 2023:  
 +space_cache=v2 is not actually required to be specified. space_cache is enough as newer kernels use v2 by default. So 100% you can just use space_cache 
 +discard=async is not required if defaults are set, so this can be removed from fstab. 
 Here is an example: Here is an example:
  
 {{:images:fstabscreen1deb.png|}} {{:images:fstabscreen1deb.png|}}
 {{:images:fstabscreen2deb.png|}} {{:images:fstabscreen2deb.png|}}
 +
 +**EXAMPLE LINE:
 +UUID=383732b1-5e87-4b68-a15a-f044bc559877 /               btrfs   defaults,noatime,compress=lzo,discard=async,space_cache=v2,subvol=@ 0       1
 +**
  
 Hopefully its obvious here how to edit the btrfs / with just those edits. Now we are done so just type exit to leave the shell: Hopefully its obvious here how to edit the btrfs / with just those edits. Now we are done so just type exit to leave the shell:
Line 237: Line 265:
 Then choose generic, all available drivers. We dont need to strip drivers out of Debian unless its going to be installed on a fridge or something with very little disk space. You should check your fridge to see if you can install linux on it later when you go up to make some tea just BTW. Then choose generic, all available drivers. We dont need to strip drivers out of Debian unless its going to be installed on a fridge or something with very little disk space. You should check your fridge to see if you can install linux on it later when you go up to make some tea just BTW.
  
-Next it finishes all that and moves onto another basic step, configure the package manager. It asks about scanning for extra install media. Just say NO kids. Say Yes to network mirror and choose an appropriate mirror near you and http is fine. https is not needed. I dont need a proxy but if you do, you will already know so leave proxy empty unless you need one.+Next it finishes all that and moves onto another basic step, configure the package manager. It asks about scanning for extra install media. Just say NO kids. Say Yes to network mirror and choose an appropriate mirror near you and http is fine. https is not needed. I dont need a proxy but if you do, you will already know so leave proxy empty unless you need one. You can use non-free firmware though.
  
-On the non free software option say yes. We like non free stuff like nvidia drivers. Also say yes to source repositories (ie you can get the source code). On the next screen you can just leave security updates and release updates ticked. We dont need backports because we use testing so there are none, basically. Also we are too cool for that stuff. So just the top 2 basically.+On the non free software option say yes. We like non free stuff like nvidia drivers. Also say yes to source repositories (ie you can get the source code). Some people choose not to but I always do add the src lines. On the next screen you can just leave security updates and release updates ticked. We dont need backports because we use testing so there are none, basically. Also we are too cool for that stuff. So just the top 2 basically.
  
 Next we select and install software. We choose to install security updates automatically because we like that kind of thing. I normally participate in the package survey but up to you. If you choose no it just reflects badly on your entire persona and life choices, and in everything you do, thats all. Next we select and install software. We choose to install security updates automatically because we like that kind of thing. I normally participate in the package survey but up to you. If you choose no it just reflects badly on your entire persona and life choices, and in everything you do, thats all.
  
 Next we choose most likely the following, but you can choose some other ones if you want: Next we choose most likely the following, but you can choose some other ones if you want:
-Debian desktop environment, GNOME, SSH server, standard system utils. Then continue when those 4 things are selected.+Debian desktop environment, GNOME, SSH server, standard system utils. Then continue when those 4 things are selected (or choose others if you require).
  
-Then the installer just runs along and does its thing. Really basic to be honest. Once its done, it moves onto installing the GRUB boot loader. Select that option. It will sometimes moan about efi or some rubbish about not booting just ignore it and say no when it wants to install to removable media paths. That's for losers, and we are winners who don't do that.+Then the installer just runs along and does its thing. Really basic to be honest. Once its done, it moves onto installing the GRUB boot loader. Select that option. It will sometimes moan about efi or some rubbish about not booting just ignore it and **say no when it wants to install to removable media paths**. That's for losers, and we are winners who don't do that. You can update NVRAM variables though. If you have another OS you can also probe for it or not if you don't..
  
 Next is finish the installation. Select that. It asks about setting the clock so do that, and we are done. It wants to reboot so make sure you remove the install media and reboot like it tells you. Next is finish the installation. Select that. It asks about setting the clock so do that, and we are done. It wants to reboot so make sure you remove the install media and reboot like it tells you.
Line 254: Line 282:
 Next section in the guide here (or go back to the start page by clicking on the logo on this page at the top left): Next section in the guide here (or go back to the start page by clicking on the logo on this page at the top left):
 [[Start:Timeshift|How To Install Timeshift And Snapshot The Disk And Then Revert Any Problems Really Fast(And Be Cool)]]  [[Start:Timeshift|How To Install Timeshift And Snapshot The Disk And Then Revert Any Problems Really Fast(And Be Cool)]] 
-==== Ubuntu ==== 
- 
-The procedure for installing Ubuntu Testing is directly from the ISO on cdimage. This is very easy to do. Lets see what we need to complete this. Instructions assume this will be your only OS (not dual boot). 
- 
-Step 1: Follow Ventoy steps above and ensure UEFI is enabled and secure boot is off. As mentioned secure boot needs to temporarily be off to install, but afterwards can be turned on if you use Windows or Ubuntu. Debian has a little trouble still if you have proprietary drivers so your mileage may vary. 
- 
-You will then get to the stage where you boot into the relevant ISO using Ventoy and Step 2 continues from this point. It should be easy but essentially all you are doing is getting Ventoy working and booting from the relevant ISO file you wish to install from. 
- 
-Step 2: Boot the ISO and select Ubuntu.  
- 
-{{:images:ubuntubooting.png|}} 
-{{:images:ubuntuinstall2.png|}} 
- 
-Note how we see 2 different installers. It is important you see the UEFI settings option or you are booting into legacy mode. We dont use legacy mode around here, so fix it if you have not done so. Do not install in legacy mode. Install in UEFI mode. 
- 
-Step 3: Once into Ubuntus' setup (takes a while to boot) we will choose Install Ubuntu and then the usual settings like language etc. For simple stuff I wont bother with a screenshot. Just make sure you do a normal install and tick the install 3rd party software option. If you use Ubuntu, Secure boot works great. You can tick the secure boot option and set a password. This password is used by your BIOS when rebooting. If you didn't enable secure boot you can enable it later on its no big deal. 
- 
-On the Partition settings where it suggests erase disk and install Ubuntu just choose something else so we can manage our own partition sizes. 
- 
-My disk is called /dev/vda so I will click "new partition table" and then in the free space do the following: 
-1GB (1024MB) EFI partition first. 
-A swap partition equal to double the amount of RAM in the system (8GB - 8192MB in my case for this VM). 
-The rest a btrfs for / OR if you have a nice big disk you can make 512GB for / and the rest an ext4 filesystem for VM disk images etc as BTRFS is not the best for those kind of files. 
- 
-Either way it will look something like this: 
- 
-{{:images:installubupart.png|}} 
- 
-Next you will need to select the correct location for the bootloader or the system will not boot. From the screenshot you see I chose /dev/vda in my case. You will select the appropriate location for your setup (likely different). 
-Click Install now and then continue, choose your timezone then type your Account info. Don't forget to call your PC name something cool, like Nightwing or something. 
- 
-Once it is installed you can reboot and remove the USB/ISO and move on to the next thing in the guide. Ubuntu has a very easy install to be honest. It truly is a testament to how much time the Ubuntu developers have put into making Ubuntu for everyone. Very nice! 
- 
-To add the same performance improvements for BTRFS as we did in Debian just edit the fstab and add them: 
- 
-<code> 
-sudo nano /etc/fstab 
-</code> 
- 
-Here you see that on line 9 and 13 I have added 'compress=lzo,autodefrag,space_cache' to the options. Don't add ssd option anymore for btrfs - it is depreciated. 
- 
-Addendum: Please note - btrfs space_cache is now replaced by a newer version space_cache=v2. If you see “space_cache” it can be replaced with “space_cache=v2” instead. Once its upgraded to v2 you cant mount the fs with just space_cache anymore so be aware and consistent in what you use or it will appear like you broke it (but actually just mounted with the wrong one). 
- 
-{{:images:btrfstune.png|}} 
- 
-Once you reboot they will take effect. 
- 
-If the system does not boot (I got this with Ubuntu for some reason), then it didn't like space_cache being v1. Its not a big deal, just choose 'advanced options for ubuntu' during grub boot and move the highlight to a kernel with (recovery mode) next to it. Once one is highlighted press 'e' and change the 'ro' to 'rw' (read only to read write). Also remain consistant in using space_cache=v2 if you use that. 
- 
-{{:images:rwchange.png|}} 
- 
-Then press f10 after making that single change to boot. Then drop to the root shell prompt on the purple screen (press enter after it tells you), and type: 
- 
-<code> 
-nano /etc/fstab 
-</code> 
- 
-Now where you had previously just 'space_cache' change it to 'space_cache=v2' (ie add =v2 on there): 
- 
-{{:images:cachev2.png|}} 
- 
-ctrl -x and enter to save. 
- 
-Type reboot to reboot. System should reboot fine. If not you can revert all the edits you made in fstab to try find what is breaking the system. 
- 
-When a system breaks, you can fix it as you can see. So a broken system is just a challenge, not something to stress you out! Fixing Linux is fun! There is actually a way to clear the space cache in BTRFS. See if you can clear it and mount the filesystem with just 'space_cache' in the fstab and get it booting. Its a fun little project for you to do if you want to learn. Or come back to it when you feel more confident in Linux. Thats ok too. Note: space_cache=v2 is the newer option and should be used when possible. 
- 
  
  
  
start/howtoinstall.1693245330.txt.gz · Last modified: 2023/08/28 17:55 by peter