Live Stick Schule

Ein Lehrer vom Heinrich-Herz-Gymnasium möchte seine Schüler im Unterricht gern an Freie Software heranführen. Ansatzpunkte sind dabei besonders Videoschnitt für den Kunstunterricht und ggf. Recherchen im Sprachunterricht (hier Latein, Griechisch) auch mit Hinblick auf Historie (Weltkarten, ...).

Konzept

Anforderungen

Idee

Protokoll

Partitionierung

$ sudo fdisk /dev/sda
> o
> n
> p
> 1
> 2048
> +4G

> n
> p
> 2
> (default)
> +1G

> w

Dateisysteme einrichten

$ sudo mkfs.btrfs /dev/sda1
$ sudo mkfs.vfat /dev/sda2
$ sudo mount /dev/sda1 /mnt -o compress
$ sudo btrfs subvolume create /mnt/boot
$ sudo btrfs subvolume create /mnt/root

Basissystem fertig machen

$ sudo debootstrap --variant=minbase --arch=i386 jessie /mnt/root http://www.linux-works.de:9999/debian
$ sudo umount /mnt
$ sudo mount /dev/sda1/ /mnt -o compress,subvol=root
$ sudo mount /dev/sda1/ /mnt/boot -o compress,subvol=boot
$ for n in /dev /proc /sys; do sudo mount $n /mnt/$n -o bind; done
$ sudo chroot /mnt /bin/bash

Softwareinstallation

$ apt-mark showmanual |xargs apt-mark auto
$ echo deb http://www.linux-works.de:9999/debian wheezy main >>/etc/apt/sources.list
$ apt-get update
$ apt-get -t jessie --no-install-recommends install grub2 linux-image-486 alsa-base alsa-utils bzip2 gzip htop man nmap less sudo vim iputils-ping net-tools wireless-tools pciutils wget   openssh-client ntpdate btrfs-tools dosfstools eject exfat-fuse ntfs-3g xserver-xorg-input-all xorg xserver-xorg-input-wacom xserver-xorg-video-all xkb-data libgl1-mesa-dri akonadi-backend-sqlite kde-l10n-de kde-plasma-desktop kdesudo kdm kwalletmanager libpam-ck-connector policykit-1 policykit-1-gnome polkit-kde-1 virtuoso-minimal gstreamer1.0-plugins-{bad,base,good,ugly} phonon-backend-gstreamer gtk2-engines-oxygen gtk3-engines-oxygen kde-config-gtk-style oxygencursors kde-style-oxygen gwenview kate okular ark synaptic vlc kmix ttf-dejavu chromium chromium-l10n browser-plugin-gnash blender gimp inkscape marble hunspell hunspell-de-de hyphen-de libreoffice libreoffice-l10n-de kdenlive libav-tools recordmydesktop x264 geogebra fuse-posixovl network-manager network-manager-openvpn network-manager-pptp network-manager-vpnc plasma-widget-networkmanagement
$ apt-get autoremove
$ apt-get clean

/etc/fstab UUID wird ermittelt durch "btrfs filesystem show /" (innerhalb der chroot)

UUID=b4b55c0d-8ba6-4c58-a2ae-5c6bcf467580       /       btrfs   auto,compress,subvol=root       0 0
UUID=b4b55c0d-8ba6-4c58-a2ae-5c6bcf467580       /boot   btrfs   auto,compress,subvol=boot       0 0

/etc/rc.local (nötig um das Heimverzeichnis von der VFAT Partition zu mounten)

ROOTID="$(sed -nr 's:^[\t ]*UUID=(.+)[\t ]/[\t ].*:\1:p' /etc/fstab)"
ROOTDEV="$(stat -c %N /dev/disk/by-uuid/$ROOTID |sed -r "s:^.*'(.+)'$:\1:")"
HOMEDEV="$(echo /dev/disk/by-uuid/$ROOTDEV |sed -r 's:1$:2:')"

mount "$HOMEDEV" /home/user && mount.posixovl /home/user -- -o allow_other
chown user:user /home/user
chmod 750 /home/user

exit 0

Konfiguration

$ ln -sf /proc/mounts /etc/mtab
$ adduser user
$ adduser user sudo
$ sed -r -i 's#^(root|user):[^:]*:#\1:U6aMy0wojraho:#' /etc/shadow
$ echo LiveStick >/etc/hostname
$ dpkg-reconfigure tzdata
$ rm /home/user/.*
$ mount /dev/sda2 /home/user/
$ mount.posixovl /home/user/ -- -o allow_other
$ vi /etc/locale.gen
$ locale-gen
$ echo export LC_ALL=de_DE.UTF-8 >/home/user/.xsessionrc
$ chown user:user -R /home/user/
$ chmod 755 /home/user/.xsessionrc
$ grub-install /dev/sda
$ update-grub2
$ vi /etc/kde4/kdm/kdmrc #autologin...
$ mount /dev/sda1 /mnt/
$ btrfs subvolume snapshot /mnt/root /mnt/root_preboot
$ umount /mnt/