TurtleBot
TurtleBot, je robotické zařízení, používané při výuce na Katedře kybernetiky. Jeho "mozkem" je Intel NUC, který sice může komunikovat přes ethernet, ale primárně komunikuje přes Wi-Fi.
Zařízení se dodává s předinstalovaným Ubuntu, ale v rámci sjednocení vývojového prostředí je potřeba na něm rozběhat stejnou diskless instalaci, jako v laboratořích.
Jelikož klasické PXE funguje pouze v rámci na ethernetu, jsou TurtleBoty vytvořené podobným způsobem, je virtuální stroje typu Half-Diskless. Rozdíl je pouze v tom, že se při spouštění nepoužívá virtuální disk publikovaný přes NFS, nýbrž lokální NVME disk.
Co to obnáší?
Příprava na diskless
Protože se NUC pro TurtleBoty dodává s předinstalovaným Ubuntu, bylo nutné: 1, zmenšit diskový odddíl /dev/nvme0np2 na kterém je souborový systém ext4 s Ubuntu 2, posunout diskový odddíl /dev/nvme0np3 na kterém je swap (ten bude využívat i disklessový OS) 3, vytvořit nový diskový odddíl /dev/nvme0np4
Tento nově vytvořený diskový oddíl byl naformátován na souborový systém Btrfs, aby bylo možné subvolume pro systém nainstalovaný přes debootstrap snapshotovat.
Instalace
příkaz…
Vytvoření ramdisku s podporou Wi-Fi
Automatizace procesu
Úprava instalace disklessu
Export adresáře přes NFS
Zkopírování stávajícího obsahu fyzického stroje
Vytvoření zaváděcího disku
1, Zkopírování zaváděcího disku stroje k333-dhcp (soubor k333dhcp.img) do souboru k333stu1.img
k333-lab (NFS) :/srv/boot# cp k333dhcp.img k333stu1.img
2, Připojení souboru k333stu1.img přes losetup na loop0
losetup /dev/loop0 /srv/boot/k333stu1.img
3, Mount diskového oddílu s jádrem a soubory zavaděče
k333-lab (NFS) :~# mount /dev/loop0 /mnt -o offset=$((2048*512))
Při namountování musí být použit offset! |
4, Zkopírování stávajícího ramdisku a jádra. A úprava souboru /mnt/grub/grub.cfg