Commit ea0b541a authored by mmoebius/ALUG's avatar mmoebius/ALUG

Install Script+USB Repository mounter

Make the people a terminal, then run 'sudo /media/Multiboot/linuxparty.sh'
If downloading linuxparty.sh from the net, also download infuse_offline_repo.sh and mount-stick-repo.sh
Put it all in the same directory
parent 1a7be1f1
acpi=copy_dsdt Korrigiert DSDT, insbesondere bei Toshiba-Notebooks.
acpi=force Für BIOS-Versionen vor 2002, aktiviert die ACPI-Unterstützung zwangsweise im Kernel.
acpi=off Deaktiviert ACPI vom BIOS (kann helfen, aber auch zur "Kernelpanic" führen).
all_generic_ide Generischen IDE-Treiber für alle Geräte verwenden, die vom BIOS erkannt wurden.
bootchart=disable Deaktiviert die Visualisierung bzw. die Aufzeichung eines Boot-Charts bei installiertem BootChart
BOOT_DEBUG=2|3 Fehlersuche während des Startvorgangs
bootdegraded Bootet Ubuntu auch auf einem inkonsistenten RAID-1
DEBCONF_DEBUG=5 Ausführliche Fehlersuche
elevator=deadline so wird für alle Blockgeräte der Deadline Scheduler verwendet anstatt CFQ, kann bei SSD-Festplatten nützlich sein
fb=false Deaktiviert den Framebuffer.
hpet=force Erzwingt die Aktivierung das HPET-Timers, hilfreich beim Energiesparen bei Laptops, dessen BIOS die HPET vor dem Betriebssystem verstecken (z.B. IBM Thinkpad X31)
ht=on Aktiviert Hyper-Threading.
irqpoll zusammengezogen aus IRQ und Polling. IRQ ist eine Unterbrechungsanforderung per Leitung an den Prozessor. Polling ist das Verfahren zur Steuerung des Zugriffs auf angeschlossene Geräte.
noapic, noagp, noapm Deaktiviert die automatische Erkennung von APIC (IRQ-Verwaltung), AGP (Grafik) oder der Energieverwaltung.
nolapic Deaktiviert die lokale APIC-Erkennung.
nolapic_timer Deaktiviert den lokalen APIC-Timer. Selektiver als noapic und nolapic. Instabilitäten durch den Timer werden umgangen, der Rest von APIC bleibt voll funktionsfähig. Erste Wahl bei Notebooks, da das Energiemanagement funktional bleibt.
nomodeset deaktiviert modesetting im Kernel, und die Infrastruktur von X.org wird verwendet (z.B. Acer Extensa 5635Z)
pci=bios
pci=biosirq
pci=noacpi Schaltet die ACPI-Erkennung während der PCI-Konfiguration aus (ist insbesondere bei manchen VIA-Chipsätzen notwendig).
pci=nomsi Deaktiviert "Message Signaled Interrupts". Hilft oft bei Problemen mit dem SATA-Controller auf neueren Mainboards.
pci=routeirq IRQ-Autorouting, hilfreich für einige Mainboards (zum Beispiel Asus A7N8X).
processor.max_cstate=3 behebt das Problem des "C4-Fiepen" - (siehe unten)
single booten in den Single-User-Mode
text booten in die Konsole, X bleibt aussen vor, interaktiver Modus mit Netzwerk vergleichbar Runlevel 3
usb=bios
vga=... Stellt die Auflösung von Grub und der Konsole ein (siehe unten).
xforcevesa Der XServer (graphische Oberfläche) wird unabhängig von der verwendeten Hardware nur für "vesa" konfiguriert.
nomodeset Verhindert, dass der Kernel die Mode-Settings für die Grafikkarte durchführt. Die Mode-Settings werden wie vor Kernel 2.6.28 im User-Mode durchgeführt (siehe auch:Mode-Settings).
noplymouth Schaltet die Anzeige von Plymouth ab, diese Ergänzung ersetzt das nosplash aus dem alten Ubuntu-Splash.
pcie_aspm=force Erzwingt Active State Power Management (Kernel 2.6.38+)
\ No newline at end of file
if test -z $spielkind
then
set spielkind=1
fi
menuentry "Hier ist nichts. Zurueck" {
configfile ${prefix}/grub.cfg
}
menuentry "Ich bin ein Spielkind" {
if test 111 -gt ${spielkind}
then
set spielkind=1${spielkind}
else
configfile ${gameroot}/games.cfg
fi
}
menuentry "Zurueck zum Hauptmenu" {
configfile ${prefix}/grub.cfg
}
menuentry "Space Invaders" {
multiboot ${gameroot}/invaders
}
menuentry "Have you nyaned today?" {
chainloader ${gameroot}/nyan.img
}
menuentry "3D-Labyrith (benutze Pfeiltasten)" {
chainloader ${gameroot}/blamaze10.img
}
menuentry "uranix" {
chainloader ${gameroot}/uranix2.img
}
menuentry "Mandelbrot Fraktal" {
chainloader ${gameroot}/mandelfinal.img
}
menuentry "Game of Life" {
chainloader ${gameroot}/GAMEOFLIFE.img
}
menuentry "Blasty 2" {
chainloader ${gameroot}/blasty2.img
}
menuentry "Dion" {
chainloader ${gameroot}/dion.img
}
menuentry "GOLeithian" {
chainloader ${gameroot}/GOLeithian-fix.img
}
menuentry "ioripple" {
chainloader ${gameroot}/ioripple.img
}
menuentry "Lissajous" {
chainloader ${gameroot}/p1ra_lissajous_v1.img
}
menuentry "Phosphene" {
chainloader ${gameroot}/phosphene.img
}
menuentry "ZOMG miniBill" {
chainloader ${gameroot}/ZOMG_miniBill_final_submission.img
}
http://io.smashthestack.org:84/intro/
https://minemu.org/nyanmbr/
function set64 {
set iso="ubuntu-12.04-desktop-amd64.iso"
set isoinitrd=""
set bits="64"
set altbits="32"
}
function set32 {
set iso=""
set isoinitrd=""
set bits="32"
set altbits="64"
}
function guesscpu {
if cpuid -l
then
echo "Dein System scheint ein 64-bit System zu sein."
set64
else
echo "Dein System scheint ein 32-bit System zu sein."
set32
fi
echo "Die weiseste Wahl sollte $bits bits mit $iso und $isoinitrd zu sein"
echo
}
#elif is not working in this grub version !?!
if test -z $bits
then
guesscpu
else
if test 64 == $bits
then
set64
else
set32
fi
fi
# Set up a loop device and start a Debian style Casper Live CD from it.
function LoadCasperLoop {
if test -z "${isodev}"
then
search -f -s isodev /${iso}
echo "Found ${iso} on (${isodev})"
echo ""
fi
loopback loop (${isodev})/${iso}
echo "Loading kernel (takes up to 2 minutes)"
echo ""
echo "Hint: You may need to mount the USB stick on /isodevice by hand !"
echo " Or you may need to run this:"
echo " . /scripts/casper-helpers"
echo " find_cow_device ${iso}"
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/$iso file=/cdrom/preseed/ubuntu.seed ${localeinfo} nosplash verbose --
echo "Loading initrd from iso (takes up to 5 minutes)"
initrd (loop)/casper/initrd.lz
echo "Starting kernel"
}
#TODO: ist $root immer automatisch richtig gesetzt ?
# Man koennte search -l "Label-des-FAT32-auf-dem-Usbstick" benutzen.
# Man Kann auch 'search -f -s isodev /$iso' verwenden um das grub-device zu bekommen, auf dem $iso liegt. Man beachte dabei den absoluten Pfad mit / am Anfang! Das Ergebnis wird (falls gefunden) in der Variable $isodev abgelegt. z.b. $isodev=hd0,1
#TODO: Suche Loesung um die UUID des FAT32 an das bootende .iso weiterzugeben
menuentry "Empfohlen: Boot Ubuntu 11.10 ${bits}bit Live ISO by UUID" {
loopback loop ($root)/$iso
echo "Loading ${bits}bit kernel (takes up to 2 minutes)"
linux (loop)/casper/vmlinuz boot=casper iso-scan/uuid=C3E9-0499 iso-scan/filename=/$iso file=(loop)/preseed/ubuntu.seed --
echo "Loading ${bits}bit initrd (takes up to 5 minutes)"
initrd ($root)/$isoinitrd
echo "Starting ${bits}bit kernel"
}
menuentry "======== Bei Auswahl ab hier unbedingt Helfer hinzuziehen =======" {
#echo "Hier ist nichts. Gehen sie weiter."
set gameroot=(${root})/boot/game
export gameroot
configfile ${gameroot}/game.cfg
}
menuentry "Ubuntu 12.04 AMD64 vanilla" {
set64
set isodev=${root}
LoadCasperLoop
}
menuentry "Ubuntu 12.04 AMD64 LIP WS1213 Custom" {
set iso="ubuntu-12.04-lipws1213-amd64-v2.1.iso"
set localeinfo=""
LoadCasperLoop
}
menuentry "Ubuntu 12.04 AMD64 LIP WS1213 Custom DE" {
set iso="ubuntu-12.04-lipws1213-amd64-v2.1.iso"
set localeinfo="debian-installer/locale=de_DE console-setup/layoutcode=de"
LoadCasperLoop
}
menuentry "Ubuntu 12.04 x86 LIP WS1213 Custom DE" {
set iso="LIPiso32bit-v2.iso"
set localeinfo="debian-installer/locale=de_DE console-setup/layoutcode=de"
LoadCasperLoop
}
menuentry "Ubuntu 12.04 AMD64 LIP WS1213 Custom Chainload" {
set iso="ubuntu-12.04-lipws1213-amd64-v2.1.iso"
set isohd=(hd0,2)
loopback loop $isohd/$iso
set root=(loop)
export root
set iso_path="${iso}"
export iso_path
configfile /boot/grub/grub.cfg
}
menuentry "Helfermenu. Nur Nach Ruecksprache mit einem Install-Helfer benutzen." {
export bits
set autobits=${bits}
export autobits
configfile ${prefix}/helfer.cfg
}
# Konfiguration des Helfermenues
function set64 {
set iso="ubuntu-11.10-desktop-amd64.iso"
set isoalt="ubuntu-11.10-alternate-amd64.iso"
set isoinitrd="casper-initrd-amd64-mmoebius.lz"
set bits="64"
set altbits="32"
}
function set32 {
set iso="ubuntu-11.10-desktop-i386.iso"
set isoalt="ubuntu-11.10-alternate-i386.iso"
set isoinitrd="casper-initrd-i386-mmoebius.lz"
set bits="32"
set altbits="64"
}
function guesscpu {
if cpuid -l
then
echo "Dein System scheint ein 64-bit System zu sein."
set64
else
echo "Dein System scheint ein 32-bit System zu sein."
set32
fi
echo "Die weiseste Wahl sollte $bits bits mit $iso und $isoinitrd zu sein"
echo
}
#elif is not working in this grub version !?!
if test -z $bits
then
guesscpu
else
if test 64 == $bits
then
set64
else
set32
fi
fi
#TODO: ist $root immer automatisch richtig gesetzt ?
# Man koennte search -l "Label-des-FAT32-auf-dem-Usbstick" benutzen.
# Man Kann auch 'search -f -s isodev /$iso' verwenden um das grub-device zu bekommen, auf dem $iso liegt. Man beachte dabei den absoluten Pfad mit / am Anfang! Das Ergebnis wird (falls gefunden) in der Variable $isodev abgelegt. z.b. $isodev=hd0,1
#TODO: Suche Loesung um die UUID des FAT32 an das bootende .iso weiterzugeben
menuentry "=== cpuid empfiehlt ${autobits}bit (derzeit ist ${bits}bit ausgewaehlt) ===" {
echo "Hier ist nichts."
}
menuentry "Waehle ${altbits}bit (derzeit ist ${bits}bit ausgewaehlt)" {
set bits=${altbits}
export bits
configfile ${prefix}/helfer.cfg
}
menuentry "===========================================================================" {
echo "Hier ist nichts."
}
menuentry "Boot Ubuntu 11.10 ${bits}bit Live ISO by UUID" {
loopback loop ($root)/$iso
echo "Loading ${bits}bit kernel (takes up to 2 minutes)"
linux (loop)/casper/vmlinuz boot=casper iso-scan/uuid=C3E9-0499 iso-scan/filename=/$iso file=/cdrom/preseed/ubuntu.seed --
echo "Loading ${bits}bit initrd (takes up to 5 minutes)"
initrd ($root)/$isoinitrd
echo "Starting ${bits}bit kernel"
}
menuentry "Boot Ubuntu 11.04 ${bits}bit Live ISO scan all media" {
loopback loop ($root)/$iso
echo "Loading ${bits}bit kernel (takes up to 2 minutes)"
echo "Hint: You may need to mount the USB stick on /isodevice by hand !"
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/$iso file=/cdrom/preseed/ubuntu.seed --
echo "Loading initrd from iso (takes up to 5 minutes)"
initrd (loop)/casper/initrd.lz
echo "Starting ${bits}bit kernel"
}
menuentry "Boot Ubuntu 11.10 ${bits}bit Alternate Installer scan all media" {
echo "Hint: You may need to mount the cdrom contents on /cdrom by hand !"
loopback loop ($root)/${isoalt}
echo "1. mount -o ro USB-Stick /mnt"
echo "2. mount -o loop,ro /mnt/${isoalt} /cdrom"
echo "Loading ${bits}bit alternate kernel (takes up to 2 minutes)"
linux (loop)/install/vmlinuz file=/cdrom/preseed/ubuntu.seed --
echo "Loading initrd from installer iso (takes up to 5 minutes)"
initrd (loop)/install/initrd.gz
echo "Starting ${bits}bit alternate kernel"
}
menuentry "Boot Ubuntu 11.10 ${bits}bit Alternate Installer by UUID" {
echo ".... Work in progress ...."
echo "Hint: You may need to mount the cdrom contents on /cdrom by hand !"
loopback loop ($root)/${isoalt}
echo "1. mount -o ro USB-Stick /mnt"
echo "2. mount -o loop,ro /mnt/${isoalt} /cdrom"
echo "Loading ${bits}bit alternate kernel (takes up to 2 minutes)"
linux (loop)/install/vmlinuz iso-scan/uuid=C3E9-0499 file=/cdrom/preseed/ubuntu.seed --
echo "Loading ${bits}bit initrd (takes up to 5 minutes)"
initrd ($root)/$isoinitrd
echo "Starting ${bits}bit alternate kernel"
}
menuentry "Tool: 32bit GParted Live CD (laeuft im RAM -> mindestens 224MB)" {
# Hint: remove "toram=..." to make it work with 128mb ram
loopback loop ($root)/gparted-live-0.9.1-1.iso
echo "Loading 32 bit GParted kernel (takes up to 2 minutes)"
linux (loop)/live/vmlinuz boot=live config noswap noprompt nosplash findiso=/gparted-live-0.9.1-1.iso toram=filesystem.squashfs
echo "Loading initrd from iso (takes up to 5 minutes)"
initrd (loop)/live/initrd.img
echo "Starting 32 bit GParted kernel"
}
menuentry "Tool: Memtest86+" {
loopback loop ($root)/gparted-live-0.9.1-1.iso
echo "Loading memtest"
linux16 (loop)/live/memtest
echo "Starting Memtest86Plus"
}
menuentry "Tool: FreeDOS" {
echo "Loading memdisk"
linux16 ($root)/memdisk
echo "Loading FreeDOS"
initrd16 ($root)/freedos144.img
echo "Starting FreeDOS"
}
/usr/bin/qemu -boot c -m 128 -hda '/dev/sdb' -net none -localtime
/usr/bin/qemu-system-x86_64 -boot c -m 128 -hda '/dev/sdb' -net none -localtime
/usr/bin/qemu-i386 -boot c -m 128 -hda '/dev/sdb' -net none -localtime
#!/bin/bash
set -e
# Root pruefen
if [ x$EUID != x0 ]
then
echo "Du bist nicht ROOT ... verwende \"sudo bash $0\" !"
exit 1
fi
askyesno() {
while true
do
read -n1 -p "$1 [j,n]"
echo
case "$REPLY" in
y|Y|j|J) return 0;;
n|N) return 1;;
*) echo 'Antworte bitte mit "j" für "Ja" oder "n" für "Nein"' ;;
esac
done
}
ok() {
echo
echo -ne "\033[32;7m" # gruen
echo -n "$@"
echo -e "\033[0m" # normal
}
warn() {
echo
echo -ne "\033[33;7m" # gelb
echo -n "$@"
echo -e "\033[0m" # normal
}
err() {
echo
echo -ne "\033[31;7m" # rot
echo -n "$@"
echo -e "\033[0m" # normal
}
# Verbose error trapping
showerr() {
err "Bei der Installation ist ein Fehler aufgetreten. Frage einen Helfer."
}
trap showerr ERR
# DEBUG-Modus:
#apt-get() {
# echo "APT-GET $@"
#}
#/ DEBUG-Modus:
# System absichern
if askyesno "Netzwerk: Soll die Ubuntu Firewall (ufw/gufw) aktiviert werden ?"
then
ufw enable
apt-get --quiet install -y gufw
ok "Firewall aktiviert, benutze 'gufw' um die Einstellungen der Firewall zu verändern"
fi
#Medibuntu einbinden
if askyesno "Sollen die Medibuntu-Paketquellen hinzugefügt werden ?"
then
wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && apt-get --quiet update && apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && apt-get --quiet update
apt-get --quiet install -y app-install-data-medibuntu apport-hooks-medibuntu
apt-get --quiet install -y non-free-codecs
apt-get --quiet install -y libdvdread4
/usr/share/doc/libdvdread4/install-css.sh
apt-get --quiet install -y libdvdcss2 libxine1-ffmpeg gxine mencoder
apt-get --quiet install -y ffmpeg
apt-get --quiet install -y vlc mplayer
ok "DVDs abspielen ist nun möglich; der VLC Player und mplayer sind installiert worden"
else
echo "Es wurde nichts installiert"
fi
#Allgemeine Programme, Codecs, etc. installieren (VPN, LaTeX, gcc, Flash, unrar...)
echo
echo "Programme, die für alle Fachrichtungen interressant sind (VPN, LaTeX, Flash, unrar, etc.)"
if askyesno "Sollen diese Programme installiert werden ?"
then
apt-get -y --quiet install ubuntu-restricted-extras
ok "Codec Installation abgeschlossen"
apt-get install synaptic pwgen
ok "Installation der System-Utilities abgeschlossen"
apt-get install -y build-essential gcc g++ make automake vpnc network-manager-vpnc
apt-get install texlive texlive-doc-de texlive-latex-extra texlive-lang-german
ok "Development Programme, VPN und LaTeX abgeschlossen"
else
echo "Es wurde nichts installiert"
fi
#Fachrichtung wählen
echo
echo "Auswahl fachspezifischer Software. Wähle deine Fachrichtung:"
( # Diese Subshell setzt PS3 nur lokal
PS3="Deine Auswahl [1,2,3,4,5]<Enter>: "
select fach in "Informatik" "Mathematik" "Physik" "<anderes Fach>" "<keine Spezial-Software installieren>"
do
case "$fach" in
"") echo "Bitte wähle entsprechend deiner Fachrichtung eine Zahl von 1 bis 4 aus, tippe sie ein und drücke dann <Enter>"
;;
Informatik)
apt-get --quiet install -y default-jdk eclipse hugs swi-prolog
ok "Java, Haskell, Prolog und Eclipse wurden installiert"
break
;;
Physik)
wget http://www.fsmpi.rwth-aachen.de/apt/osak@fsmpi.rwth-aachen.de.gpg.key -O fsmpi.key
apt-key add fsmpi.key
rm fsmpi.key
echo "deb http://www.fsmpi.rwth-aachen.de/apt/ oneiric main" > /etc/apt/sources.list.d/fsmpi-root.list
apt-get update
apt-get --quiet install -y root-system libroot-core-dev libroot-bindings-python-dev
echo "ROOT wurde installiert"
apt-get --quiet install -y python python-numpy python-simpy python-scipy python-matplotlib ipython python-dev gnuplot wxmaxima kmplot
ok "Python (inkl. scipy und numpy), gnuplot, WxMaxima und KMplot wurden installiert"
break
;;
Mathematik)
warn "Bitte wende dich an deine Professoren - die Faschschaft I/1 könnte nicht klären," \
"welche (freie) Spezial-Software Mathematiker üblicherweise benutzen."
break
;;
"<anderes Fach>")
echo
echo "Für andere Fächer gibt es keine allgemeine Software-Empfehlung. Frage einen Helfer."
break
;;
"<keine Spezial-Software installieren>")
break ;;
esac
done
)
echo
echo "Wenn Du Software für eine weitere Fachrichung installieren möchtest, starte $0 erneut."
#end;
#!/bin/bash
PKG_LIST="openssh-server linux-firmware-nonfree swi-prolog cowsay fish get-flash-videos gnome haskell-platform java7-jdk imagemagick rxvt-unicode moc nethack-console scrot sl tmux vim xcowsay zsh zsh-doc texmaker gimp pidgin smplayer subversion git lftp inkscape"
PKG_LIST="python-numpy python-simpy python-scipy python-matplotlib ipython python-dev gnuplot wxmaxima kmplot network-manager-vpnc-gnome openssh-server linux-firmware-nonfree swi-prolog fish get-flash-videos gnome haskell-platform java7-jdk imagemagick rxvt-unicode vim zsh zsh-doc texmaker gimp pidgin smplayer subversion git lftp inkscape"
DESTINATION="/isodevice"
PKG_DESTINATION=$DESTINATION/archives
......
#!/bin/bash
PKG_LIST="openssh-server swi-prolog cowsay fish get-flash-videos gnome haskell-platform java7-jdk imagemagick rxvt-unicode moc nethack-console scrot sl tmux vim xcowsay zsh zsh-doc texmaker gimp pidgin smplayer subversion git lftp inkscape"
MY_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
set -e
MY_DIR="$( readlink -f "$( dirname "${BASH_SOURCE[0]}" )" )"
if [[ $UID -ne 0 ]]; then
echo "$0 must be run as root"
......@@ -8,9 +9,9 @@ if [[ $UID -ne 0 ]]; then
fi
MPOINT=""
source $MY_DIR/mount-stick-repo.sh #detect mountpoint
source "$MY_DIR/mount-stick-repo.sh" #detect mountpoint
if [ -n $MPOINT ]; then
if [ -n "$MPOINT" ]; then
SOURCE_PATH="$MPOINT"
MERGE_DIR=$(mktemp -d)
......@@ -36,9 +37,9 @@ if [ -n $MPOINT ]; then
fi
else
echo "No stick, no repo; good luck."
exit 1
fi
apt-get install $PKG_LIST #exec lip install script here?
exit 0
#end;
#!/bin/bash
set -e
MY_DIR="$( readlink -f "$( dirname "${BASH_SOURCE[0]}" )" )"
if [ -n "$DEBUG" ]
then
# DEBUG-Modus:
echo
echo "DEBUG Modus aktiviert"
echo "MY_DIR: $MY_DIR"
echo
DEBUG="echo DEBUG: "
apt-get() {
echo "APT-GET $@"
}
#/ DEBUG-Modus:
else
# Root pruefen
if [[ $EUID -ne 0 ]]
then
echo "Du bist nicht ROOT ... verwende \"sudo bash $0\" !"
exit 1
fi
fi
askyesno() {
while true
do
read -n1 -p "$1 [j,n]"
echo
case "$REPLY" in
y|Y|j|J) return 0;;
n|N) return 1;;
*) echo 'Antworte bitte mit "j" für "Ja" oder "n" für "Nein"' ;;
esac
done
}
pressenter() {
echo "Drücke <Enter> um fortzufahren (Strg-C zum Abbrechen)"
read
}
bright() {
# gruen
echo -ne "\033[1m$@\033[0m"
}
ok() {
echo
echo -ne "\033[32;7m" # gruen
echo -n "$@"
echo -e "\033[0m" # normal
}
warn() {
echo
echo -ne "\033[33;7m" # gelb
echo -n "$@"
echo -e "\033[0m" # normal
}
err() {
echo
echo -ne "\033[31;7m" # rot
echo -n "$@"
echo -e "\033[0m" # normal
}
# Verbose error trapping