Festplattegroesse falsch

affefreebsd

Well-Known Member
Hi Leute,
da FreeBSD auf meinem Server ueberhaupt nicht booten will habe ich mir mal openbsd vorgenommen. War sowieso noch etwas was ich machen wollte. System laeuft bereits bestens auf einer SSD nur die Datenplatte will er jetzt nicht richtig erkennen. Es handelt sich um eine WD100EFAX 68 NAS mit 10TB.

Was habe ich gemacht:

lackbox# fdisk -i sd1
Do you wish to write new MBR and partition table? [n] y
Writing MBR at offset 0.
lackbox# disklabel -E sd1
Label editor (enter '?' for help at any prompt)
sd1> p m
OpenBSD area: 64-4294961685; size: 2097149.2M; free: 0.0M //??????????????????????????????????????????
# size offset fstype [fsize bsize cpg]
a: 2097149.2M 64 4.2BSD 8192 65536 52270
c: 9537536.0M 0 unused
sd1> d a
sd1*> a d
offset: [64]
size: [4294961621]
FS type: [4.2BSD]
sd1*> quit


newfs zeigt auch nur 2TB an. WARUM?
Danke fuer jede Hilfe -
Gruss
ape


PS: deb10 findet die ohne Probleme :(
 
lackbox# newfs /dev/sd1c
newfs: /dev/sd1c: block device
blackbox# newfs /dev/sd1d
newfs: /dev/sd1d: block device
blackbox# disklabel sd1
# /dev/rsd1c:
type: SCSI
disk: SCSI disk
label: WDC WD100EFAX-68
duid: d7224a59e2efc204
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 1215865
total sectors: 19532873728
boundstart: 64
boundend: 4294961685
drivedata: 0

16 partitions:
# size offset fstype [fsize bsize cpg]
c: 19532873728 0 unused
d: 4294961600 64 4.2BSD 8192 65536 1


UND jetzt wird noch geiler da newfs auf streikt !?!?!
lackbox# newfs /dev/sd1d
newfs: /dev/sd1d: block device //???????????????????????????????????
 
Mal ins blaue geraten, es gibt Controller die nur mit Festplatten bis zu einer bestimmten Kapazität einwandfrei funktionieren. Es gibt Fälle bei denen der Hersteller ein Firmware update ausrollt, das solche Probleme adressiert, hängt aber vom Hersteller und den technischen Möglichkeiten ab.
 
Also für newfs brauchst du das r-Device: newfs /dev/rsd1d
Mittels disklabel kannst Du die Boundaries setzen. Ich empfehle Dir die OpenBSD FAQ!
 
Mal ins blaue geraten, es gibt Controller die nur mit Festplatten bis zu einer bestimmten Kapazität einwandfrei funktionieren. Es gibt Fälle bei denen der Hersteller ein Firmware update ausrollt, das solche Probleme adressiert, hängt aber vom Hersteller und den technischen Möglichkeiten ab.
Debian erkennt die Festplatte korrekt :-(
 
Krass, ich schaffe es nicht mal bei WD ein Datenblatt der Festplatte zu bekommen wo soetwas drin steht.... verrückte Welt. Baue sie mal aus und schau nach. Denke, dass das mit fdisk gehen sollte...
 
Das hat mit der Festplatte selbst nichts zu tun (bzw. nur mit deren Größe). In deinem Fall müsste die Sektorgröße wahrscheinlich sogar 8192 sein. Bei deinem fdisk -"Ausdruck" vom Anfang steht es auch so. Warum dass nicht übernommen wurde .....
Ich würde aber auch zu gpt tendieren.
 
Falls Du die smartmontools hast, poste doch mal die Ausgabe von smartctl der betreffenden Festplatte. Vor allem die "Information Section".
 
Was heisst das genau? Ich brauche da doch eig. keine boottable?

Nein, aber eine Partitionstabelle?

Und die hast du mit:

Code:
fdisk -i sd1
Do you wish to write new MBR and partition table? [n] y
Writing MBR at offset 0.

halt als klassische mbr tabelle angelegt.

Zumindest lt. meinem Halbwissen und Wikipedia

https://de.wikipedia.org/wiki/GUID_Partition_Table
https://de.wikipedia.org/wiki/Master_Boot_Record

sind die beiden nicht nur zum Booten sondern definieren vor allem auch das Partitionslayout.

Zumindest meine 4TB HDD hat OpenBSD so direkt richtig eingenordet. Ob die aber schon größere Sektoren braucht ...
 
Das ist alles kompliziert und ich hoffe, dass @Yamagi vielleicht mit liest und alles mal wieder einfach erklären kann.

Zunächst mal dies: MBR ist alt.
So machte man das früher und konnte dann maximal vier Partitionen und eine von denen durfte erweitert sein und wieder mehrere Partitionen enthalten, genaues steht sicher im Wiki-Artikel.
MBR ist jedenfalls sehr beschränkt.
Deshalb hat man GPT erfunden.
GPT ist ein Partitions-schema und es kann wesentlich mehr Partitionen, als MBR konnte und braucht dafür deutlich mehr Platz am Anfang einer Festplatte. Es beinhaltet einen MBR, der PMBR genannt wird und aus Gründen der Kompatibilität mitgeführt wird.
GPT legt aber auch am Ende einer Platte eine Sicherungskopie hin. Alleine schon deshalb hat GPT tatsächlich Vorteile, selbst dann, wenn man die neuen Kapazitäten nicht braucht.

Ich müsste nun nachlesen, welchen Unterschied das tatsächlich bei großen Platten ausmacht.
Aber mit Booten hat das zunächst erst mal nichts zu tun.

Ich glaube auch nicht, dass ein Betriebssystem deshalb plötzlich eine Platte mit richtiger Größe erkennt, weil sie mit dem GPT-Schema partitioniert wird. Aber tatsächlich kann MBR nur kleine Größen und Anzahl an Partitionen, während GPT deutlich mehr kann.
Dazu muss aber die Platte zunächst auch richtig erkannt werden? Denke ich.

GNU/Linux kann jedenfalls auch Platten komplett.
ZFS macht das auch mit.
Auch vollkommen ohne jede Partition kann man da einem Device ein Dateisystem geben und es nutzen.
Das ist ein weiteres Argument dafür, dass ich glaube, dass erst die HW richtig erkannt sein muss, bevor man sie nutzen kann, indem man Dateisysteme und Partitionen darauf verteilt.
Das bedeutet nun mal leider auch, dass es dann keine Rolle spielen würde, ob MBR oder GPT, aber nochmal: ich habe das nun nicht nachgelesen, wo die Grenzen von MBR liegen und hatte noch nie eine 10TB Platte.
 
Wie bereits beschrieben liegt die 2TB-Beschränkung am MBR. Mit einer Sektorgröße von 512 Byte kann eben nicht mehr Platz addressiert werden.
Um das nun zu umgehen, könntest du die Sektorgröße ändern, hat dann aber eben auch den Nachteil, dass bei vielen kleineren Dateien unnötig viel Platz verbraucht wird.
Sinnvoller wäre es wirklich, einfach GPT zu verwenden.
 
Das ist alles kompliziert und ich hoffe, dass @Yamagi vielleicht mit liest und alles mal wieder einfach erklären kann.

Meine Erfahrung mit OpenBSD ist nachezu null. Aber @pit234a, @kaputtnik und einige andere oben sagen es im Prinzip schon: MBR-Partitionstabellen wurden irgendwann in der ersten Hälfte der 1980er eingeführt und dürften in etwa so alt wie ich sein. Und ich fühle mich gerade sehr alt... ;) Sie haben eine maximale Länge von 2^32=4294967296 Sektoren. Das sind bei 512 Byte Sektoren also 2199023255552 Byte oder genau 2 Terabyte. Möchte man längere Partitionen, kann man einfach die logische Blocksize hochdrehen. Das ist kein Problem, die logische Blocksize kann beliebig anders als die physische Blocksize der zugrundeliegenden Festplatte sein. Aus Performancegründen sollte sie aber 1) Ein vielfaches der physischen Blocksize sein und 2) nicht kleiner als physische Blocksize sein.

Praktisch alle in den letzten 10 Jahren gebaute Festplatten sind nun sogenannte Advanced Format Festplatten. Sie haben eine Blocksize von 4096 Byte, emulieren aber im Konsumerbereich nach außen 512 Byte Sektoren um WIndows bis einschließlich 8.0 zufriedenzustellen und in alten BIOS-Systemen bootbar zu sein. Festplatten ohne Emulation, also mit nach außen sichtbaren 4096 Byte Sektoren gibt es nach wie vor nur im professionellen Bereich und die will man schon aus Lautstärkegründen nicht im Wohnraum stehen haben. Um aus solchen Festplatten gute Performance herauszubekommen, sollte man die Partitionen auf ein Vielfaches von 4096 Byte ausrichten und ihre Länge sollte auch eine Länge eines Vielfachen von 4096 Byte haben. Denn: Liegt ein Dateisystemblock nicht exakt auf einem physischen Block, muss die Firmware der Platte jeweils 2 physische Blöcke lesen, zusammensetzen, zerschneiden und entsprechend zurückgeben oder auf der Platte ändern. Das ist logischerweise viel langsamer als wenn einfach ein Block gelesen werden kann.

Damit das funktioniert, müssen natürlich auch die Dateisystemblöcke groß genug sein. Bei UFS / FFS oder wie die lokale Implementierung gerade heißt, ist das aber kein Problem. Denn es arbeitet mit sehr großen Blöcken, die in kleinere Frags zerschnitten werden. Google meint, dass aktuelle OpenBSD-Installationen genauso wie aktuelle FreeBSD-Installationen eine Fragsize von 4096 Byte und eine Blocksize von 8 * Fragsize = 32768 Byte haben.

Aber das alles nun geschrieben, sollte man wenn möglich GPT nehmen. Denn GPT kann nahezu unbegrenzt lange Partitionen, ohne Hacks wie die ekligen Erweiterten Partitionen (technisch gesehen geschachtelte MBR) bis mindestens 128 Stück davon und es ist durch zwei Partitionstabellen wesentlich robuster gegen Dummheit. Außerdem plant Intel zeitnah den BIOS-Boot abzuschaffen (ob sie das wirklich durchziehen, ist eine andere Frage; AMD würde das sicher sofort als Pluspunkt für sich verbuchen) und dann wird GPT Pflicht.
 
Hier ein Auszug aus man fdisk:
Code:
 -g      A protective MBR and a default GPT will be written to disk.  The
             default GPT will have a single OpenBSD partition containing all
             available space not allocated by a -b specification.  Only valid
             with -i.
Die Disk sollte man also mit fdisk -igy sd1 initialisieren...
Danach mittel disklabel -E sd1 die Disklabel setzen.
 
Zurück
Oben