at.linux-FAQ

Die Installation



Multi-Boot von Linux mit anderen Betriebssystemen?

Erste Anlaufstelle sind die entsprechenden Mini-HOWTOs. http://www2.uibk.ac.at/linuxdoc/LDP/HOWTO/HOWTO-INDEX/os.html#OSBOOT.

Bis einschließlich Version 2003-05-21 des FAQ folgte hier eine Beschreibung, wie man Linux+NT-Loader realisieren kann, wenn lilo wegen des 1024-Zylinder-Problems nicht funktioniert. Seit Version 21.3 von lilo gehört dieses Problem aber der Geschichte an.

Linux-Boot über den NT-Bootloader via liloload

Gibt es noch eine weitere (einfachere) Art, wie ich Linux und Windows NT so installieren kann, dass ich Linux mit dem Bootloader von Windows NT starten kann?

Auf http://www.croky.net/liloload/ gibt es ein Werkzeug, das sich sehr einfach in den NT-Bootloader integrieren lässt. Bootet man per Bootmenü dieses Werkzeug, so werden die Festplatten im System nach einem lilo im Bootrecord irgendeiner primären Partition durchsucht und dieser ggf. gestartet.

BEWARE: this programme only works with partitions that start on a cylinder below 1024!

Linux-Boot mit dem OS/2-Bootmanager

Im Linux-FAQ des Linux Documentation Projects findet sich ein entsprechender Eintrag: http://en.tldp.org/FAQ/Linux-FAQ/booting.html#boot-linux-from-os2s-boot.

Meldung beim Linux-Boot: /dev/Partition not cleanly unmounted

Mein Rechner beherbergt neben Linux auch noch OS/2. Seit einiger Zeit nervt bei jedem Linux-Start diese Fehlermeldung. Bei der fraglichen Partition handelt es sich um eine HPFS-formatierte OS/2-Partition, die auch in der fstab eingetragen ist.

Wenn OS/2 nicht vernünftig herunter gefahren wurde, dann meckert auch Linux. Einfach mal die HPFS-Partition mit dem OS/2-Chkdsk  mit der Option /f bearbeiten und dann wieder Linux booten.

Woher kommen eigentlich die Namen lilo und loadlin?

lilo steht für »linux loader«, loadlin für »load linux«.

Auf welche Arten kann ich meine Linux-Installation booten?

Da gibt es (zumindest mit lilo) prinzipiell vier Möglichkeiten:

lilo vom Bootsektor eines Wechselmediums
lilo im MBR
lilo im Bootsektor irgendeiner Partition
loadlin

Die erste Möglichkeit ist wohl nur zu Installationszwecken oder für Rettungsmaßnahmen relevant. Zum gewöhnlichen Booten ist diese Methode einfach etwas sehr langsam.

Die zweite Möglichkeit, lilo im MBR, wird immer dann verwendet, wenn entweder Linux das einzige Betriebssystem auf dem Rechner ist, oder aber wenn der linux loader verwendet wird, um einen Multi-Boot zwischen verschiedenen Betriebssystemen zu realisieren.

Die dritte Möglichkeit, lilo im Bootsektor irgendeiner Partition, wenn mehrere Betriebssysteme auf dem Rechner installiert sind und ein anderer Bootmanager als lilo im MBR sitzt und den Multi-Boot regelt.

Die vierte Möglichkeit, loadlin, wird verwendet, um Linux aus einem DOS-basiertem Betriebssystem heraus zu booten.

Außerdem gibt es natürlich auch alternative Bootloader - hier sei nur http://www.gnu.org/software/grub/ genannt, der wahrscheinlich alles booten kann, was es auf Intel-x86-kompatiblen an Betriebssystemen gibt, und der sehr flexibel ist.

Was für Probleme gibt es denn so mit lilo?

Der zu bootende Kernel und lilo selbst muss für das BIOS erreichbar sein. Das macht z.B Probleme, wenn nicht die vollständige Kapazität moderner Festplatten mittels BIOS angesprochen werden kann und Kernel oder lilo hinter dieser Grenze liegen. In diesem Falle ist uns auch kein Mittel dagegen bekannt, außer neu zu partitionieren oder es mit einem BIOS-Update zu probieren …

