SuSe Hardwaredatenbank cdb suse.de
Hersteller, Erfahrungsberichte, Installationsquelle: CD, DVD, NFS, FTP, SMB(Windows-Freigabe), FAT16, FAT32
NFS: mount -t nfs 192.168.1.1:/daten/install /mnt/
| Bootdisketten unter Linux erstellen | dd if=/media/cdrom/disks/bootdisk of=/dev/fd0 |
| Bootdisketten unter Windows erstellen | R:\dosutils\rawwrite\rawwrite.exe(oder rawwritewin.exe) |
Im /proc/-Verzeichnis kann man nur lesen(z.B. mit cat /Verzeichnis/Datei).
| /proc/interrupts | IRQ-Vergabe |
| /proc/pci | PCI-Vergabe, auch mit lspci |
| /proc/ioports | |
| /proc/dma | |
| /usr/share/pci.ids | HardwareHerstellerliste |
| pciids.sourceforge.net | Download der aktuellen Herstellerliste |
| /proc/Kcore | Arbeitsspeicher |
| /proc/sys/net/ip-v4/ip-forward | Routerweiterleitung |
| /proc/cpuinfo | |
| /proc/version | Linux-Version |
| /proc/devices | Geräte |
| /proc/partitions |
In einigen Fällen kann man auch schreibend ins /proc-Verzeichnis eingreifen. Mit
echo 1 > /proc/sys/net/ipv4/ip_forward macht man z.B. einen Linuxrechner zum Router. Dieser Befehl muß bei jedem reboot ausgeführt werden.
Seitenanfang oder Hauptseite
| /dev/hda1 | /boot | ext2 | 20 MB, innerhalb der 1. 1024 Mb |
| /dev/hda1 | / | reiserFS | 2 Gb |
| /dev/hda1 | swap | swap | 128 Mb |
Wenn Windows mit im Spiel ist sollte erst Windows98, dann WindowsXP(NT, 2000) und als Letztes Linux installiert werden.
Das Bootflag sollte auf / gelegt werden.
Partitionierung mit fdisk /dev/hda oder bequemer cfdisk. 1 Block entspricht 8,2 Mb.
Weiteres zum Thema in Dateien, Verzeichnisse und Geräte.
Seitenanfang oder Hauptseite
Manuelle Installation, Sprache
Netzwerkkartentreiber laden, Installation über Netzwerk NFS-Server: 192.168.1.1, Verzeichnis: /linux/install
Seitenanfang oder Hauptseite
Manuelle Installation, Sprache
Netzwerkkartentreiber laden, Installation über Netzwerk NFS-Server: 192.168.1.1, Verzeichnis: /linux/install
1 MBR pro Platte, 1 boot-MBR pro Partition, Größe 466 Byte
Der Bootloader gehört innerhalb der ersten 1024 Zylinder, es sei denn, es wurde der LBA-Modus der Platte im BIOS eingestellt.
Bootreihenfolge: BIOS, MBR, Hardwareadresse zu lilo oder grub, Kernel und initrd(/boot muß ext2 sein), init 1-5
Fehler:
| piepen | MBR defekt |
| nichts | nichts geladen |
| L | Plattenparameter im BIOS falsch oder Platte ist defekt |
| LI | Plattengeometrie(Image auf falsche Größe) oder boot.b fehlt |
| lilo geht, der Rest nicht | Lilo falsch eingestellt oder Kernel umbenannt |
| Kernel steht | Filesystemunterstützung fehlt |
reparieren: mit CD starten, lilo neu ausführen, Sicherung zurück spielen
Bootsektor kopieren:
dd if=dev/hda of=/tmp/bootsek.lin count=1 bs=512
Bootdiskette erstellen:
dd if=/tmp/bootsek.lin of=/dev/fd0
oder
dd if=/boot/vmlinuz of=/dev/fd0
Starten unter Windows mit boot.ini:
c:\bootsek.lin
Wenn der Bootprompt von LILO oder GRUB beim Start des Systems erscheint, dann erwartet der Bootmanager dei Eingabe eines Systems(meist ist nach Ablauf von einigen Sekunden eine Standardeingabe voreingestellt).
LILO boot: linux aha152x=0x300,10,7
startet Linux unter LILO mit SCSI-Unterstützung.
kernel /bzImage-2.2.14 ro root=/dev/hda3 aha152x=0x300,10,7
startet Linux unter GRUB mit SCSI-Unterstützung.
Kernelmeldungen werden mittels klogd in die Datei /var/log/messages geschrieben. Dort stehen auch weitere Meldungen, die der Daemon syslod hereinschreibt. Diese Meldungen können während der Laufzeit mit
tail -f /var/log/messages eingesehen werden.
Da die Daemons hierfür schon geladen sein müssen, fehlt hier der Beginn des Bootvorganges. Diesen kann man mit dmesg aufrufen.
ohne Bootmanager: an 1. Sektor der 1. Platte den Bootloader oder Kernel auf Floppy; rdev Kernel (root-Device angeben)
/etc/lilo.conf
man 5 lilo.conf
| # globale Einstellungen | ||
| append="reboot=warm" | Übergabe von Kernelparametern, hier keine Speicherprüfung | |
| boot=/dev/hda | Bootinfos auf dem MBR von /hda möglich ist auch /dev/hda4, für die Beschreibung des Bootsektors der Partition | |
| vga=normal | ||
| lba32 | große Platten über 1024 Cylinder, bei LBA-Modus können angesprochen werden | |
| message=/boot/message | Datei mit Nachrichten | |
| timeout=300 | in Zehntel-Sekunden oder prompt, wenn kein timeout erwünscht | |
| Image=/boot/vmlinuz | Kernelangabe, auch /boot/bzimage-1.0.9, ist bei Standardkernel nicht nötig | |
| label="Suse Linux" | Anzeige im Bootmenü | |
| root=/dev/hda2 | ||
| initrd=/boot/initrd | die zu ladende initiale Ramdisk, Kernelmodule(z.B. reiserFS) | |
| # andere OS | ||
| other=/dev/hda3 | ||
| label=dos | ||
| other=/dev/hda2 | ||
| alias=win | auch bei Eingabe des kürzeren Wortes win wird Windows gestartet | |
| label=Windows |
weitere lilo-Dateien: /boot/boot.b, /boot/boot-menu.b, /boot/boot-tmp.b
anderes Konfigurationsfile angeben: lilo -C Datei
Nach Änderung der /etc/llo.conf "lilo" als Befehl ausführen!!!
1. /lib/modules/2.4.18-default/kernel/fs/xfs/xfs.o
2. vi etc/sysconfig/kernel
3. einbauen: INITRD_MODULES="reiserfs xfs" , abspeichern
4. mk_initrd
5. lilo
Mit lilo -u kann der Bootmanager wieder entfernt werden.
/sbin/grub-install /dev/hda zur Installation von grub einmalig ausführen oder bei Zerstörung des MBR
/boot/grub/menu.lst
(fd0),=floppy, (hd0,1)=1.Platte,1.Partition
/boot/grub/grub.conf:
| color write/blue black/gray | |
| default 0 | der erste Eintrag wird standardmäßig benutzt |
| timeout 8 | in Sekunden |
| gfxmenu (hd0,0)/boot/message | irgendwelchen Nachrichten eintragen |
| splashimage=(hd0,0)/grub/splash.xpm.gz | Hintergrundbild |
| title Linux | |
| kernel (hda2,0)/vmlinux root=/dev/sdb3 vga=0x314 hdc=ide-scsi ide=nodma apm=off aspi=off initrd (hd0,2)/boot/initrd | kernelstandort, root-FileSystem(/), VGA-Auflösung(oder ask25x80), Brenner(ide->scsi), APM=aus, ASPI=aus, Standort-initrd(zusätzliche Module) |
| title linux-alt (2.2.14) | |
| root (hd0,0) | Nicht das Wurzelverzeichnis, sondern ie Partition, auf der die Kerneldateien und die grub-Konfigurationsdateien liegen, Nummer der Platte und Partition |
| kernel /bzImage-2.2.14 ro root=/dev/hda3 | Angabe des Kernels auf der Partition der root-Angabe |
| initrd /initrd-2.2.14.img | Ramdiskdatei |
| title WinXP | |
| root(hd0,0) | Partition der boot.ini |
| chainloader +1 | 1. Teil der Windows Partition |
| title win98 | |
| map (hd0,0) (hd0,1) | Windows98 bootet normalerweise nur von der ersten Partition der ersten Festplatte. Durch den Befehl map (hd0,0) (hd0,1) wird die Partition hd0,0 zur zweiten Partition (hd0,1) und mit der nächsten Zeile wird entsprechend die zweite Partition zur ersten. Aus der Sicht des Windows-Systems ist also die zweite Partition jetzt die erste und umgekehrt. Damit ist für Windows die Welt wieder in Ordnung und es glaubt, von der ersten Partition zu booten. |
| map (hd0,1) (hd0,0) | |
| rootnoverify | entspricht der Angabe root bei Linux-Einträgen, ohne mount |
| chainloader +1 | Windows wird über einen chainloader gebootet |
man bash invocation
| /etc/profile | user-unabhängig, Befehle und Variablen |
| ~/.bash_profile | |
| ~/bash_login | |
| ~/.profile | wird immer abgearbeitet |
| ~/.bashrc | |
| ~/.bash_logout | für ev. Aufräumarbeiten |
| su -l | login-shell mit enviroment nach Systemstart |
Seitenanfang oder Hauptseite
Der Linuxkernel ist kein monolithisches Gebilde mehr, wie früher, sondern setzt sich aus verschiedenen Modulen zusammen. Diese Module können mit dem Kernel fest verdrahtet sein, was bei grundlegenden Eigenschaften, wie Gerätetreiber oder Treiber des Dateisystems, auch sinnvoll sein. Bei anderen Treibern, wie USB-Geräte, ist es eher sinnvoll, diese Module nachzuladen, sowie, nach Gebrauch, wieder zu entladen. Alles was fest in dem Rechner steckt, sowie alles was zum booten gebraucht wird, sollte fest im Kernel eingebunden sein.
Die Kernelmodule des Linux-Kernels findet man unter /lib/modules/Kernelversion. Die Module bestehen aus Objektdateien (Endung .o) und sind in diversen Unterverzeichnissen verteilt.
Das Programm depmod untersucht die Abhängigkeiten aller Module und schreibt die Ergebnisse in die Datei /lib/modules/Kernelversion/modules.dep. Jedesmal, wenn neue Module ins Modulverzeichnis kopiert werden, muß anschließend dieses Programm aufgerufen werden.
| lsmod | zeigt alle geladenen Module im Format Name, Größe, Wie-oft-gebraucht und Liste der Module, die das Modul benötigen |
| insmod ne io=0x300 irq=5 | Laden eines Treibers, hier ne2000 mit Angabe zu IRQ und IO-Adresse |
| modprobe ppa | läd einen Treiber, incl. nötige Zusatzmodule, Modulparameter in /etc/modules.conf, hier Zip-Drive mit Parallelporttreiber |
| rmmod -r treiber | entladen des Treibers, r=incl. aller Abhängigkeiten |
| modinfo 3c509 | Treiberinformationen |
| options ne io=0x320 irq=7 | Parameterübergabe für /etc/modules.conf, für das Programm modprobe |
| alias Aliasname Modulname | einen verständlichen Namen für ein Modul definieren |
| pre-install Modul Kommando | Ausführen eines Befehls(z.B. Laden eines anderen Moduls) vor dem eigentlichen Laden des Modules |
| post-install Modul Kommando | Ausführen eines Befehls nach dem eigentlichen Laden des Modules |
| pre-remove Modul Kommando | Ausführen eines Befehls vor dem eigentlichen Ent-Laden des Modules |
| post-remove Modul Kommando | Ausführen eines Befehls nach dem eigentlichen Ent-Laden des Modules |
| uname | Ausgabe von Kernelinformationen |
Seitenanfang oder Hauptseite
Runlevel werden in dem Verzeichnis /etc/inittab definiert. Mit dem Befehl init 5 wechselt man in den Runlevel 5.
| Runlevel 0 | Halt |
| Runlevel 1 | Singel User Mode, ohne Netz, für die Systemverwaltung |
| Runlevel 2 | Multi User Mode, ohne Netz |
| Runlevel 3 | Multi User Mode mit Netz |
| Runlevel 4 | reserviert |
| Runlevel 5 | Multi User Mode mit Netz und grafischer Oberfläche |
| Runlevel 6 | reboot |
shutdown, reboot, poweroff, suspend und halt sind Befehle den rechner runterzufahren, bzw. zu rebooten.
Um ein Programm automatisch in einem Runlevel laufen zu alassen, braucht man ein Start-Stop-Script, welches man in das jeweilige Verzeichnis /etc/init.d/ symbolisch verlinkt. Die eingetragenen scripte werden der Reihenfolge nach abgearbeitet(deshalb auch die Zahlen).
Start-Stop-Script
case "$1" in
start) /usr/local/thttpd
;;
stop) killall thttpd
;;
esac
/etc/init.d/rc3.d # ln -s /etc/init.d/nfs S17nfs - für den Start, slink in runlevel eintragen
/etc/init.d/rc3.d # ln -s /etc/init.d/nfs K17nfs - für Stop, slink in runlevel eintragen
Seitenanfang oder Hauptseite
benötigt make, gcc, configure; installation z.B. mit yast -i make; Informationen zur z.B. cpu mit cat /proc/cpuinfo
aktuelle Kernelversion besorgen: kernel.org
Versionen betehen aus Major.Minor.Patch(Bsp. 2.4.24)
Bei der Minor-Nummer bedeutet eine gerade Zahl eine stabile Version und eine ungerade, das hinzugekommene Teilkomponenten noch getestet werden.
sux-l zum Wechseln zu root mit nötigen Umgebungsvariablen in X
nach /usr/src/ entpacken (tar xjvf datei.gz)
ln -s /usr/src linux-2.4.24 linux link erzeugen
cd /usr/src/linux
Zur Auswahl der Kernelmodule nimmt man make xconfig(dialog-Grafik) oder make menuconfig(dialog-Text) oder make config(text), wobei xconfig bequemer zu benutzen ist.
Alles was man zum booten usw. braucht, als Kernel oder Modul, wird jetzt eingetragen:
z.B. loadable, Prozessor, block device(lspci), FileSystem(reiserfs, MSDOS, NFS, loopback Device, usw.), Network Device + Options, character support, General setup (elf binaries, apm, aspi) save + exit
.config
make dep
make bzImage
make modules
make modules installation
cp /usr/src/linux arch/i386/boot/bzImage /boot
vi /boot/grub/menulist, bzw. lilo einstellen
Reboot
Das dauert eine Weile.
Beim 2.6er-Kernel heißt es
make config, make, make modules install
Seitenanfang oder Hauptseite
benötigt gunzip, gzip, bzip, bzip2, tar, configure, make, weitere Programme und devel-libraries je Anforderung des Programms
Quellcode(tar-Archiv, ) besorgen, auspacken, Readme lesen
| cd /usr/src | |
| bzcat Archivname.tar.bz2 | tar -xvf - | Auspacken eines bz2-gepackten Archivs, "Leerzeichen -" am Ende ist notwendig |
| tar -xvzf Datei.tar | Auspacken eines tar-Archivs,x=extract, v=verbose-Anzeige, z=zip oder gzip(*.bz), f=file=Datei, j=entpacken von bz2-Archiven(bzcat ist damit nicht notwendig) |
| cd | ins erzeugte Verzeichnis |
| ./configure | makefile erzeugen, ev. Nachbearbeiten(Textdatei, Pfade nachbearbeiten, etc.), Erfolg wird mit "Creating Makefile" quittiert |
| make | Programm(e) erzeugen + damit makefile kompilieren |
| make install | Programme + man-pages installieren, in Verzeichnisse schieben |
| ln -s /Pfad/datei linkname | link erzeugen, um ihn danach auf die X-Oberfläche zu schieben |
www.acme.com hat viele Programme
Reihenfolge make makefile:
./configure Quelle.c(Punkt für den Pfad des makefiles)->
Präprozessor ->
Quelle.cc ->
compiler ->
Quelle.o ->
linker ->
quelle.exe
ldconfig für die shared libraries ausführen
Beispiel /etc/init.d/thttpd:
case "$1" in
start) /usr/local/thttpd
;;
stop) killall thttpd
;;
esac
Seitenanfang oder Hauptseite
shared libraries sind Programmteile, die von mehreren Programmen genutzt werden können, aber nur ein Mal in den Speicher geladen werden.
bash -> ld.so - linux-loader(z.B. ldd /bin/df), läd die für das Programm benötigten libraries, erst danach wird das eigentliche Programm von ld.so aufgerufen
/etc/ld.so.conf - Pfade der shared libraries
ldd /bin/ls - benötigte Bibliotheken einer binaryDatei ermitteln, hier ls
feststellen, ob die Bibliotheken geladen sind(für das gesamte OS nur einmal)
fehlende in den Speicher laden
Programm in den Speicher schieben, Programm starten
Suche nach Bibliotheken in:
LD_LIBRARY_PATH in diese Umgebungsvariable werden die Verzeichnispfade der libraries eingetragen
z.B. export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/etc erweitert das Suchmuster um /etc
ldconfig integriert alle Libraries die gefunden werden in die Datei, muß nach Installation von Programmen neu ausgeführt werden
/etc/ld.so.cache enthält eine binäre Liste der schon benutzten libraries
Pfade werden gesucht in:
/etc/ld.so.cache
/lib - beim booten
/usr/lib - nach dem booten
/etc/ld.so.conf
Seitenanfang oder Hauptseite
einfache Installation und Deinstallation
installierte rpm-Archieve werden in einer Datenbank erfasst
Der Name für ein rpm-Paket lautet z.B. xnc-5.0.2-x86.rpm
Quelle: www.rpmfind.net, ftp.gwdg.rpm
| rpm -qa Archivname | Liste aller installierten Pakete, auch -q --all |
| rpm -qi xdevel | Infos(Paket ohne Versionsnummer eingeben), auch --query --info |
| rpm -ql Archivname | welche anderen Pakete werden benötigt, auch --list |
| rpm -qf Datei | Dateien zu welchem Programm |
| rpm -qpR Paket | Anzeige der weiter benötigten Bibliotheken = rpm --query --require |
| rpm –i Archivname | Installation und Link auf die grafische Oberfläche, auch --install |
| rpm -e Archivname | Datei deinstallieren |
| rpm -Uhv Archivname | update |
| rpm -qd Paket | Auflisten der Dokumentationsdateien, auch --docfiles |
| rpm -q --whatrequire Datei | wird das Paket von anderen Programmen benötigt?, auch --whatrequires Funktion ist möglich |
| rpm -q --scripts Paket | less | gibt alle 4 scripts auf Standardout, sollte mit less oder cat gepiped werden |
| rpm -e Paket | Deinstallation eines Paketes, auch --uninstall |
Bibliotheken automatisch suchen:
for i in $(rpm -qpR xnc.rpm);
do test -e /lib/$i && echo $i ok || echo Fehler
test -e /usr/$i && echo $i ok || echo Fehler2
done
Debian ist stabiler, aber nicht so aktuell. Installierte Programme lassen sich besser deinstalieren.
unpack, configure, /etc/dpkg/dpkg.cfg, /var/lib/dpkg/*, /etc/apt/apt.conf, /etc/apt/sources.list, dpkg, dselect, dpkg-reconfigure, apt-get, (atic?), alien
Programmname_Versionsnummer_Architektur.dep
| /var/lib/dpkg/* | Infos über Pakete, , wird von dpkg genutzt, /available=Paketinformationen, /status=Status der Installation, /info=scripte und Prüfsummen |
| dpkg -i Paketdatei.dep | Installiert das Paket, andere Schreibweise --install, entspricht rpm -i |
| dpkg -R -i Verzeichnis | installiert alle Pakete in dem Verzeichnis |
| dpkg -p Paketname | Informationen aus der Datei /var/lib/dpkg/available, auch --print-avail |
| dpkg -r Paket | deinstalliert Paket , auch --remove |
| dpkg -P Paket | deinstalliert alle Pakete, auch --purge |
| dpkg -l Paketnamensmuster | zeigt alle installierten Paketnamen, hier alle Pakete nach dem Muster, auch --list |
| dpkg -L Paket | Anzeige aller Dateien eines Paketes, auch --listfiles |
| dpkg -reconfigure Paket | erneutes rekonfigurieren des Pakets, hat aber nur Bedeutung, wenn ein Paket ein debconf-Script enthält |
| dpkg-deb | Packen und Entpacken, wird von anderen Programmen benutzt |
| apt-get upgrade Paket | Paketbeschreibungen(/etc/apt/sources.list) |
| apt-get install Paket | Installation des Programms (in /etc/apt/apt.conf.d oder /etc/apt/apt.conf. sind die Informationen gespeichert) |
| apt-get remove Paket | Deinstallation des Programms |
| apt-get source Paket | von Quelle wird installiert , die Quellen(z.B. Internet), von denen die Programme gezogen werden müssen vorher definiert werden |
| deselect | Menü für dpkg und apt-get |
| alien –to-rpm Paket.dep | Debian zu rpm-Paket umwandeln |
| alien –to-dep Paket.rpm | rpm zu Debian-Paket umwandeln |
Die Installation besteht aus folgenden Einzelschritten:
1. Die Kontrolldateien des neuen Paketes werden entpackt.
2. Wenn eine ältere Version des selben Paketes bereits installiert war, wird das PreRemove-Script der älteren Version ausgeführt.
3. Das PreInst-Script des neuen Paketes wird ausgeführt.
4. Die Dateien des neuen Paketes werden entpackt und gleichzeitig werden die Dateien einer eventuell existierenden älteren Version gesichert, so daß im Falle eines Fehlers die Installation des neuen Paketes rückgängig gemacht werden kann.
5. Wenn eine ältere Version existierte, dann wird das PostRemove-Script der älteren Version ausgeführt.
6. Das neue Paket wird durch das Abarbeiten des PostInstall-Scripts konfiguriert.
Seitenanfang oder Hauptseite