# Minimalinstallation auf Flash

## ZX-81

Für meine "Haustechnik" möchte ich mir gentoo auf einer Flash-Disk installieren. 

Wie kann ich es abspecken und wieviel Platz braucht es dann noch? 

Es soll Standalone booten und laufen, während Installation und Updates hätte ich z.B,  /usr/portage vom Server gemountet. Was kann man noch wegmappen?

ZX

----------

## ZX-81

So jetzt habe ich meine erste Testinstallation am Laufen.

Sie belegt ca. 600 MB, wobei davon ca 150 MB auf das Konto von blackdown-java gehen.

Erstellt habe ich alles in einer chroot-Umgebung auf einem anderen System, anschliessend wurde es dann mit rsync auf die Flashdisk kopiert. Von rsync wurden ausgenommen:

```
/usr/portage

/usr/src

/tmp

/var/tmp
```

Änderungen im Build-System lassen sich jetzt einfach und schnell via rsync auf die Flashdisk übertragen, funktioniert also eigentlich recht gut. Wenn man aber bedenkt, dass das System 450 GB belegt, und dabei noch kein X installiert ist, erscheint mir das schon recht viel.

----------

## /dev/blackhawk

Was für eine Art Flash Disk verwendest Du (SD, MMC, USB ...)?

Kannst Du einen kurzen Überblick über verwendete Komponenten (Hardware/Software) geben bzw. im groben erklären, wie alles von statten ging?

MFG

/dev/blackhawk

----------

## genstef

http://flashlinux.org.uk/

Vielleicht ist das was für euch .. sieht ziemlich cool aus  :Smile: 

----------

## Hilefoks

Moin,

du könntest dir auch mal Gentoo-x86-embedded  anschauen. Die ist nicht gegen die glibc sondern gegen die sehr kleine uclibc gelinkt. Ein Stage3-Archiv der embedded-2005.0 Version ist keine 40MB groß - und auch eine Stage1 installation ist super schnell (auf meinem Centrino 1.4 keine 45Min zum laufenden Grundsystem).

Mfg Hilefoks

Stages zB. hier: ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo/experimental/x86/embedded/stages/

Mehr zur uclibc: http://www.uclibc.org/

P.S: Und dann noch minit oder initng und auch das booten ist sehr schnell  :Wink: 

----------

## ZX-81

 */dev/blackhawk wrote:*   

> Was für eine Art Flash Disk verwendest Du (SD, MMC, USB ...)?
> 
> Kannst Du einen kurzen Überblick über verwendete Komponenten (Hardware/Software) geben bzw. im groben erklären, wie alles von statten ging?

 

Ich verwende eine 1 GB Compact Flash PCMCIA Karte in einem Geode System (300 MHz, 128 MB Ram).

Vorgehensweise:

1. Vorbereitung des Systems auf einem Buildsystem wie im Gentoo-Handbuch beschrieben (Ich habe es wirklich auf einer freien Partition gemacht, da ich aber niemals von dieser Partition gebootet habe, reicht auch ein Verzeichnis).

2. Partitionieren und Formatieren der Flash-Karte (Nur eine Partition mit reiserfs)

3. Kopieren des vorbereiteten Systems auf die Flash-Karte mit rsync.

4. chroot in die Flash-Karte um grub zu installieren. (Damit hatte ich am meisten Ärger. Ursprünglich hatte ich die Karte über einen USB-Leser als /dev/sda an mein Notebook angeschlossen. Ich habe es jedoch nicht geschafft grub über /dev/sda so zu installieren, dass er später von /dev/hdc bootet. Erst als ich die Karte im PCMCIA-Slot des Notebooks als /dev/hde hatte ging es. Nebenbei habe ich mir dabei einmal auch den Bootloader des Notebooks zerschossen  :Rolling Eyes:  )

Wenn der Bootloader einmal steht ist der Rest recht einfach: Einfach die gewünschten Änderungen im Build-System durchführen, per rsync auf die Karte und ab damit ins Zielsystem

@genstef: Sieht wirklich cool aus  :Smile:   Wollte auf dem System aber so exotische Pakete wie asterisk installieren und das wird dann wohl damit schwierig.