Interessanterweise sind uns bisher keinerlei Kollisionen mit anderen Bootmanagern bekannt, wenn lilo im MBR residiert. Im Bootsektor der Linux-Root-Partition hat sowieso kein anderer Bootmanager etwas verloren, also hat man hier immer einen freien Bootsektor zur Verfügung, wenn lilo nicht im MBR installiert werden soll.

lilo-Fehlermeldungen

Mein Rechner bleibt beim Booten stehen. Er hat gerade noch ein Stück des Wortes lilo auf dem Bildschirm zustande gebracht. Wo liegt das Problem?

Die vier Buchstaben lilo werden jeweils für einen erfolgreich absolvierten Bootabschnitt lilos ausgegeben. An ihnen kann man ablesen, wo der Bootvorgang hängen geblieben ist:

[nichts]

Kein Teil von lilo wurde geladen. Entweder ist lilo gar nicht installiert, oder aber nicht in die Partition, von der gestartet wird.

L [Fehlernummern …]

Die Datei /boot/boot.b konnte nicht geladen werden. Dies deutet auf einen physikalischen Plattenfehler oder eine fehlerhafte Plattengeometrie.

LI

Die Datei /boot/boot.b konnte zwar geladen aber nicht gestartet werden. Die Ursache ist für gewöhnlich eine fehlerhafte Plattengeometrie, oder /boot/boot.b wurde verschoben, ohne lilo neu zu installieren.

LIL

Die Datei /boot/boot.b konnte zwar gestartet werden, aber die Daten aus der Map-Datei konnten nicht geladen werden. Dies deutet auf einen physikalischen Plattenfehler oder eine fehlerhafte Plattengeometrie.

LIL?

Die Datei /boot/boot.b wurde an die falsche Speicheradresse geladen. Die Ursache ist für gewöhnlich eine fehlerhafte Plattengeometrie, oder die /boot/boot.b wurde verschoben, ohne lilo neu zu installieren.

LIL-

Die Daten in der Map-Datei sind ungültig. Die Ursache ist für gewöhnlich eine fehlerhafte Plattengeometrie, oder die /boot/boot.b wurde verschoben, ohne lilo neu zu installieren.

LIL-

Alle Teile von lilo wurden erfolgreich geladen.

Die häufigsten Gründe für Geometriefehler sind nicht physikalische Defekte oder fehlerhafte Partitionstabellen, sondern Fehler bei der Installation von lilo, vor allem die Installation in einen Bereich, den das BIOS nicht erreichen kann. Erreichbar sein müssen

der Sektor, in den lilo selbst installiert ist
der Kernel, der gestartet werden soll
der Inhalt des Verzeichnisses /boot/

Virenscanner schlägt Alarm wegen dem »Bootsektor-Virus«lilo

Meine Antivirus-Software, die ich von einem anderen Betriebssystem aus einsetze, meldet bei einem Scan des Bootsektors, in dem sich lilo befindet, ein Bootsektor-Virus habe sich dort eingenistet. Was ist los?

Viele ältere Virenscanner halten lilo fälschlicherweise für einen Bootsektor-Virus. Bei Virenkillern sollte man sowieso immer die aktuellen Versionen verwenden. Gute aktuelle Virenscanner erkennen lilo als Bootmanager und schlagen keinen Alarm. Erscheint die Alarm-Meldung trotz Verwendung aktueller Antiviren-Software, sollte man mit einem echten Bootsektor-Virus rechnen.

Wie werde ich lilo wieder los?

»How to Remove Linux and Install Windows on Your Computer«: http://support.microsoft.com/default.aspx?scid=kb;en-us;Q247804

Eine Möglichkeit besteht in dem Befehl lilo -u. Wenn lilo im MBR residiert, kann man selbigen auch mit dem DOS-Befehl fdisk /mbr neu schreiben - Bootmanager wie Lilo werden dabei entfernt.

Wo bekomme ich Informationen über (UNIX-)Dateisysteme?

Filesystems-HOWTO

http://www2.uibk.ac.at/linuxdoc/LDP/HOWTO/Filesystems-HOWTO.html

Die Artikel von Kristian Köhntopp

http://kris.koehntopp.de/artikel/

Advanced filesystem implementor's guide

