Minimal

From PostgreSQL_wiki
Revision as of 22:22, 12 September 2012 by Martin (talk | contribs) (Debian minimal)
Jump to: navigation, search

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 servr. Het werkstation moet beschikken over de mogelijk om vanaf de netwerkkaart te booten, met het PXE protocol. De server moet het volgende doen:

  • Beschikken over een werkende dhcp service
  • Een tftpd-hpa service
  • Een netboot kernel en initrd aanbieden

Informatie:

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.

  • maak met unetbootin een 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 folder 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