Difference between revisions of "Minimal"
(→Debian minimal webboot) |
(→Op de host) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 144: | Line 144: | ||
= Debian minimal USB = |
= Debian minimal USB = |
||
− | Een bootable Debian USB is goud waard in een migratie uit Windows naar Linux. |
+ | Een bootable Debian USB is goud waard in een migratie uit Windows naar Linux of bij het herstel van een Linux machine. |
− | * maak met unetbootin |
+ | * maak met unetbootin een netinstall aan op een partitie op een usb-stick |
* Boot de doel machine met de usb-stick en voer de installatie uit |
* Boot de doel machine met de usb-stick en voer de installatie uit |
||
* Grub maakt een foutje door de devices te verwisselen, sda <-> sdb |
* Grub maakt een foutje door de devices te verwisselen, sda <-> sdb |
||
Line 168: | Line 168: | ||
root@host:~# mkfs.ext2 /dev/sdb1 |
root@host:~# mkfs.ext2 /dev/sdb1 |
||
</pre> |
</pre> |
||
− | Maak een |
+ | Maak een directory aan op de host om daarin de installatie voor de usb-stick voor te bereiden. |
<pre> |
<pre> |
||
root@host:~# mkdir /usbsystem |
root@host:~# mkdir /usbsystem |
Latest revision as of 09:14, 26 July 2023
Contents
Debian minimal
Een minimal Linux komt op zijn tijd erg goed gelegen, vooral als data extractie in Windows omgevingen voor migratie uit de Windows omgeving aan de orde is. Webhuis heeft voor twee situaties een speciale minimal Linux ontwikkeld, webboot en de bootable USB-stick. Beide versie beschikken over basale tools voor data extractie. Het grote voordeel ligt in de veel hogere en efficientere werkwijze.
Debian minimal webboot
Webboot is een diskless Debian versie, die boot met behulp van PXE start. Diskless boot is een samenspel tussen een werkstation en een server. Het werkstation moet beschikken over de mogelijk om vanaf de netwerkkaart te booten, met het PXE protocol. Eenmaal gestart is het mogelijk om devices aan te haken en software te installeren.
Let op: debirf installeert elke gewenste versie van Debian, binnen de eigen architectuur van de opbouwende host zelf.
De server moet het volgende doen:
- Beschikken over een werkende dhcp service
- Een tftpd-hpa service
- Een netboot kernel en initrd aanbieden
Informatie:
Debirf biedt de simpelste manier voor het bouwen van een webboot linux.
root@host:~# apt-get install fuse-utils psmisc debootstrap fakeroot build-essential lsof debirf root@host:/home/martin/netboot/minimal# cat debirf.conf # DEBIRF configuration file: this will be sourced by bash DEBIRF_LABEL="webboot" DEBIRF_BUILDD=/home/martin/netboot DEBIRF_SUITE=squeeze DEBIRF_DISTRO=debian DEBIRF_MIRROR=http://mirror.webhuis.nl:3142/${DEBIRF_DISTRO} root@host:~# debirf make -c minimal
Na uitvoering van dit uiterst ingewikkelde commando heeft de host na korte tijd het volgende opgebouwd.
root@host:/home/martin/netboot# ls -al -rw-r--r-- 1 root root 33415 Sep 14 00:33 .bootstrap.log -rw-r--r-- 1 root root 578312 Sep 14 00:35 .fakeroot-state.webboot drwxr-xr-x 3 martin martin 4096 Sep 14 00:28 minimal drwxr-xr-x 20 root root 4096 Sep 14 00:34 root -rw-r--r-- 1 root root 2301440 May 6 09:50 vmlinuz-2.6.32-5-686 -rw-r--r-- 1 root root 64092140 Sep 14 00:35 webboot_squeeze_2.6.32-5-686.cgz
Het is verstandig om het image en de bijbehorende kernel bij elkaar te houden voor later gebruik.
De boot server
Op de bootserver is pxe-boot geconfigureerd.
martin@dom0-153:/var/lib/tftpboot$ ls -al -rw-r--r-- 1 tftp tftp 68 Jan 6 2011 boot.txt drwxr-xr-x 3 tftp tftp 4096 Sep 13 22:44 debian -rw-r--r-- 1 tftp tftp 26816 Nov 28 2010 pxelinux.0 drwxr-xr-x 2 tftp tftp 4096 Sep 14 00:38 pxelinux.cfg
De directory pxelinux.cfg bevat het bestand default:
martin@boot-server:/var/lib/tftpboot$ cat pxelinux.cfg/default # Configuratie voor pxe-boot DISPLAY boot.txt DEFAULT webboot LABEL webboot kernel debian/squeeze/i386/vmlinuz-2.6.32-5-686 append vga=791 initrd=debian/squeeze/i386/webboot_squeeze_2.6.32-5-686.cgz --
In de directory debian/squeeze/ staan de kernel en het webboot image. De diskless machine doet er vanaf de start van pxe ongeveer 60 seconden over om operationeel te zijn.
Installatie voorbereiding
Een webboot installatie vondt plaats op een andere host dan op de machine waarop de installatie uiteindelijk draait. De installatie verloopt in stappen:
- Met debootstrap in een installatie directory
- Chroot naar de installatie directory
Noodzakelijke programmatuur:
# apt-get install debootstrap fakeroot # debootstrap --arch i386 wheezy webboot-wheezy http://mirror.webhuis.nl:3142/debian # chroot webboot-wheezy/
chrooted
:/# cat /etc/fstab # UNCONFIGURED FSTAB FOR BASE SYSTEM LABEL=webboot / ext2 defaults,errors=remount-ro,noatime 0 1 proc /proc proc defaults 0 0 tmpfs /tmp tmpfs defaults,noatime 0 0 tmpfs /var/lock tmpfs defaults,noatime 0 0 tmpfs /var/log tmpfs defaults,noatime 0 0 tmpfs /var/run tmpfs defaults,noatime 0 0 tmpfs /var/tmp tmpfs defaults,noatime 0 0 :/# mount -t proc proc /proc && mount -t sysfs sysfs /sys :/# mount -a :/# echo "127.0.0.1 localhost" > /etc/hosts :/# echo "webboot" > /etc/hostname :/# cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp :/# cat /etc/resolv.conf nameserver 10.68.71.187 :/# apt-get install linux-image-3.2.0-3-686-pae :/# apt-get install locales-all :/# addgroup --system admin :/# useradd -s /bin/bash -g admin -m -k /dev/null martin :/# passwd root :/# passwd martin :/# apt-get install ntfsprogs scrounge-ntfs dosfstools rsync localepurge gddrescue rungetty sshfs sudo
Bouwen diskless ram image
dhcp
De dhcp service biedt voor een of meerdere werkstations of de volgende wijze een pxe optie:
host webboot.webhuis.nl { hardware ethernet 00:68:84:e2:ea:a1; next-server 10.99.99.11; option root-path "10.99.99.11:/var/lib/tftpboot"; option host-name "webboot"; fixed-address 10.99.99.19; filename "pxelinux.0";
De dhcp service (op 10.99.99.1) geeft hier aan dat het werkstation voor de volgende stap van het bootproces naar de service tftpboot op de server 10.99.99.11.
tftpboot
Op de server 10.99.99.11 is het bestand pxelinux.0 geinstalleerd. Dit bootprogramma instrueert het werkstation om het bestand pxelinux.cfg/default op te vragen.
pxelinux.cfg/default
Onderstaande pxe default configuratie geeft drie boot mogelijkheden.
- webboot, een diskless Linux, die volledig in RAM draait.
- amd64-minimal, een minimale 64 bits Linux
- i386-minimal, een minimale 32 bits Linux
# Configuratie voor pxe-boot DISPLAY boot.txt DEFAULT webboot LABEL webboot kernel debian/squeeze/i386/vmlinuz-2.6.32-5-686 append vga=791 initrd=debian/squeeze/i386/webboot_squeeze_2.6.32-5-686.cgz -- LABEL start_amd64_minimal kernel debian/squeeze/amd64/vmlinuz-2.6.32-5-amd64 append vga=791 initrd=debian/squeeze/amd64/debirf-minimal_squeeze_2.6.32-5-amd64.cgz -- LABEL start_i386_minimal kernel debian/squeeze/i386/vmlinuz-2.6.32-5-686 append vga=791 initrd=debian/squeeze/i386/debirf-minimal_squeeze_2.6.32-5-686.cgz -- PROMPT 1 TIMEOUT 30
De default aktie is het starten van webboot na 5 seconden.
Debian minimal USB
Een bootable Debian USB is goud waard in een migratie uit Windows naar Linux of bij het herstel van een Linux machine.
- maak met unetbootin een netinstall aan op een partitie op een usb-stick
- Boot de doel machine met de usb-stick en voer de installatie uit
- Grub maakt een foutje door de devices te verwisselen, sda <-> sdb
- Herstel de fout in grub edit en boot
- Pas na de boot /etc/fstab aan en doe update-grub
De installatie is nog niet erg minimaal, maar hij werkt.
root@host:~# apt-get clean root@host:~# apt-get install localepurge root@host:~# localepurge root@squeeze-usb-i386:~# ln -s /home/squeeze-usb-i386/var/lib/* /var root@squeeze-usb-i386:~# ln -s /home/squeeze-usb-i386/var/cache/* /var
Installeer ook nog tools om met Windows file systems te werken:
apt-get install ntfsprogs scrounge-ntfs dosfstools rsync
Op de host
Maak een file system aan voor het OS op de USB stick.
root@host:~# fdisk /dev/sdb root@host:~# mkfs.ext2 /dev/sdb1
Maak een directory aan op de host om daarin de installatie voor de usb-stick voor te bereiden.
root@host:~# mkdir /usbsystem root@host:~# debootstrap --arch i386 squeeze /usbsystem http://ftp.nl.debian.org/debian root@host:~# ./croot.sh /usbsystem
Doe eerst alle stappen uit chrooted en doe daarna:
root@host:~# umount /usbsystem/dev/ /usbsystem/sys /usbsystem/proc /usbsystem/tmp root@host:~# umount /usbsystem-amd64/dev/ /usbsystem-amd64/sys /usbsystem-amd64/proc /usbsystem-amd64/tmp
chrooted
fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM LABEL=USB_ROOT / ext2 defaults,errors=remount-ro,noatime 0 1 proc /proc proc defaults 0 0 tmpfs /tmp tmpfs defaults,noatime 0 0 tmpfs /var/lock tmpfs defaults,noatime 0 0 tmpfs /var/log tmpfs defaults,noatime 0 0 tmpfs /var/run tmpfs defaults,noatime 0 0 tmpfs /var/tmp tmpfs defaults,noatime 0 0
Ruim de bestanden in bovenstaande directories op na een umount.
6 rm -f /etc/mtab && ln -s /proc/mounts /etc/mtab 7 echo "127.0.0.1 localhost" > /etc/hosts
9 apt-get install localepurge 10 localepurge 15 apt-get install linux-image-2.6-686 16 vi /etc/default/locale 17 apt-get install grub 18 echo lang 19 echo LANG 20 echo $LANG 21 vi /boot/grub/grub.cfg 22 groupadd martin 23 useradd --home /home/martin --shell /bin/bash --gid martin 24 mkdir /home/martin 25 useradd --home /home/martin --shell /bin/bash --gid martin 26 useradd --home-dir /home/martin --shell /bin/bash --gid martin 27 useradd --home-dir /home/martin --shell /bin/bash --gid martin martin 28 apt-get install rungetty 29 sed -i '/getty/d' /etc/inittab 30 vi rungetty-script 31 cat >> /etc/inittab << face="courier new">1:2345:respawn:/sbin/rungetty --autologin martin 32 EOF 33 cat >> /etc/inittab << face="courier new">1:2345:respawn:/sbin/rungetty --autologin martin EOF 34 cat >> /etc/inittab << face="courier new">1:2345:respawn:/sbin/rungetty --autologin martin 35 vi /etc/inittab 36 apt-get clean 37 exit 38 history 1 uname -a 2 vi /etc/fstab 3 vi /etc/fstab 4 vi /etc/fstab 5 vi /etc/apt/sources.list 6 rm -f /etc/mtab && ln -s /proc/mounts /etc/mtab 7 echo "127.0.0.1 localhost" > /etc/hosts 8 history 9 apt-get install localepurge 10 localepurge 11 apt-cache search linux | grep image | grep 386 12 apt-cache search linux 13 apt-cache search kernel 14 uname -a 15 apt-get install linux-image-2.6-686 16 vi /etc/default/locale 17 apt-get install grub 18 echo lang 19 echo LANG 20 echo $LANG 21 vi /boot/grub/grub.cfg 22 groupadd martin 23 useradd --home /home/martin --shell /bin/bash --gid martin 24 mkdir /home/martin 25 useradd --home /home/martin --shell /bin/bash --gid martin 26 useradd --home-dir /home/martin --shell /bin/bash --gid martin 27 useradd --home-dir /home/martin --shell /bin/bash --gid martin martin 28 apt-get install rungetty 29 sed -i '/getty/d' /etc/inittab 30 vi rungetty-script 31 cat >> /etc/inittab << face="courier new">1:2345:respawn:/sbin/rungetty --autologin martin 32 EOF 33 cat >> /etc/inittab << face="courier new">1:2345:respawn:/sbin/rungetty --autologin martin EOF 34 cat >> /etc/inittab << face="courier new">1:2345:respawn:/sbin/rungetty --autologin martin 35 vi /etc/inittab 36 apt-get clean 37 exit 38 history
Terug naar: Webhuis bouwstenen