http://www-128.ibm.com/developerworks/library/l-fs.html

Journaling File Systems

http://www.linux-mag.com/2002-10/jfs_01.html

Linux Quota mini-HOWTO

http://www.linuxhaven.de/dlhp/HOWTO/mini/DE-Quota-HOWTO.html

Filesystem Hierarchy Standard

http://www.pathname.com/fhs/

NTFS FAQ

http://linux-ntfs.sourceforge.net/info/ntfs-de.html
http://www.jankratochvil.net/project/captive/

Defragmentierung?

Beim Booten zeigt Linux mir an, dass meine Linux-Partitionen fragmentiert sind. Ich verwende ext2fs als Dateisystem. Wäre eine Defragmentierung da nicht angebracht, um die Systemleistung nicht absinken zu lassen? Wo bekomme ich ein Defragmentierungswerkzeug für Linux?

Dieser Frage hat sich Kristian Köhntopp in de.comp.os.unix.linux.misc sehr ausführlich angenommen: <7ec89m$isu@valiant.koehntopp.de>.

Abseits aller Dogmatik bietet SGIs XFS ein Defragmentierungsprogramm: http://oss.sgi.com/projects/xfs/manpages/xfs_fsr.html

Wie werde ich den Coredump in /proc/kcore wieder los?

/proc/kcore ist ja offensichtlich ein Core dump. Wie werde ich den wieder los? rm funktioniert nicht, und das File ist immerhin so groß wie mein Hauptspeicher!

/proc ist ein virtuelles Filesystem, und belegt keinen Platz auf der Platte (außer vielleicht dem Inode für das Directory, in das gemountet wird), da es sich dabei um ein Abbild des Arbeitsspeichers handelt.

Du wirst das /proc-Verzeichnis los, indem Du im Kernel den »/proc filesystem support«, neu kompilierst und dann diesen Kernel bootest. Allerdings ist das nicht sonderlich ratsam - viele Programme verlassen sich darauf, dort Informationen vor zu finden.

Wie kann ich den Inhalt einer Partition verlustfrei auf eine andere Partition kopieren - mit allen Attributen, Gerätedateien und Symlinks?

Am einfachsten geht es wahrscheinlich mit

cp -ax /source/. /destination/

Zur Vorsicht geht man dazu in den »Single User Mode«.

Man kann aber auch tar oder cpio verwenden.

cd /src/dir
tar c . | tar -C /dst/dir -x

Hard Disk Upgrade Mini HOWTO: http://www.storm.ca/~yan/Hard-Disk-Upgrade.html
GNU parted, zum Umgrößern von Partitionen: http://www.gnu.org/software/parted/

Wie funktioniert SETUID bei Shell-Skripten?

Aus Sicherheitsgründen gar nicht. Ein Posting von Gerfried Fuchs: <slrn7nfls2.kos.alfie@skater.htu.tuwien.ac.at>. Und Kristian Köhntopp beschreibt das in <b3fgco$njb$1@valiant.koehntopp.de> so:

Ein compiliertes C-Programm ist Maschinensprache und kann direkt
ausgefuehrt werden.

Ein Shellscript braucht einen Interpreter. Der wird geladen und muss
die Scriptdatei dann ein zweites Mal oeffnen, um sie einzulesen und
zu interpretieren. Zwischen dem ersten Aufruf (Kernel stell fest, es
ist ein Shellscript, privilegiert und startet eine Shell) und dem
zweiten Aufruf (die privilegierte Shell liest das Script) kann man
das Script unter umstaenden austauschen.

Bei C-Programmen entfaellt dieses zweimalige Lesen und daher
gibt es _diese_ Luecke nicht.

Ich bekomme keinen Zugriff auf meine Datei, obwohl die Rechte für meine Gruppe gesetzt sind.

Ein Posting von Gerfried Fuchs: <slrn7pas7n.116.alfie@skater.htu.tuwien.ac.at>

> Was mach ich falsch??
>
> /etc/group:
> modem::43:bernhard
>
> bernhard> ls -l xx
> ----r-----   1 bernhard modem       134 Jul 15 11:16 xx
>
> bernhard> cat xx
> cat: xx: Permission denied

