ubuntuusers.de

GPT EFI (GUID Partition Table) auf i386 PC booten

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

neopax

Anmeldungsdatum:
18. Juni 2008

Beiträge: Zähle...

Hallo,

da die gute alte DOS-Partitionstabelle keine Festplatten/Raid-Arrays jenseits der 4TB-Grenze adressieren kann,
benötige ich (in naher Zukunft) eine Lösung um dies zu bewerkstelligen.

Als Alternative möchte ich die GUID Partition Table einsetzen.
Hierzu stellen sich mir allerdings noch zwei Fragen:

1. Kann GRUB mit den GPT Partitonstabellen umgehen und wie wird dieser dann (Manuel) installiert?
2. Gibt es kommandozeilenbasierte benutzerfreundlichere interactive Alternativen zu parted, um
GPT Partitionstabellen zu erstellen/verwalten wie z.B.: fdisk?

ditsch Team-Icon

Avatar von ditsch

Anmeldungsdatum:
13. November 2005

Beiträge: 12007

Wohnort: Schönbrunn

neopax hat geschrieben:

1. Kann GRUB mit den GPT Partitonstabellen umgehen und wie wird dieser dann (Manuel) installiert?

Grub 2 scheint es zu können: http://grub.enbug.org/TestingOnEFI

neopax

(Themenstarter)

Anmeldungsdatum:
18. Juni 2008

Beiträge: Zähle...

Danke für die Antwort.

Ich habe damit trotzdem meine bedenken, da nur auf MAC getestet wurde.
Und AFAIK tickt da der Bootprozess bzw. das BIOS anders.

Aber ich werde es bei Gelegenheit testen.

quort

Anmeldungsdatum:
6. Juli 2008

Beiträge: 60

partedlib basierendes fdisk gibt es - aber wohl ohne gpt und imho schlimmer als util-linux das in den neueren versionen mit immer netteren features aufwartet :

http://www.gnu.org/software/fdisk/
http://packages.ubuntu.com/de/source/hardy/gnu-fdisk
vielleicht siehst du aber mehr als ich?
also doch parted *rofl*

gleichzeitig diskutieren die bei util-linux über eine 2t grenze - also signed und nicht 4t.
util-linux hat gpt code drin - aber nur stiefväterlich.
😉
grub-efi ist imho zur unterstützung des bios(bzw nicht-bios) bei intel-macs . ich vermute stark für pc geht das nicht weil die schlicht keine efi architektur haben.
ich behaupte daher gewagt: für gpt unterstützung für pc's ist grub2 mit grub-pc die richtige wahl.
http://packages.ubuntu.com/de/hardy/grub-pc

k.

ditsch Team-Icon

Avatar von ditsch

Anmeldungsdatum:
13. November 2005

Beiträge: 12007

Wohnort: Schönbrunn

Natürlich geht das Ganze nur mit EFI-Mainboards, welche allerdings momentan nur von Apple angeboten werden und das auch nur in Komplettrechnern.

quort

Anmeldungsdatum:
6. Juli 2008

Beiträge: 60

dos disklabels können max 2t(<4t?) fassen. bei den größen reden wir von servern.
raid macht imho bei den größen nur sw sinn sonst enstehen performance engpässe aufgrund sceduling bei den puffern und bandbreitenbegrenzung durch zwischengeschaltete busse(die angegebenen Durchsätze von HWRaidaptern werden nie praktisch erreicht).

im linux kernel sind gpt labels unterstützt um das problem zu adressieren. allerdings hinkt die unterstüzung bei den tools....
wenn das tool etwas falsch macht ist ein gutes backup viel wert. nurin dem falle ist das schon die workingcopy ....

wenn es eine tragende lösung für das problem gibt interessiert mich auch brennend wie..... womit partitioniere ich mehrere terrabyte große platten? womit partitioniere ich um? nur parted? wie trägt das?

wahrscheinlich o.t.: erfahrungen mit ext4 extents wären nebenbei auch interessant( raid->lvm->ext4), auch terrabyte. welche erfahrungen gibt es?

k.

quort

Anmeldungsdatum:
6. Juli 2008

Beiträge: 60

zum verstehen des problems und die von neopax schon eingangs erwähnte parted lösung:
http://bw11.ch/partitionen2tb.html
andere(bessere) lösungen?

neopax

(Themenstarter)

Anmeldungsdatum:
18. Juni 2008

Beiträge: 32

quort hat geschrieben:

gleichzeitig diskutieren die bei util-linux über eine 2t grenze - also signed und nicht 4t.

signed wäre doch arge Verschwendung 😉

quort hat geschrieben:

dos disklabels können max 2t(<4t?) fassen

Das ist durchaus richtig, nur bezog ich mich auf die Partitionstabelle.
Für die Speicherung von Startsektor und Anzahl der Sektoren stehen jeweils 32Bit zur Verfügung.
Ein Block enthält 512Bytes. Daraus ergibt sich: 2^32 x 512B =2,048GB
Da der Startsektor relativ zum Plattenanfang adressiert wird, kann eine zweite 2.048GB Partition
an der Startadresse FF FF FF FF beginnen.
Somit kann die DOS-Partitionstabelle nur 4TB adressieren (mit 2x2TBPartitionen)
btw: Der GPT-Schutz-MBR müsste dann zwei Partitionen enthalten.

Back too Topic:
Meine Testfestplatte habe ich auf /dev/sdb wie folgt eingerichtet:

parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart primary ext3 1 10GB
parted /dev/sdb mkpart primary linux-swap 10GB 14GB
parted /dev/sdb mkpart primary ext3 14GB 24GB
parted /dev/sdb mkpart primary ext3 24GB 34GB
parted /dev/sdb mkpart primary ext3 34GB 44GB

