![]()
Zusätzliche Festplatte in Linux-Rechner einbauen
Eigentlich ganz einfach...
Die Festplatte als Slave einbauen, dazu sind die entsprechenden Jumper zu setzen, wie das geht steht bestimmt auf der Festplatte selbst oder im Internet, z.B. beim Hersteller. Man sollte nie zu stolz sein das eigene Jumpergefummel kritisch zu prüfen. Am unteren Ende dieser Seite ist ein Hinweis zu dem Thema Host Protected Area.
Als Slave (oder Sklave) muß die Festplatte aber nur eingebaut werden, wenn schon eine Festplatte als Master eingebaut ist, wer einen dicken zusätzlichen Festplatten-Controler hat kann auch anders verfahren, dazu kann ich aber keine Aussage machen.
Natürlich muß die Festplatte mit Strom versorgt werden und am IDE-Bus angeschlossen sein, selbstverständlich macht man diese Arbeiten bei ausgeschaltetem Computer. Üblicherweise kommt die Master-Festplatte an das Bus-Kabelende, die Slave-Festplatte kommt an den Anschluß der zwischen den beiden Bus-Kabelenden ist. Das Bus-Kabel ist das Datenkabel.
Eine Festplatte hat nur zwei Anschlüsse, Strom und Daten. Es sollte demnach gelingen.
Wenn alles festgeschraubt und angeschlossen ist, kann der Computer gestartet werden. Im BIOS sollte alles was mit Festplattenerkennung zu tun hat auf AUTO stehen, dann dürfte es keine Probleme geben. Die BIOS-Einstellungen gehen leider nicht über SSH, da müssen wieder der Monitor und die Tastatur angeschlossen werden.
Wenn im BIOS alles richtig eingestellt ist kann der Computer richtig gestartet werden.
Sobald Linux sich meldet und der root sich angemeldet hat, kann es mit der Festplatteneinrichtung losgehen.
Das Programm fdisk macht die Partitionierung. Hier ein Beispiel:
[root@bigserv ~]# fdisk
Aufruf: fdisk [-l] [-b SSZ] [-u] Gerät
Zum Beispiel: fdisk /dev/hda (die erste IDE-Festplatte)
oder: fdisk /dev/sdc (die dritte SCSI-Festplatte)
oder: fdisk /dev/eda (die erste PS/2 ESDI-Festplatte)
oder: fdisk /dev/rd/c0d0
oder: fdisk /dev/ida/c0d0 (RAID-Festplatten)
...
So geht das also nicht, dieses fdisk möchte schon vorher wissen, wie die Festplatte heißt. Wenn es eine Masterplatte und eine Slaveplatte gibt, dann ist Master gleich /dev/hda und Slave gleich /dev/hdb das sieht so aus:
[root@bigserv ~]# fdisk /dev/hdb
Die Anzahl der Zylinder für diese Platte ist auf 9733 gesetzt.
Daran ist nichts verkehrt, aber das ist größer als 1024 und
kann
in bestimmten Konfigurationen Probleme hervorrufen mit:
1) Software, die zum Bootzeitpunkt läuft (z. B. ältere LILO-Versionen)
2) Boot- und Partitionierungssoftware anderer Betriebssysteme
(z. B. DOS FDISK, OS/2 FDISK)
Befehl (m für Hilfe):
Das ist eine echte Bildschirmausgabe, m und dann Return gibt uns eine Liste der verfügbaren Befehle:
Befehl (m für Hilfe): m
Befehl Bedeutung
a (De)Aktivieren des bootfähig-Flags
b »bsd disklabel« bearbeiten
c (De)Aktivieren des DOS Kompatibilitätsflags
d Eine Partition löschen
l Die bekannten Dateisystemtypen anzeigen
m Dieses Menü anzeigen
n Eine neue Partition anlegen
o Eine neue leere DOS Partitionstabelle anlegen
p Die Partitionstabelle anzeigen
q Ende ohne Speichern der Änderungen
s Einen neuen leeren »Sun disklabel« anlegen
t Den Dateisystemtyp einer Partition ändern
u Die Einheit für die Anzeige/Eingabe ändern
v Die Partitionstabelle überprüfen
w Die Tabelle auf die Festplatte schreiben und das Programm
beenden
x Zusätzliche Funktionen (nur für Experten)
Befehl (m für Hilfe):
Der Befehl p sieht gut aus:
Befehl (m für Hilfe): p
Platte /dev/hdb: 80.0 GByte, 80060424192 Byte
255 Köpfe, 63 Sektoren/Spuren, 9733 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes
Gerät boot. Anfang Ende Blöcke Id System
/dev/hdb1 1 4864 39070048+ 83 Linux
/dev/hdb2 4865 9733 39110242+ 83 Linux
Befehl (m für Hilfe):
Diese Platte ist schon partitioniert.
Eine neue Partition wird angelegt durch n:
Befehl (m für Hilfe): n
Befehl Aktion
e Erweiterte
p Primäre Partition (1-4)
p
Partitionsnummer (1-4): 3
Es sind keine freien Sektoren verfügbar
Befehl (m für Hilfe):
Die Platte ist voll, wenn sie leer wäre, könnte man sich da weiter hindurchhangeln.
Das Grundprinzip sollte aber klar sein, eine 80 GB Festplatte kann auch nur eine Partition haben, je nachdem was darauf gespeichert werden soll.
Das Programm fdisk wird durch q verlassen.
Die erstellten Partionen müssen noch formatiert werden, das geht mit dem Programm mkfs, hier eine Bildschirmausgabe:
[root@bigserv ~]# mkfs.ext3 /dev/hdb1
mke2fs 1.39 (29-May-2006)
/dev/hdb1 ist eingehängt; werde dort kein Dateisystem erstellen!
[root@bigserv ~]#
Weil meine Festplatte in das System eingebunden ist und nicht durch das Formatieren gelöscht werden soll, verweigert mkfs in diesem Fall die Arbeit.
ext3 ist ein Dateisystem, derzeit wohl Stand der Technik.
Hier ist ein guter Link zu diesem Thema: http://www.selflinux.org/selflinux/html/partitionieren03.html
Wenn Partitionieren und Formatieren fertig sind, dann ist die Festplatte bereit zur Aufnahme in den Verzeichnisbaum, dieser Vorgang heißt mounten. Der Befehl heißt mount. Ein Aufruf ohne Parameter ergibt diese Ausgabe:
[root@bigserv ~]# mount
/dev/hda3 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /proc/bus/usb type usbfs (rw)
none on /dev/pts type devpts (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda1 on /boot type ext2 (rw)
/dev/hdb1 on /home/birgit/backup1 type ext3 (rw)
/dev/hdb2 on /home/michael/backup2 type ext3 (rw)
[root@bigserv ~]#
Es gibt in diesem System eine Festplatte /dev/hda und eine /dev/hdb, die letztere hat zwei Partitionen die mit ext3 formatiert wurden.
Mount hat auch eine eingebaute Hilfe:
[root@bigserv ~]# mount -h
Aufruf: mount -V : Version ausgeben
mount -h : Diese Hilfe ausgeben
mount : eingehängte Dateisysteme auflisten
mount -l : dito, inklusive Volume-Label
So weit mit dem informativen Part. Als nächstes das Einhängen.
Der Befehl lautet »mount [-t fstype] irgendwas irgendwo«.
Details, die in /etc/fstab stehen, können weggelassen werden.
mount -a [-t|-O] ... : alles aus der /etc/fstab einhängen
mount gerät : Gerät an bekanntem Ort einhängen
mount verzeichnis : hier bekanntes Gerät einhängen
mount -t typ ger verz : normaler Mount-Befehl
Beachten Sie, dass man nicht wirklich ein Gerät einhängt,
sondern vielmehr
ein Dateisystem (vom gegebenen Typ), dass sich auf dem Gerät
befindet.
Man kann auch einen schon sichtbaren Verzeichnisbaum woanders
einhängen:
mount --bind altesVerz neuesVerz
oder einen Unterbaum verschieben:
mount --move altesVerz neuesVerz
Ein Gerät kann über seinen Namen, also /dev/hda1 oder /dev/cdrom,
gegeben
werden, oder über sein Label, mittels -L Label, oder über die
UUID, mit -U UUID.
Weitere Optionen: [-nfFrsvw] [-o optionen] [-p passwdfd].
Für viele weitere Details: man 8 mount.
[root@bigserv ~]#
Ein Aufruf von mount wäre z.B. so:
mount /dev/hdb1 /home/birgit/backup1
Oder so:
mount /dev/hdb2 /home/michael/backup2
Die Pfade müssen aber zu bereits angelegten Verzeichnissen führen.
Damit das Mounten schon beim Start vor sich geht, muß die /etc/fstab geändert werden.
Hier ist meine /etc/fstab:
#
# /etc/fstab: static file system information
#
# <file system> <dir> <type> <options>
<dump> <pass>
none /dev/pts devpts defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/cdrom /mnt/cd iso9660 ro,user,noauto,unhide 0 0
/dev/dvd /mnt/dvd udf ro,user,noauto,unhide 0 0
/dev/fd0 /mnt/fl vfat user,noauto 0 0
/dev/hda3 / ext3 defaults 0 1
/dev/hda1 /boot ext2 defaults 0 1
/dev/hda2 swap swap defaults 0 0
/dev/hdb1 /home/birgit/backup1 ext3 defaults 0 1
/dev/hdb2 /home/michael/backup2 ext3 defaults 0 1
Die letzten beiden Zeilen beziehen sich auf die beiden Partitionen der neu eingebauten Festplatte.
Die Partitionen werden ganz einfach dadurch verwendet, daß in den durch mount festgelegten Verzeichnissen Daten gespeichert oder gelesen werden. Diese Verzeichnisse lassen sich auch mit Samba für den Fileserver benutzen.
Nochmal als Hinweis: Es gibt unter Unix oder Linux keine Laufwerksbuchstaben.
Hier ein Ausschnitt aus meiner /var/log/messages.log, wie zu sehen ist, gibt es eine Festplatte mit UDMA 133 und eine mit UDMA 100, der gute alte Duron kann aber UDMA 133, das wollte ich mit Hilfe des Programms HUTIL von Samsung ändern. HUTIL läuft üblicherweise von einer DOS formatierten Diskette. Wenn kein Diskettenlaufwerk vorhanden ist, dann eben von CD. Das Ändern des Wertes für UDMA ging aber nicht, da war eine böse Meldung mit native size und erase all data...
Es gibt eine Ultimate Boot CD, da ist HUTIL von Samsung drauf.
less /var/log/messages.log und dann ein wenig suchen...
less ist ein Programm zum Anzeigen von Texten, mit Cursor auf- oder ab läßt sich der sichtbare Ausschnitt verschieben, zum Beenden q drücken.
Jan 7 00:07:06 bigserv Uniform Multi-Platform E-IDE driver
Revision: 7.00alpha2
Jan 7 00:07:06 bigserv ide: Assuming 33MHz system bus speed for
PIO modes; override with idebus=xx
Jan 7 00:07:06 bigserv SIS5513: IDE controller at PCI slot 0000:00:02.5
Jan 7 00:07:06 bigserv SIS5513: chipset revision 0
Jan 7 00:07:06 bigserv SIS5513: not 100% native mode: will probe
irqs later
Jan 7 00:07:06 bigserv SIS5513: SiS 962/963 MuTIOL IDE UDMA133
controller
Jan 7 00:07:06 bigserv ide0: BM-DMA at 0xff00-0xff07, BIOS
settings: hda:DMA, hdb:DMA
Jan 7 00:07:06 bigserv ide1: BM-DMA at 0xff08-0xff0f, BIOS
settings: hdc:DMA, hdd:DMA
Jan 7 00:07:06 bigserv hda: SAMSUNG SP0802N, ATA DISK drive
Jan 7 00:07:06 bigserv hdb: SAMSUNG SP0802N, ATA DISK drive
Jan 7 00:07:06 bigserv ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Jan 7 00:07:06 bigserv hdc: LG CD-ROM CRD-8521B, ATAPI CD/DVD-ROM
drive
Jan 7 00:07:06 bigserv ide1 at 0x170-0x177,0x376 on irq 15
Jan 7 00:07:06 bigserv hda: max request size: 512KiB
Jan 7 00:07:06 bigserv hda: 156368016 sectors (80060 MB) w/2048KiB
Cache, CHS=16383/255/63, UDMA(133)
Jan 7 00:07:06 bigserv hda: cache flushes supported
Jan 7 00:07:06 bigserv hda: hda1 hda2 hda3
Jan 7 00:07:06 bigserv hdb: max request size: 512KiB
Jan 7 00:07:06 bigserv hdb: Host Protected Area detected.
Jan 7 00:07:06 bigserv current capacity is 66055248 sectors (33820
MB)
Jan 7 00:07:06 bigserv native capacity is 156368016 sectors (80060
MB)
Jan 7 00:07:06 bigserv hdb: Host Protected Area disabled.
Jan 7 00:07:06 bigserv hdb: 156368016 sectors (80060 MB) w/2048KiB
Cache, CHS=16383/255/63, UDMA(100)
Jan 7 00:07:06 bigserv hdb: cache flushes supported
Jan 7 00:07:06 bigserv hdb: hdb1 hdb2
Der Jumper für limited capacity war gesteckt, ein Versehen meinerseits, Linux hat das einfach ausgebügelt und ich habe es wochenlang nicht bemerkt. Nach dem Entfernen des Jumpers war die zweite Festplatte immer noch Slave aber die Kapazität war nicht mehr begrenzt und HUTIL konnte ohne Probleme das UDMA 133 einstellen.
Ob eine Festplatte einen Jumper braucht, um als Slave zu laufen oder nicht, ist je nach Hersteller verschieden.
So sieht der Startvorgang schon besser aus:
Jan 7 02:06:49 bigserv Uniform Multi-Platform E-IDE driver
Revision: 7.00alpha2
Jan 7 02:06:49 bigserv ide: Assuming 33MHz system bus speed for
PIO modes; override with idebus=xx
Jan 7 02:06:49 bigserv SIS5513: IDE controller at PCI slot 0000:00:02.5
Jan 7 02:06:49 bigserv SIS5513: chipset revision 0
Jan 7 02:06:49 bigserv SIS5513: not 100% native mode: will probe
irqs later
Jan 7 02:06:49 bigserv SIS5513: SiS 962/963 MuTIOL IDE UDMA133
controller
Jan 7 02:06:49 bigserv ide0: BM-DMA at 0xff00-0xff07, BIOS
settings: hda:DMA, hdb:DMA
Jan 7 02:06:49 bigserv ide1: BM-DMA at 0xff08-0xff0f, BIOS
settings: hdc:DMA, hdd:DMA
Jan 7 02:06:49 bigserv hda: SAMSUNG SP0802N, ATA DISK drive
Jan 7 02:06:49 bigserv hdb: SAMSUNG SP0802N, ATA DISK drive
Jan 7 02:06:49 bigserv ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Jan 7 02:06:49 bigserv hdc: LG CD-ROM CRD-8521B, ATAPI CD/DVD-ROM
drive
Jan 7 02:06:49 bigserv ide1 at 0x170-0x177,0x376 on irq 15
Jan 7 02:06:49 bigserv hda: max request size: 512KiB
Jan 7 02:06:49 bigserv hda: 156368016 sectors (80060 MB) w/2048KiB
Cache, CHS=16383/255/63, UDMA(133)
Jan 7 02:06:49 bigserv hda: cache flushes supported
Jan 7 02:06:49 bigserv hda: hda1 hda2 hda3
Jan 7 02:06:49 bigserv hdb: max request size: 512KiB
Jan 7 02:06:49 bigserv hdb: 156368016 sectors (80060 MB) w/2048KiB
Cache, CHS=16383/255/63, UDMA(133)
Jan 7 02:06:49 bigserv hdb: cache flushes supported
Jan 7 02:06:49 bigserv hdb: hdb1 hdb2
08.01.2007