Du bist user "bernhard", oder? Und warum wunderst Du Dich, daß Du als
"bernhard" mit "---" für "bernhard" nicht auf das File zugreifen darfst?

Ja, die Gruppe hat Leserechte - doch das spielt für den user "bernhard"
keine Rolle, für den gibt es keine Rechte. Und deswegen werden die 3. 3
Rechte auch mit "others" bezeichnet und nicht mit (fälschlicherweise doch
immer wieder) "world"! Weil es eben alle anderen betrifft, und nicht alle.

Ich kann meine Windows-Partition mounten, aber nur root kann darauf schreiben.

Wie kann ich auch anderen Benutzern Schreibrechte geben?

Diese Frage betrifft das Dateisystem (fat, ntfs, smbfs) unabhängig davon ob es sich um einen Festplattenpartition, eine Diskette oder einen USB-Memory-Stick handelt. man mount beschreibt unter »Mount options for fat« drei Lösungen.

Unabhängig davon stellt sich die Frage, wie der Benutzer ohne Mithilfe von root das betreffende Dateisystem mounten kann. Siehe dazu die nächste Antwort.

Wie kann ich als normaler Benutzer ein Dateisystem mounten?

Das Zielverzeichnis muß bei users und user dem mountenden Benutzer gehören.

chown benutzer:gruppe /ver/zeichnis

Ein gesetztes SETUID-Bit sieht so aus:

ls -l `which mount` `which smbmnt`
-rwsr-xr-x    1 root     root        68508 Feb 25  2003 /bin/mount*
-rwsr-sr-x    1 root     root       491128 Apr  6  2003 /usr/bin/smbmnt*
   ^            ^^^^

Setzten kann das root mit

chmod +s `which mount` `which smbmnt`

Beispiele für Einträge in /etc/fstab:

/dev/sda1 /mnt/usb    vfat  noauto,user,uid=500,gid=100,umask=2 0 0
/dev/fd0  /mnt/floppy auto  noauto,user,umask=0                 0 0

Siehe auch http://www.pl-forum.de/work/newbie/mount.html.

Eine sehr gute Alternative zu all dem ist ein Auto-Mounter wie autofs. Dieser mountet das Dateisystem automatisch, sobald man auf das Verzeichnis zugreift (also nicht wenn der Datenträger eingelegt wird, sondern beim ersten ls -l).

Wie kann ich Memory-Sticks bereits beim Einstecken mounten lassen?

http://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/sysadmin-guide/ch-devlabel.html

Ich habe das root-Passwort für meinen Rechner vergessen. Und nun?

Muss ich alles neu installlieren?

Nein. Das root-Passwort steht in der Textdatei /etc/shadow (bzw. /etc/passwd) und lässt sich mit einem Editor recht einfach entfernen.

Bei der umständliche Lösung bootet man mit einer Rescue-CD oder ähnlichem (etwa Knoppix), findet die /-Partition seiner Installation, mountet sie mit Schreibrechten (je nach Intelligenz des Rettungssystem geschieht das automatisch), und bearbeitet den Eintrag für root in der Passwortdatei. Das verschlüsselte Passwort steht zwischen dem ersten und zweiten Doppelpunkt; dieses Feld einfach löschen. Das sieht dann in etwa so aus:

root::12473:0:99999:7:::

Bei den meisten Systemen kann man aber recht einfach ohne Eingabe eines Passwortes in eine nackte Shell booten. Dazu hängt man am Prompt von lilo oder grub folgende Option an die Kernelzeile dran: init=/bin/bash

Unter grub kann man mit der Taste »e« einen Menüpunkt verändern, anschließend wird mit »b« gebootet. Unter lilo drückt man am besten die TAB-Taste um eine Liste der Menüpunkte zu bekommen. Eine vollständige Kernelzeile kann so aussehen:

linux init=/bin/bash

Auf alle Fälle sollte der Kernel booten und die Shell starten. Dort gibt man folgendes ein:

mount -o remount,rw /
passwd
mount -o remount,ro /

Und abschließend ein Strg-d (Ctrl-d) zum Beenden der Shell.

Wie mache ich einen Downgrade zurück auf stable?

http://linuxmafia.com/faq/Debian/downgrade.html
http://www.allyourbase-arebelongto.us/?q=node/35