mkfs.ext3 -m 5 -L root /dev/sdb1
mkswap -L swap /dev/sdb2
mkfs.ext3 -m 5 -L var /dev/sdb3
mkfs.ext3 -m 5 -L tmp /dev/sdb4
mkfs.ext3 -m 5 -L home /dev/sdb5

parted /dev/sdb toggle 1 boot

mkdir -m 0755 /target
mount /dev/sdb1 /target

mkdir -m 0755 /target/var
mkdir -m 1755 /target/tmp
mkdir -m 0755 /target/home
mkdir -m 0555 /target/proc
mkdir -m 0755 /target/dev
mkdir -m 0755 /target/sys

mount /dev/sdb3 /target/var
mount /dev/sdb4 /target/tmp
mount /dev/sdb5 /target/home

rsync -a --exclude=/dev --exclude=/sys --exclude=/proc --exclude=/target / /target

echo "copyhost" > /target/etc/hostname
echo "proc            /proc           proc    defaults        0       0"             > /target/etc/fstab
echo "/dev/sdb1       /               ext3    defaults,errors=remount-ro 0       1" >> /target/etc/fstab
echo "/dev/sdb2       none            swap    sw              0       0"            >> /target/etc/fstab
echo "/dev/sdb3       /var            ext3    defaults        0       0"            >> /target/etc/fstab
echo "/dev/sdb4       /tmp            ext3    defaults        0       0"            >> /target/etc/fstab
echo "/dev/sdb5       /home           ext3    defaults        0       0"            >> /target/etc/fstab
echo "/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec 0       0" >> /target/etc/fstab


Mit dem Grub aus /dev/sda startet diese Partitionierung einwandfrei, wenn ich aber mit

grub-install /dev/sdb


GRUB auf /dev/sdb installieren möchte, bekomme ich die Fehlermeldung:
/dev/sdb does not have any corresponding BIOS drive.
Auch

dd if=/usr/lib/grub/i386-pc/stage1 of=/dev/sdb bs=1 count=446


brachte mir nicht den erwünschten (Teil)Erfolg.
Ich werde wohle erst einmal Prüfen, ob ich mit dem Grub chainloader
überhaupt an meine zweite Festplatte rankomme.

Soweit bis jetzt.

PS.: Grub2 wirft ein segmentation-fault
PPS.: Grub-EFI benötigt eine Grub Partition (noch keine Ahnung, was das sein soll 😉 )

quort

Anmeldungsdatum:
6. Juli 2008

Beiträge: 60

kann eine zweite 2.048GB Partition an der Startadresse FF FF FF FF beginnen.

sync ack. *g*
das grub nicht tut wundert eigentlich nicht.

Mit dem Grub aus /dev/sda startet diese Partitionierung einwandfrei, wenn ich aber mit
Code:

grub-install /dev/sdb

GRUB auf /dev/sdb installieren möchte, bekomme ich die Fehlermeldung:
/dev/sdb does not have any corresponding BIOS drive.

bakanntes grub-"feature". von sda geht grub über df und mtab, für sdb(nicht / in mtab) nicht. → devicemap per hand anpassen und nochmal drüberlaufen lassen. dann ist grub normalerweise von dem feature befreit.

Grub-EFI ist von ditsch bestätigt *nur* MAC. Ein PC-BIOS kann damit nichts anfangen(und schon gar nichts starten).

Natürlich geht das Ganze nur mit EFI-Mainboards, welche allerdings momentan nur von Apple angeboten werden und das auch nur in Komplettrechnern.

Segmentationfault: cool! zeig mal was du da hast!
k.

neopax

(Themenstarter)

Anmeldungsdatum:
18. Juni 2008

Beiträge: 32

Danke quort, ich hatte tatsächlich das Mapping vergessen.

#[... siehe vorheriger Post]
if [ `grep "(hd1)   /dev/sdb" /boot/grub/device.map` ]; then echo echo "(hd1)   /dev/sdb" >> /boot/grub/device.map; fi

grub-install --no-floppy --root-directory=/target /dev/sdb

cat << EOT >> /target/boot/grub/menu.lst
title           Ubuntu Test sda
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.24-17-generic root=/dev/sda1 ro
initrd          /boot/initrd.img-2.6.24-17-generic
quiet

title           Ubuntu Test sdb
root            (hd1,0)
kernel          /boot/vmlinuz-2.6.24-17-generic root=/dev/sdb1 ro
initrd          /boot/initrd.img-2.6.24-17-generic
quiet
EOT

cat << EOT | fdisk /dev/sdb
a
1
w
EOT

PC ausgeschaltet, SATA-Plattte 1 (/dev/sda) abgesteckt und wieder eingeschaltet:
–> Kernel startet (Ubuntu Test sda)
Da natürlich /dev/sdb nun auf /dev/sda rutscht funktionieren natürlich die /dev/sdb-fstab Einträge nicht mehr.
In dem Fall sollte man halt doch bei den UUID's bleiben. Aber für ein Proof of Concept ist mir
das erstmal ausreichend.
Somit: Teil 1 SOLVED

Edit:
@quort: Der Segfault tritt wie folgt auf:
/dev/sdb mit /dev/sda GRUB starten

aptitude install grub2


- Die debconf Frage nach chainloading mit Nein beantworten

grub-install /dev/sdb


Ergbnis: Segmentation fault

@all:
Danke an alle, die sich mit meinem Problem befasst haben.
Das Problem lässt sich mit GRUB 0.97 lösen.
Edit: gfdisk scheint mit GPT Klarzukommen. Unklar ist mir nur, wie man damit ein GPT-Label anlegt... aber dazu gibts ja parted 😉 *mooo*

Antworten |