fdisk automatisiert

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
hoppla
Beiträge: 111
Registriert: 02.07.2006 16:19:40

fdisk automatisiert

Beitrag von hoppla » 12.11.2010 13:00:31

Hallo,
ich versuche fdisk in einem script automatisiert ablaufen zu lassen, es soll eine fat16 partition mit 1024MB erstellen,
auf der dann (leider) WinCE laufen soll.
Die Zielplattformen (200 Stück) sind mit 2GB jungfräulichen FlashDrives bestückt.
Alle Versuche durch das here document fdisk laufen zu lasssen sind gescheitert. Händisches Ausführen von fdiskt läuft problemlos.
Das Partitionieren läuft über ein Debian squeeze von einer CF-Card in einem USB-Adapter ab.

#! /bin/sh
fdisk /dev/sda <<ende
n
p
<enter>
+1024MB
t
6
a
1
w
ende

Mit parted geht es nicht, da mit parted vor der ersten Partition ein freier Block entsteht, den WinCE zu Booten nicht akzeptiert.
Kann jemand sagen, warum fdisk nicht im Script zuende läuft?
Fdisk bleibt hängen und kann nur durch Beenden des Prozessen bended werden.

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: fdisk automatisiert

Beitrag von gbotti » 12.11.2010 13:15:50

EDIT: Wer lesen kann ist klar im Vorteil... rendegast hat die bessere Lösung...

Hi.
in diesem Thread: http://debianforum.de/forum/search.php? ... r_id=30739
ging es um automatisierte Passworteingaben.

Ich hab das mit /usr/bin/expect versucht.
Mein Testscript sieht so aus:

Code: Alles auswählen

#!/usr/bin/expect
spawn fdisk /dev/sda
match_max 10000
expect "?ommand*"
send -- "p\r"
expect "?ommand*"
send -- "q\r"
expect eof
Wenn ich das dann aufrufe kommt das hier dabei raus.

Code: Alles auswählen

ox-replace:~# ./ex.sh
spawn fdisk /dev/sda

The number of cylinders for this disk is set to 2610.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000c6d63

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        2496    20049088+  83  Linux
/dev/sda2            2497        2610      915705    5  Extended
/dev/sda5            2497        2610      915673+  82  Linux swap / Solaris
Command (m for help): q
Vielleicht hilft dir das...
Zuletzt geändert von gbotti am 12.11.2010 13:24:25, insgesamt 1-mal geändert.
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

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

Re: fdisk automatisiert

Beitrag von rendegast » 12.11.2010 13:20:13

Eventuell mußt Du den jungfräulichen Platten erst eine Partitionstabelle verpassen:

Code: Alles auswählen

fdisk /dev/sda <<ende
o
n
p
...
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

hoppla
Beiträge: 111
Registriert: 02.07.2006 16:19:40

Re: fdisk automatisiert

Beitrag von hoppla » 13.11.2010 07:28:27

Hallo
sorry, ich vergas zu schreiben, dass ich die Variante mit dem Erstellen einer DOS-Tabelle auch schon getestet hatte.

fdisk /dev/sda <<ende
o
n
p
...

Ohne Erfolg.
Wie schon geschildert, das Problem ist nicht fdisk selbst, da ja die händische Erstellung einer Partition funktioniert, sondern das Abarbeiten der simulierten Taseneingabe mit dem here document.

Ich werde mir mal den Vorschlag von gbotti anschauen.

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

Re: fdisk automatisiert

Beitrag von rendegast » 13.11.2010 10:13:30

Code: Alles auswählen

fdisk /dev/sda <<ende
n
p
<enter>
+1024MB
...
Da fehlt die Angabe der Partitionsnummer:

Code: Alles auswählen

fdisk /dev/sda <<ende
n
p
1
<enter>
+1024MB
...
(Das "<enter>" ist im richtigen Skript eine Zeilenschaltung/Leerzeile?)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

gxyz
Beiträge: 202
Registriert: 26.07.2010 13:54:21
Lizenz eigener Beiträge: MIT Lizenz

Re: fdisk automatisiert

Beitrag von gxyz » 13.11.2010 10:33:20

hoppla hat geschrieben: ich versuche fdisk in einem script automatisiert ablaufen zu lassen, es soll eine fat16 partition mit 1024MB erstellen,
Nebenbei: viel einfacher als mit dem traditionellen "fdisk" würde das Ganze mit "sfdisk" klappen, denn da ist von vornherein vorgesehen, die Spezifikation für anzulegende Partitionen aus einer Datei zu lesen ...

Benutzeravatar
ThorstenS
Beiträge: 2875
Registriert: 24.04.2004 15:33:31

Re: fdisk automatisiert

Beitrag von ThorstenS » 13.11.2010 11:01:56

wir nutzen eine Mischung von sfdisk und fdisk, um sowas zu machen - hier ein Scriptausschnitt:

Code: Alles auswählen

82	# Partitionierung übertragen
83	sfdisk -d /dev/${SRCDSK} | sfdisk --force /dev/${DSTDSK}
84	
85	# Partitionstypen auf RAID (0xfd) ändern (neue Platte)
86	! echo "t
87	1
88	fd
89	t
90	2
91	fd
92	w" | fdisk /dev/${DSTDSK}
93	! partprobe

Antworten