sterowanie fdiskiem, instalator, ntfs

Krzysiek Taraszka dzimi w pld.org.pl
Wto, 22 Kwi 2003, 14:07:09 CEST


Witam,

mam małe pytano odnośnie programu fdisk.
buduje coś do pełnej automatyzacji zarządzania dyskami i mam mały problem. 
Natrafiłem na coś z czym parted sobie nie radzi.
Jak wiadomo z zeczy "standardowych" parted potrafi:
resize
rm
mkpart
mkpartfs

i mozna to wykozystac w trybie wsadowym nie wymagajacym interacji ze strony 
urzytkownika, powiem wprost - jest to wymazone rozwiazanie do wszelkiego 
rodzaju automagicznych instalatorow, przykład

parted -s $DEVICE rm $ID

gdzie DEVICE=/dev/hda i ID=1;
czyli zostanie usnieta partycja nr 1 na dysku /dev/hda.

to na tyle parteda :)
Kozystam z parteda do robienia resize na partycjach i natrafilem na pierwsze 
problemy, parted niestety nie umie dotad robic takich zeczy na NTFSie 
(planowane dodanie do parteda po "wyczyszczeniu" libntfs)
Tak wiec postanowilem samemu powalczyc i trafilem na 
http://linux-ntfs.sourceforge.net oraz 
http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html

i teraz problem, bo .. po wykonaniu:

ntfsresize -s1000M /dev/hdc1
(czyli zmniejszenie partycji do rozmiaru 1Gb)

tablica partycji zostaje taka sama (i tak ma byc do czasu ..)
Aby poprawic rozmiar nalezy wykasowac fdiskiem partycjie:

Command (m for help): d
Partition number (1-4): 1

stworzyc nową z rozmiarem 1Gb:

Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2480, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-2480, default 2480): +1000M

oraz zmienic typ na NTFS

Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 7
Changed system type of partition 1 to 7 (HPFS/NTFS)

wszystko by było ladne, gdyby calość mogła sie odbyc bez interakcji z 
urzytkownikiem.
chodzi o to ze po podaniu np bashowej funcji parametrow $BEGIN, $SIZE oraz 
$DEVICE
robilo cos takiego:

ntfsresize -s$SIZE $DEVICE

a nastepnie w/w kroki z fdiskiem, uwzgledniajac zmienna $BEGIN jako first 
cilinder oraz $SIZE jako 
Last cylinder or +size or +sizeM or +sizeK (1-2480, default 2480): +$(SIZE)M

myslalem aby cos pokombinowac z:

echo p | fdisk /dev/hda
ale nie dziala ..
any IDEA jak mozna sterowac fdiskiem bez interacji ze strony urzytkownika ?
(zakładają ze skrypt jest idealny, wie co robi i nieczego nie zepsuje :)))

Pozdrawiam:

Krzysiek Taraszka			(dzimi w pld.org.pl)



Więcej informacji o liście dyskusyjnej pld-users-pl