Mijn huidige NAS/server staat alweer enige tijd (sinds ~2018) te draaien, tijd voor een update/vernieuwing. Ik draai al een aantal jaren Ubuntu LTS server, dus 24.04 is een logische keuze (Noble Numbat). Ik gebruik al jaren een laptop met een externe USB3 harddisk, en dat bevalt mij uitstekend (Zijn relatief zuinig, en hebben wel goede performance). Dus de nieuwe server wordt ook weer een oude laptop. Hier de zaken die ik moest doen…
Installatie ubuntu 24.04
Ik heb hiervoor ubuntu 24.04 op een stick gezet, en deze geinstalleerd:
- De bios boot mode van de dell laptop moest op AHCI gezet worden ipv Dell Raid.
- Laptop een vast IP adres gegeven! DHCP is niet handig omdat deze server zelf ook dhcp server gaat worden.
- Hardisk setup: full disk, no LVM.
- Install OpenSSH, géén snaps
- Set de timezone op Europe/Amsterdam:
sudo timedatectl set-timezone Europe/Amsterdam
Na 1e installatie en herstart eerst updates gedraait… Daarna cloud-init gedisabled:
$ touch /etc/cloud/cloud-init.disabled
Ik wil er toch wel een GUI op hebben, voornamelijk tbv management voor Virtualbox VM’s. Gekozen optie is LightDM
sudo apt install lightdm
sudo apt install ubuntu-desktop
Wel raar dat ik bij installatie van de ubuntu desktop de keuze kreeg tussen lightdm en gdm? Die was dus al geinstalleerd…?
Na installatie bleef hij bij opstarten nogal lang hangen op de “job systemd-networkd-wait-online.service“. Door de installatie van de GUI zijn er ineens 2 network-managers geinstalleerd, en die bijten elkaar… Om dit op te lossen de volgende gedaan:
systemctl is-enabled systemd-networkd-wait-online.service NetworkManager-wait-online.service -> Hieruit bleek dat ze beiden actief zijn..
systemctl disable systemd-networkd.service
Hierna alle users geinstalleerd, ik had hier al een soort script voor, waarbij de gebruiker dezelfde uid heeft/krijgt als de vorige server. (Dat is handig als ik de data ga overzetten, dan ik niet opnieuw alle rechten goed te zetten.)
Disable suspend en de laptop lid/ beeldscherm switch
Om te voorkomen dat de laptop uitgaat/suspend (en als je het beeld dichtklapt), moet je het volgende doen:
sudo nano /etc/systemd/sleep.conf ->
AllowSuspend=no
AllowHibernation=no
AllowSuspendThenHibernate=no
AllowHybridSleep=no
sudo nano /etc/systemd/logind.conf -> HandleLidSwitch=ignore
sudo systemctl restart systemd-logind
Installatie van docker + compose plugin
Docker wordt geinstalleerd vanaf de originele docker repository’s, zodat we altijd de laatste versie(s) hebben:
sudo apt install apt-transport-https curl
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl is-active docker
sudo usermod -aG docker ${USER}
Het laatste commando voegt de huidige gebruiker toe als docker user; zodat deze ook docker commando’s kan uitvoeren (en niet alleen root/sudo). Als je na dit command even afmeld en weer aanmeld is het ok.
12jan25: Voor nu is dit het even. Ga nu aan de gang met pihole als local dns/dhcp server. 🙂
Installatie van xrdp
Ook deze server wil ik remote kunnen beheren via de VPN, dus ook hier RDP op linux doos geinstalleerd. Het commando om de service te enablen gaf een error:
Invalid unit name "–now" escaped as "\xe2\x80\x93now" (maybe you should use systemd-escape?).
Synchronizing state of xrdp.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable xrdp
Failed to enable unit: Unit file \xe2\x80\x93now.service does not exist.
Maar uiteindelijk dus ook niet nodig, dit wordt direct bij de installatie gedaan.
Mounten externe harddisk
Ok, het is de bedoeling dat het een NAS wordt, dus schijfruimte is wel handig… Ik heb een externe 6tb schijf, welke ik hiervoor gebruik. Deze ingeplugt..
Aanmaken partitie en filesystem:
ls -l /dev/sd*
brw-rw---- 1 root disk 8, 16 Jan 18 16:06 /dev/sdb
sudo fdisk /dev/sdb
Command (m for help): p #-> Print current disk info + partitions
Command (m for help): n #-> nieuwe partitie aanmaken. (oude kun je eerst verwijderen met d)
Partition number (1-128, default 1): 1
First sector (34-11721045134, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-11721045134, default 11721043967):
Created a new partition 1 of type 'Linux filesystem' and of size 5.5 TiB.
Command (m for help): wr #-> wijzigingen worden pas NA dit commando opgeslagen!
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
sudo mkfs -t ext4 /dev/sdb1
mke2fs 1.47.0 (5-Feb-2023)
Creating filesystem with 1465130240 4k blocks and 183144448 inodes
Filesystem UUID: cb6da921-4465-41f7-aa3f-0f8f53766872
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
Mounten van de disk: Dit kun je het meest betrouwbaar doen mbv de uuid:
ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Jan 18 16:24 cb6da921-4465-41f7-aa3f-0f8f53766872 -> ../../sdb1
sudo nano /etc/fstab ->
#external disk:
/dev/disk/by-uuid/a988eb64-28de-41f0-86c2-0768fecbe9ed /media/6tbdisk/ ext4 defaults 0 0
sudo mkdir /media/6tbdisk
sudo systemctl daemon-reload
sudo mount -a
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p2 233G 16G 206G 8% /
/dev/nvme0n1p1 1.1G 6.2M 1.1G 1% /boot/efi
/dev/sdb1 5.5T 28K 5.2T 1% /media/6tbdisk