Partionsgrösse exakt nach Grösse von Image definieren

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
minimike
Beiträge: 5616
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

Partionsgrösse exakt nach Grösse von Image definieren

Beitrag von minimike » 21.09.2009 08:51:39

Hi

Ich habe hier ein DD Image für XEN. Jetzt will ich auf /dev/hdc eine Partition erstellen die so groß ist das ich dieses Image mit DD übertragen kann. Die Partition soll aber nicht größer wie das Image sein. Da ich das evtl. öfter machen muss suche ich eine Vorgehensweise mit der man das ohne viel Fummellei bewerkstelligen kann.
suggestions?

kind regards Darko
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Partionsgrösse exakt nach Grösse von Image definieren

Beitrag von rendegast » 21.09.2009 11:16:56

Code: Alles auswählen

Command (m for help): p

Disk /dev/sdc: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x1a155ecf

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               2       60801   488376000    5  Extended
/dev/sdc5               2        3040    24410736    7  HPFS/NTFS
/dev/sdc6            3041       10194    57464473+  83  Linux
/dev/sdc7           10195       10437     1951866   83  Linux
/dev/sdc8           19465       34661   122069871   83  Linux
/dev/sdc9           34662       60800   209961486   83  Linux
/dev/sdc10          60801       60801        8001   ff  BBT
/dev/sdc11          10438       10693     2056288+  83  Linux
/dev/sdc12          10694       10955     2104483+  83  Linux

Partition table entries are not in disk order
/dev/sdc7 10195 10437 1951866 83 Linux .......................... cfdisk, '2000M' oder '2G': ~1906MB
...
/dev/sdc11 10438 10693 2056288+ 83 Linux .......................... fdisk, '+2000M':~ 2008MB
/dev/sdc12 10694 10955 2104483+ 83 Linux .......................... fdisk, '+2G': ~ 2055MB
1st Problem: cfdisk rechnet M/G auf der Basis 1000, fdisk auf der Basis 1024, grub ?,
aber darauf könnte ein Skript eingehen.
(auch diskpart <-> diskmgmt.msc)

2nd Problem, wichtig: Die Partitionierer legen die Partitionen an "Clustern" oder "Sektoren" fest,
bei der gezeigten Platte haben diese ~ 8MB.
Das kopierte Dateisystem müßte diese Bedingung exakt erfüllen, was wohl nicht immer Vorraussetzung ist.
Sicherer ist wohl, die Partition mit einem gewissen "padding" zu akzeptieren,
wenn gewünscht kann das Dateisystem ja 'resized' werden.





Beispiele:
Eine Partition mit cfdisk, Wunschgröße 2055M (2.055.000.000 byte) -> Größe 2056,32M

Beachte: Beim einfachen Ausrechnen mit der bash wird abgerundet!

Code: Alles auswählen

$(( $(du -b XEN-Image) /1000 /1000 ))
$(( $(du -b XEN-Image) /1024 /1024 ))
Im ungünstigen Fall könnte damit eine Partition erzeugt werden, die kleiner ist als das Image! :

Code: Alles auswählen

$ echo $(( 2056999999 /1000 /1000 ))
2056
cfdisk würde damit bei der obigen Platte eine zu kleine Partition mit 2.056.32x.xxx byte erzeugen.

Wobei auch cfdisk gelegentlich selbst abrundet:

Code: Alles auswählen

# echo $(( 3000 *1024 *1024 ))
3145728000
bzw.:
# echo $(( 3000 *1024 *1024 /1000 /1000))
3145
Erzeugt wird aber eine kleinere Partition mit 3.142.06x.xxx byte!



---------------
Aber ohne Fummelei?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten