Ansichten eines Informatikers

Ubuntu Linux auf 2-Terabyte-Platten installieren

Hadmut
15.5.2010 13:16

Problem und Lösung.

Nachdem mir gerade durch ein anwachsendes Fotoarchiv der Plattenplatz ausgegangen ist, habe ich mir zwei neue Festplatten bestellt und eingebaut. Nachdem die Festplatten so preisgünstig geworden sind und die neue Kamera bewegt werden will, hab ich gleich einen größeren Schritt getan und bin erstmals davon abgegangen, mein seit Jahren bewährtes Fibonacci-Schema beim Plattentausch (von den beiden eingebauten fliegt die kleinere raus, die andere bleibt erhalten und bildet mit der neuen, noch größeren ein raid-lvm-laufwerk, und was die größere zusätzlich hat, wird für weniger wichtige Daten wie tmp, cache, zwischenspeicher usw. verwendet, womit sich so ganz grob etwas ähnliches wie eine Fibonacci-Reihe bildete…). Jetzt also erstmals gleich zwei neue, gleich große Platten, noch dazu mit den neuen 4kb-Sektoren. Typ Western Digital WD 20EARS. Und bei der Gelegenheit auch gleich Ubuntu neu installiert, die 32 gegen die 64-Bit Version auch auf diesem Rechner ausgetauscht.

Und dann passierts: Die Ubuntu-Installer-CD (alternate) kann den Boot-Code nicht schreiben. Fehlermeldung

warn: This GPT partition label has no BIOS Boot Partition; embedding won’t be possible!.
error: embedding is not possible, but this is required when the root device is on a RAID array or LVM volume.

Der Grund ist, daß Ubuntu bei der Installation automatisch erkennt, daß die 2TB-Platten zu groß für die alten Partitionstabellen ist und verwendet automatisch die neuen GPT-Tabellen. Nur daß grub2 mit denen nicht klarkommt, weil bei denen ein Platz für die embedded-Installation fehlt. Und weil ein root-Verzeichnis auf RAID oder LVM zwingend diese embedded-Installation voraussetzt, geht’s nicht und bootet nicht.

Lösung:

Man muß leider nochmal neu partitionieren (bzw. erst lesen, wie man es richtig macht, z. B. in diesem Blog-Artikel). Mehr über die Hintergründe kann man hier und hier nachlesen).

Damit grub2 Platz für seinen Boot-Code hat, muß man also am Anfang der Platte eine zusätzliche, kleine (empfohlen wird 128 KByte, ich habe 1MB genommen, was bei einer 2TB-Platte nun wirklich nicht wehtut) Partition anlegen, die ansonsten auch nicht benutzt wird. Wichtig: Kein Raid, einfach nur eine normale, unbenutzte Partition. Natürlich auf beiden Platten, und die nachfolgenden Schritte für beide Platten ausführen, damit man bei einem Defekt der ersten auch von der zweiten booten kann.

Dann ruft man parted auf um das bios_grub flag zu setzen:

parted /dev/sda set <partition_number> bios_grub on

Danach kann man mit grub_install /dev/sda (bzw. sdb) den Boot-Code installieren und schon geht’s.

🙂

Nachtrag: Es war ein Tippfehler, Terabyte schreibt man mit einem r. Auch wenn’s nur ein Tippfehler war, wie peinlich, wie abgrundtief peinlich…

6 Kommentare (RSS-Feed)

yasar
15.5.2010 21:59
Kommentarlink

Gut zu wissen. Ich nehme immer 4 Platten auf einmal, momentan habe ich mein RAID5 aus 4x1TB (Backups, Archiv, etc) fast voll und die nächste Stufe wäre 4x2TB, die in den nächsten Wochen ansteht. Wird mir zumindest ein wenig Arbeit ersparen.


Isotopp
16.5.2010 14:51
Kommentarlink

Du hast EARS? Bitte prüfe einmal den LCC Counter (Lock Cycle Counter) Deiner Platten. Die Dinger sterben gerade wie die Fliegen weil sie sich tot powersaven. Ggf. mußt Du den Powersave mit WDIDLE.EXE abschalten (Balrog hat grad eine EARS verloren und bei mir sind zwei 1.5T EARS im Raidpack gestorben).


Hadmut
16.5.2010 15:09
Kommentarlink

Ach Du liebe Zeit. Danke für den Tipp. War vielleicht ein Fehler, die Daten unverschlüsselt draufzukopieren (aus diversen Gründen habe ich die Platten an meinem normalen Heim-PC nicht verschlüsselt.), falls man die Platten zurückgeben muß.

# smartctl -a /dev/sda | egrep '(Cycle_Count|Hours)'
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       20
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       8
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       639

# smartctl -a /dev/sdb | egrep '(Cycle_Count|Hours)'
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       21
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       9
193 Load_Cycle_Count        0x0032   200   200   000    Old_age   Always       -       629

Über 600 Lade-Zyklen nach gerade mal einem Tag ist tatsächlich zu viel. Gleich mal nachhaken.


Hadmut
16.5.2010 15:14
Kommentarlink

Ach herrje, schon wenige Minuten später sind die Zähler auf 643 und 633 angekommen. Das ist ja fürchterbar…


Björn
17.5.2010 7:47
Kommentarlink

Dieses Verhalten haben sie auch in der GreenPower _RAID_-Serie.

Laut WD-Support soll sich das Köpfe parken nicht auf die Lebensdauer auswirken. Ich hab das mal hier dokumentiert:
https://netaddict.de/howtos:wd-greenpower-fix

Ich bin da skeptisch, wohl zurecht.


mike
17.5.2010 17:49
Kommentarlink

Moin
bin auf dem Gebiet nicht sonderlich bewandert … aber da ich auch ne EARS hab habsch mal nen Blick geworfen … bei 1070h Laufzeit und 21 Power Cycles komm ich auf 390 Load Cycles. Klingt irgendwie weniger erschreckend oder lieg ich da falsch?