Unterschiede zwischen den Revisionen 158 und 1141 (über 983 Versionen hinweg)
Revision 158 vom 2014-11-28 02:27:18
Größe: 0
Autor:
Kommentar:
Revision 1141 vom 2014-12-04 21:52:06
Größe: 4757
Kommentar: spam
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
= 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 ===
 * nachträgliche Softwareinstallation möglich
 * Programme
  * Libreoffice
  * KDEnlive 9.6 (+ frei0r Plugins, so dass sie funktionieren z.B. Corners
  * Audacity
  * Audioplugins für Audacity LADSPA Nyquest
  * Subtitleeditor (Aegisub)
  * Geogebra
  * Marble
  * Scribus
  * Synfig Studio
  * Blender
  * Freemind
  * inkscape
   * sozi für inkscape
  * Stellarium
  * GIMP
  * GIMP-GAP
  * LMMS
  * wine
  * K3B
  * VLC
  * youtube-dl
  * unplug (ein Plugin für Mozilla)
  * recordmydesktop
 * daten löschen können ohne papierkorb
 * von Windows auf Daten zugreifen


   
=== Idee ===
 * Der Live-Stick hat 2 Partitionen
  1. Root-Filesystem, mit Live-Kompression (BTRFS)
  1. Homedirectory als VFAT, darüber ein posixovl mount um die Verwendung als Heimverzeichnis zu erlauben
 * beim Rollout soll Image der Stick-Größe angepasst werden
 * zum Ausrollen der Medien wird ein grafischer Installer geschrieben (zenity)

== 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/
}}}

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

  • nachträgliche Softwareinstallation möglich
  • Programme
    • Libreoffice
    • KDEnlive 9.6 (+ frei0r Plugins, so dass sie funktionieren z.B. Corners
    • Audacity
    • Audioplugins für Audacity LADSPA Nyquest
    • Subtitleeditor (Aegisub)
    • Geogebra
    • Marble
    • Scribus
    • Synfig Studio
    • Blender
    • Freemind
    • inkscape
      • sozi für inkscape
    • Stellarium
    • GIMP
    • GIMP-GAP
    • LMMS
    • wine
    • K3B
    • VLC
    • youtube-dl
    • unplug (ein Plugin für Mozilla)
    • recordmydesktop
  • daten löschen können ohne papierkorb
  • von Windows auf Daten zugreifen

Idee

  • Der Live-Stick hat 2 Partitionen
    1. Root-Filesystem, mit Live-Kompression (BTRFS)
    2. Homedirectory als VFAT, darüber ein posixovl mount um die Verwendung als Heimverzeichnis zu erlauben
  • beim Rollout soll Image der Stick-Größe angepasst werden
  • zum Ausrollen der Medien wird ein grafischer Installer geschrieben (zenity)

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/