@Hilefoks: Interessanter Tip. Funktioniert uclibc auch mit xorg?

----------

## Tobiking

Es gibt doch auch noch diese Methode mit dem comprimierten loopback device oder wie das genau funktioniert. Mir fällt der name nicht ein aber Knoppix und andere live cd benutzen das und das sollte auf ner Flash disk genau so platz sparen.

----------

## flash49

Ich betreibe hier einen Router auf dem ein ca. 48 MB großes gentoo läuft. (Im Moment noch mit glibc.) Ich benutze auch rsync zum upgrade:

Um nur das nötigste mit zu kopieren benutze ich ich eine include/exclude liste:

```
rsync -R -a -v --rsh=ssh --recursive --progress -x --delete \

        --delete-excluded --include-from=$INCLUDELIST \

        $SOURCEDIRS $DESTINATION ;
```

Meine Liste habe ich mal hierhin gelegt.

Edit:

nopaste.phpfi.com Scheint nicht merh zu existieren, daher:

WICHTIG: Die Inlcude Liste zum scriptLast edited by flash49 on Wed Jun 22, 2005 3:32 pm; edited 1 time in total

----------

## Hilefoks

 *ZX-81 wrote:*   

> @Hilefoks: Interessanter Tip. Funktioniert uclibc auch mit xorg?

 

Ich habe bei meinem Test mit uclibc nicht xorg installiert. Aber ich gehe fest davon aus das xorg mit der uclibc zusammen läuft da xorg ein USE-Flag für die uclibc hat.

----------

## homry

das ist vielleicht auch noch interessant für minimalinstallationen:

http://www.damnsmalllinux.org/

homry

----------

## genstef

 *homry wrote:*   

> http://www.damnsmalllinux.org/

 

Tja, das basiert im Gegensatz zu flashlinux jedoch nicht auf gentoo .. das ist doch traurig, wenn man da nicht die gewohnten Ausgaben sieht  :Smile: 

Ausserdem ist es im Unterschied zu flashlinux hauptsächlich für den LiveCD-Einsatz konzipiert.

----------

## oma

Nunja, erinnere mich das Inte  mal sowas gemacht hat: https://forums.gentoo.org/viewtopic-t-178887-highlight-usb+stick.html das sollte im Grunde schon ziemlich ähnlich sein, oder?

----------

## ZX-81

 *ZX-81 wrote:*   

> So jetzt habe ich meine erste Testinstallation am Laufen.
> 
> Sie belegt ca. 600 MB, wobei davon ca 150 MB auf das Konto von blackdown-java gehen.
> 
> 

 

Hatte im rsync den "--delete" vergessen. Jetzt belegt das System noch knappe 450 MB (<300 MB ohne Java) und ich denke, es um weitere 100 MB abzuspecken, dürfte nicht schwer sein.

@genstef: Ich habe heute flashlinux ausprobiert. Funktioniert einwandfrei. Ein System mit Gnome auf <256 MB unterzubringen geht natürlich nicht ohne Komprimierung. Mit wenig Arbeitsspeicher (128 MB) und einem schwachen Prozessor (300 MHz) ist das aber leider unerträglich langsam.

@flash49: Ganz schön abgespeckt.  :Smile:   Du hast allerdings in Deiner exclude-Liste einige Dateien und Verzeichnisse mit Versionsnummern drin, da würde ich befürchten, dass sich bei einem Update erstmal die neuen Versionen auf das Flash schleichen  :Wink: 

----------

## STiGMaTa_ch

 *Quote:*   

> @Hilefoks: Interessanter Tip. Funktioniert uclibc auch mit xorg?

 

Ja, funktioniert! Ich habe allerdings nur ein minimales X (mit Useflag -minimal) erstellt sowie fluxbox als WM benutzt. Beim kompilieren hatte ich nur ein Problem, dass xorg ttmkfdir kompilieren wollte. Leider machte das Paket Probleme beim kompilieren. Ich habe aber eine angepasste ebuild erstellt, welche du in bugs.gentoo.org finden kannst (https://bugs.gentoo.org/show_bug.cgi?id=80469#c4).

Lieber Gruss

STiGMaTa

----------

## slick

Hmm... nurmal so just for info, euch ist schon bewußt das flash-datenträger nur begrenzt beschriebbar sind und je nach Typ schon nach paar hunderttausend Schreibvorgängen den Geist aufgeben!? Deswegen sollte man den Datenträger möglichst nur als ROM benutzen und alles andere in eine Ramdisk packen...

----------

## flash49

Mir war es bewußt, und deshalb habe ich "/" mit noatime gemounted und "/tmp" sowie "/var/log" sind tmpfs Filesysteme. So lange man den Rechner nicht als Datenbank-, Mail-, Drucker-, etc.-Server verwendet sollte er in den anderen Verzeichnissen nach dem booten nichts mehr schreiben müssen. 

@ZX-81

 *Quote:*   

> @flash49: Ganz schön abgespeckt.  Du hast allerdings in Deiner exclude-Liste einige Dateien und Verzeichnisse mit Versionsnummern drin, da würde ich befürchten, dass sich bei einem Update erstmal die neuen Versionen auf das Flash schleichen 

 

Nicht ganz, das verhindert das "-*" am Ende. Ich hatte allerdings schonmal das umgekehrte Problem, das er nach einem vim-upgrade die neuen "syntax-highlighting" Dateien nicht kopiert hat. Das sollte sich aber mit Wildcards lösen lassen.

----------

## genstef

 *slick wrote:*   

> Hmm... nurmal so just for info, euch ist schon bewußt das flash-datenträger nur begrenzt beschriebbar sind und je nach Typ schon nach paar hunderttausend Schreibvorgängen den Geist aufgeben!? Deswegen sollte man den Datenträger möglichst nur als ROM benutzen und alles andere in eine Ramdisk packen...

 

Flashlinux verwendet als Lösung für dieses problem ein spezielles, auf den Flash angepasstes Filesystem, das wenig schreibt.

----------

## Cabal2002

mod-edit: folgendes Post hier angehangen --slick

Hallo zusammen

wie bekommt man am einfachsten ein gentoo auf eine compact flash card? Ich habe mir mal auf gentoo-wiki den Live-USB Artikel angesehen aber das ist irgendwie nicht das Richtige. Ich habe mal gelesen das man portage per Befehl dazu bringen kann die fertigen Pakete nicht auf der lokalen Platte ab / zu installieren sondern auf einem anderen Medium. Bevor ich mir nun ein stage 3 auf die Karte kopiere, wollte ich mal hören ob es da einen elegentaren Weg gibt. Das ganze soll hinterher einen Server fürs heimische LAN geben. Also brauche ich das ganze gcc Gedöns auf dem Flash nicht, sondern nur die eigentlichen libs und binarys oder?

Gruß Cabal

----------

## nic0000

https://forums.gentoo.org/viewtopic-t-444119.html wird das Binäre und auch über die Konsequenzen gesprochen

Aber du solltest dir etwas zusammenbauen was im Ram läuft und nur vom CF startet.

----------

## Dr. Nein

Hier gibt es ein recht umfangreiches Howto, dass ich mal genutzt habe: https://forums.gentoo.org/viewtopic-t-327295.html

----------

## flash49

 *nic0000 wrote:*   

> Aber du solltest dir etwas zusammenbauen was im Ram läuft und nur vom CF startet.

 

Es muß nicht alles im ram laufen, es reicht völlig, wenn alle sich häufig ändernden Verzeichnisse (/tmp,/var/log, ... )auf einer Ramdisk liegen, denn Lesen ist für eine CF-Karte kein Problem. Allerdings sollte man das Filesystem auf der CF Karte mit "noatime" als Parameter mounten, sonst schreibt Linux auch beim reinen Lesen auf die CF-Karte.

----------

## nic0000

 *flash49 wrote:*   

>  *nic0000 wrote:*   Aber du solltest dir etwas zusammenbauen was im Ram läuft und nur vom CF startet. 
> 
> Es muß nicht alles im ram laufen, es reicht völlig, wenn alle sich häufig ändernden Verzeichnisse (/tmp,/var/log, ... )auf einer Ramdisk liegen, denn Lesen ist für eine CF-Karte kein Problem. 

 

Stimmt, das ist sogar viel einfacher zu machen.

----------

## Cabal2002

Hi

ich bin jetzt dabei mir nach https://forums.gentoo.org/viewtopic-t-327295.html das System zusammenzubauen. Bis zum emergen des Systems und der Programme bin ich damit einverstanden. Danach wirds mir zu kompliziert. Wir ihr bereits angeregt hattet, reicht es die sich häufig ändernden Verzeichnisse im Ram zu haben und den Rest read-only vom Flash laufen zu lassen. Meine fstab würde ich dann wie folgt erstellen:

```

# <fs>                  <mountpoint>    <type>          <opts>                <dump/pass>

/dev/hda1               /               ext2            noatime,ro            0 0

/dev/hda2               /etc            ext2            noatime               0 0

none                    /var/lock       tmpfs           defaults              0 0 

none                    /var/log        tmpfs           defaults              0 0 

none                    /var/run        tmpfs           defaults              0 0 

none                    /tmp            tmpfs           defaults              0 0

none                    /proc           proc            defaults              0 0

none                    /dev/shm        tmpfs           defaults              0 0 

```

Was meint ihr dazu?

Gruß Cabal

----------

## nic0000

 *Cabal2002 wrote:*   

> Was meint ihr dazu?

 

Sieht gut aus. Ich würde noch einen cron-job oder logrotate einrichten und die logs irgendwo dauerhaft speichern. Kann auch vernachlässigt werden, aber ich habe früher fli4l benutzt und kann das nur empfehlen.

----------

## pablo_supertux

mod-edit: folgenden Thread hier angehangen --slick

Hallo

ich installiere gerade Gentoo auf einem Embedded System und hab nur 512 MB Speicher (Flash memory) zur Verfügung. Zum kompilieren hab ich mir eine Festplatte angeschlossen.

Ich installiere mit 2006.1 stage-3 und hab im prinzip nur ein emerge -uvaDN world ausgeführt (und kleine Tools wie vim, equey, usw) installiert. Da das System an sich kein /usr/{src,portage}, /var/tmp/portage braucht, hab ich extra Partitionen dafür angelegt. Das System ist aber 650 MB groß,Ich möchte es irgendwie auf 300 bis 400 MB halten, aber ich weiß nicht so genau, was ich problemlos wegmachen kann. /var/{db,cache} kann ich auch in die Festplatte bannen, da diese nicht gebraucht werden, wenn das System läuft, das w#ren gut 120 MB (ungefähr). Aber ich möchte auf noch mehr Sachen verzichten: Welche pakete kann ich problemlos deinstallieren, ohne dass das System darunter leidet?

Gruss

Pablo

----------

## STiGMaTa_ch

 *pablo_supertux wrote:*   

> ich installiere gerade Gentoo auf einem Embedded System[...]

 

Verwende uclibc!

Nicht nur, dass uclibc wesentlich kleiner als glibc ist, alle dagegen kompilierte Programme werden ebenfalls kleiner. Ich habe z.B. busybox zweimal statisch kompiliert. Die uclibc Version ist glatt halb so gross wie die glibc Version.

Lieber Gruss

STiGMaTa

----------

## pablo_supertux

Ich hatte es vor, aber ich hab den Namen ulibc mit distcc verwechselt und als ich Doku dafür las, hab ich nicht kappiert, was das sein sollte   :Rolling Eyes:  bin ich doof.

Wo gibt es eine Doku für den Umsteig in ulibc statt glibc? Ich hab gesehen, dass /usr/share/locales ziemlich groß ist. Da aber das System nur auf Englsich laufen wird, bräuchte ich im Prinzip diese ganze andere gar nicht, oder? Die kann ich dann ohne Probleme löschen, nehme ich an.

PS: wenn ich in ulibc umsteige, dann werde ich wahrscheinlich das gesamte System neu bauen müssen, oder?

----------

## doedel

Das hier habe ich erst gemacht, ist auch ganz easy. http://de.gentoo-wiki.com/Mini-Gentoo

Nur wäre ich froh, wenn einer von euch weiss wie man dort init-scripte verwenden kann und mit tools wie rc-update und so weiter....

----------

## Knieper

Ich wuerde ja empfehlen, ein eigenes init zu basteln. Evtl. minit mit dietlibc. Schaut Euch /sbin/rc auf Eurem Rechner an und dann die Skripte (/etc/init.d/ Config in /etc/conf.d/), die Ihr startet. Kuerzt alles weg, was auf Eurem System nicht gestartet wird und baut daraus Euer eigenes. Wenn's funktioniert, kann zB. das alte Init weg.

@Pablo Was soll das System denn koennen? Dann faellt das Loeschen leichter.  :Wink: 

----------

## STiGMaTa_ch

 *pablo_supertux wrote:*   

> Wo gibt es eine Doku für den Umsteig in ulibc statt glibc?

 

Bei google  :Laughing: 

http://www.google.ch/search?hs=Pmz&hl=de&client=firefox-a&rls=org.mozilla%3Ade%3Aofficial&q=gentoo+uclibc&btnG=Suche&meta=lr%3D

 *pablo_supertux wrote:*   

> Ich hab gesehen, dass /usr/share/locales ziemlich groß ist. Da aber das System nur auf Englsich laufen wird, bräuchte ich im Prinzip diese ganze andere gar nicht, oder? Die kann ich dann ohne Probleme löschen, nehme ich an.

 

Siehe dazu das Gentoo Handbuch:

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#book_part1_chap6__chap2_sect4

 *pablo_supertux wrote:*   

> PS: wenn ich in ulibc umsteige, dann werde ich wahrscheinlich das gesamte System neu bauen müssen, oder?

 

Yepp. Ich empfehle von "Null" an direkt mit einer uclibc Stage 3 zu beginnen. Das erleichtert dir das Leben ungemein. Auf meinem Gentoo Mirror gibt es seit zwei Tagen sogar ein 2006.1 Stage 3 (stage3-x86-uclibc-2006.1.tar.bz2) dafür runterzuladen:

http://mirror.switch.ch/ftp/mirror/gentoo/experimental/x86/embedded/stages/

Lieber Gruss

STiGMaTa

----------

## slick

Mini-Gentoo, siehe (u.a.) auch: https://forums.gentoo.org/viewtopic-t-205813.html

Thread von pablo_supertux (vorherige 6 Posts) hier angehangen, ggf. auch vorherige Posts beachten.

----------

## pablo_supertux

 *STiGMaTa_ch wrote:*   

> 
> 
>  *pablo_supertux wrote:*   PS: wenn ich in ulibc umsteige, dann werde ich wahrscheinlich das gesamte System neu bauen müssen, oder? 
> 
> Yepp. Ich empfehle von "Null" an direkt mit einer uclibc Stage 3 zu beginnen. Das erleichtert dir das Leben ungemein. Auf meinem Gentoo Mirror gibt es seit zwei Tagen sogar ein 2006.1 Stage 3 (stage3-x86-uclibc-2006.1.tar.bz2) dafür runterzuladen:
> ...

 

boah geil, respekt, werde mal testen (leider kann ich das Embedded System nicht nach Hause mitnehmen)

Gruss

Pablo

----------

## JoHo42

Habe schon seit laengerem ein embedded Board zu Hause liegen.

Ich habe mal versucht dort Gentoo zu installieren mit uclib.

Allerdings bin ich da nicht wirklich weit gekommen.

Ich habe von einer Firma die Powerpoint Presentation und Software in die Finger bekommen.

Das war ein Kursus um Linux auf so ein Board zu installieren.

Die arbeiten mit Speicherbereichen,

lowlevel.bin 0x0 Firmware

firmware.bin 0x001 Firmware startup

kernel.bin 0x002 Kernel

image.bin 0x0028 Linux Filesystem

image.bin ist eine image.ext2.gz Datei in der das gesamte Filesystem steckt.

Wie kann ich so eine Datei erstellen?

Wie kann ich die veraendern?

Gruss Joerg

----------

