Die folgend erzeugte Verzeichnisstruktur ist FHS Konform, die meisten Verzeichnisse werden mit den Rechten 0755 ausgestattet, das bedeutet jeder kann sie lesen und die darin enthaltenen Programme ausführen. Das ist nicht bei allen Verzeichnissen gewünscht weshalb einige mit einer anderen Zugriffsmaske erstellt werden.
mkdir -pv /{bin,boot,etc/opt,home,lib,mnt,opt} mkdir -pv /{media/{floppy,cdrom},sbin,srv,var} mkdir -pv -m 0750 /root mkdir -pv -m 1777 /tmp /var/tmp mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src} mkdir -pv /usr/{,local/}share/{doc,info,locale,man} mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} mkdir -pv /usr/{,local/}share/man/man{1..8} for dir in /usr /usr/local; do ln -sv share/{man,doc,info} $dir done case $(uname -m) in x86_64) ln -sv /lib /lib64 esac mkdir -pv /var/{lock,log,mail,run,spool} mkdir -pv /var/{opt,cache,lib/{misc,locate},local}
Einige Programme verwenden einprogrammierte Pfade zu Programmen, die zum jetzigen Zeitpunkt aber noch nicht installiert sind. Deshalb erstellen wir eine Reihe symbolischer Links, die im weiteren Verlauf des Kapitels beim Installieren der restlichen Software durch echte Dateien ersetzt werden:
ln -sv /tools/bin/{bash,cat,echo,grep,pwd,stty} /bin ln -sv /tools/bin/perl /usr/bin ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib ln -sv bash /bin/sh
Ein ordentlich eingerichtetes Linux hält in /etc/mtab
eine Liste der derzeit eingebundenen
Dateisysteme vor. Ist die Datei nicht vorhanden, so wird sie beim
ersten Einbinden eines Dateisystems automatisch erzeugt. Da wir aber
innerhalb der chroot-Umgebung keine Dateisysteme einbinden werden,
müssen wir die Datei selbst erstellen, weil einige Programme deren
Vorhandensein voraussetzen:
touch /etc/mtab