Emdebian Anleitung

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
jackdaniels
Beiträge: 41
Registriert: 29.06.2007 16:56:47

Emdebian Anleitung

Beitrag von jackdaniels » 26.06.2013 12:01:19

Hallo zusammen,

ich versuche ein Minimales Debian zu bekommen.
Dazu habe Emdebian gefunden.
Ich würde halt gerne wirklich alles unnütze entfernen da es nur einen einzigen Dienst bereitstellen soll.
Ob es nun 100mb oder 80mb sind, ist mir dabei relativ egal. Aber eine Minial-Installation hat nun doch einiges mehr und braucht auch mehr Ram.
Dieses Image soll dann in einer VM laufen (KVM).
Ich habe ein fertiges Image gefunden, wo jedoch anscheinend die Sourcen oder Einstellungen nicht stimmen und Updates nicht laufen. Zudem würde ich es gerne selbst machen.

Ich finde leider keine gute Anleitung. Die Homepage des Projektes ist nicht sehr aufschlussreich und bezieht sich in Teilen auf ältere Versionen. Darum scheitern meine Versuche oft.

Aus dem fertigen Verzeichnisbaum der entsteht würde ich dann gerne ein Image basteln welches ich unter KVM mounten und starten kann. Dazu finde ich leider rein gar nichts im Netz.

Ich hoffe ihr könnt mir auf meinem Weg etwas weiterhelfen.

Vielen Dank

Stefan

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Emdebian Anleitung

Beitrag von Cae » 26.06.2013 13:09:32

Ich hab' dazu keine weiterfuehrenden Links (vielleicht gibt's die auch nicht), sondern etwas mit Debiandeboostrap herum gespielt. Das Standard-"Image" ohne Kernel und Grub von Wheezy belegt 233 MB. Wenn ich da noch Kram rausschmeisse, der nicht unbedingt essentiell ist, kann ich das Ergebnis auf 156 MB druecken. Dabei ist /usr/share/{i10n,doc} mit "ueberfluessigen" 20 MB beteiligt, wobei in /lib Paketlisten/Caches von apt bald 70 MB belegen.

Links sind die Pakete, die nur im originalen chroot existierten, eingerueckt sind die neu installierten:

Code: Alles auswählen

# comm -3 <(chroot full dpkg -l | awk '{print$2}' | sort) <(chroot own dpkg -l | awk '{print$2}' | sort)
aptitude
aptitude-common
bsdmainutils
cron
dmidecode
groff-base
ifupdown
info
iproute
iptables
isc-dhcp-client
libept1.4.12
libxapian22
	localepurge
	locales
logrotate
man-db
manpages
nano
netcat-traditional
net-tools
rsyslog
tasksel
tasksel-data
traceroute
	ucf
vim-common
vim-tiny
wget
whiptail
xz-utils
Debianlocalepurge spart ungefaehr 40 MB Lokalisierungen, wobei das eher rm -rf als sauberes Deinstallieren ist und mit Vorsicht genossen werden sollte. Allerdings hatte ich bisher keine Probleme deswegen.

Um in den Zielbereich von 100 MB zu kommen, muss man wohl apt rausschmeissen und ipkg/opkg oder sowas nehmen.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

jackdaniels
Beiträge: 41
Registriert: 29.06.2007 16:56:47

Re: Emdebian Anleitung

Beitrag von jackdaniels » 26.06.2013 16:12:21

Hi, klingt schon mal gut :D

apt soll drin bleiben, iptables brauche ich jedoch nicht (wird nur in einem internen Netz verwendet)

Aber wie genau gehe ich da vor?
Ein chroot erstellen und dann daraus ein bootbares Image erstellen? Hast du da was für mich?

150mb sind auch mehr als gut!
Möchte halt kein altes DSL nutzen welches nicht mehr gepflegt wird und brauche Debian-Basis. Daher der Aufwand :(

danke

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Emdebian Anleitung

Beitrag von Cae » 26.06.2013 18:18:58

So ungefaehr

Code: Alles auswählen

host# fdisk /dev/sdc # Partition(en?) anlegen
host# mkfs.ext3 /dev/sdc1
host# mount /dev/sdc1 /mnt
host# debootstrap stable /mnt http://ftp.de.debian.org/debian # oder lokaler apt-cacher-ng/sonstiger Proxy/Mirror
host# mount -t proc none /mnt/proc
host# mount -t sysfs none /mnt/sys
host# mount --bind /dev /mnt/dev
host# chroot /mnt
 # anpassen: /etc/apt/sources.list, ggf. /etc/hostname, /etc/hosts, /etc/fstab (mit Hostsystem vergleichen)
chroot# apt-get install grub linux-image-686 # oder -amd64 bzw. -484 fuer steinalte Hardware
chroot# apt-get install locales localepurge  # ... siehe Liste oben
chroot# apt-get purge aptitude # ... siehe Liste oben
chroot# grub-install /dev/sdc  # sofern nicht bei der Kernelinstallation schon geschehen
chroot# exit
host# umount /mnt{/proc,/sys,/dev,}
Wenn ich nix vergessen hab', kann man den USB-Stick, oder was auch immer man da gerade als /dev/sdc bespielt hat, an 'nen anderen Rechner stekcen und booten koennen. Fuer bestimmte Netzwerkkarten braucht man Firmware, damit sie laufen, ggf. noch im chroot installieren, sofern noetig.

Was bei der Methode passieren kann, dass update-grub 'ne verkehrte Konfig zusammen baut, welche das "root"-Device aus GRUB-Sicht (real also /boot) auf /dev/sdc(1) baut, was es im Zielsystem gar nicht gibt. Dann wirst du beim Booten vermutlich 'ne GRUB-Error-Zeile bekommen und eine Mini-Shell. An der Stelle muss man etwas herumprobieren: Mit ls bekommt man eine Liste wie (hd0,msdos1) (hd0,msdos2) angezeigt. Das ist als (Platte,Partition) zu lesen, mit ls (hd0,msdos1)/ (Slash am Ende!) sollte man in das Dateisystem schauen koennen, sofern's lesbar ist. Sofern da etwas von config-... und System.map-... steht, ist's ziemlich wahrscheinlich /boot. Also setzen wir das als "root"-Device:

Code: Alles auswählen

set root='(hd0,msdos1)'
. Anschliessend laden wir den Kernel und die initrd:

Code: Alles auswählen

insmod linux          # vermutlich notwendig
linux /vmlinuz...     # genauer Name steht im ls-Output oben
initrd /initrd.img... # ebenso
Dann sollte das System erstmal booten (nicht erschrecken, der Kernel startet ohne quiet-Flag und schmeisst 'ne Menge Meldungen). Anmelden, update-grub fahren, rebooten, gucken, ob's durchlaeuft.

Mit Kernel und allem duerften da so 200 MB herum rausfallen.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten