Skocz do zawartości

Resize Partycji Ext3


perl

Rekomendowane odpowiedzi

Witam,

 

mam dysk twardy 40 GB, podzielony na 4 partycje:

- \ (glowna) - ext3 - 10 GB

- \home - ext3 - 12 GB

- swap - 1 GB

- partycja rozszerzona - ntfs (WinXP) - 16 GB

 

chcialbym zwiekszyc partycje glowna kosztem \home,

 

jakim programem moge to zrobic? macie jakies doswiadczenia z takim procesem?

 

znalazlem przepis na wykonanie tego pod Windoza w Partition Magicu 8, ale niestety nie potrafie wyłączyć dziennika z ext3 zeby w ten sposob zrobic z niego ext2 (uzywam w tym celu: tune2fs - ale nie przyjmuje mi zadnych paramerów)

 

z gory dziekuje za odpowiedzi,

Odnośnik do komentarza
Udostępnij na innych stronach

Poleceniem do zmiany rozmiaru jest resize2fs (zwiększanie i zmiejszanie rozmiaru).

 

nie wiem czy dobrze zrozumiałem man polecenia resize2fs ale polecenie odnosi sie do zmiany rozmiaru systemu plikow a nie partycji, w description resize2fs opisuja ze musze na poczatku fdiskiem sobie poszerzyc partycje,

 

ja natomiast chcialbym nie tracac danych na partycjach rozszerzyc partycje glowna kosztem /home

 

z tego co poczytalem na necie moge to zrobic w linuksie przy pomocy np. Parted (GParted - gui), tylko z tego co widze to na podmontowanych partycjach nie moge nic robic tym programem, poniewaz mam nieaktywne polecenie Resize :(

 

dla windozy znalazlem howto w ktorym opisuja ten proces przy pomocy Partition Magica tylko nalezy najpierw wylaczyc w linuksie dzienik w systemie plikow przy pomocy tune2fs:

 

 tune2fs -O ^has_journal 

 

niestety nie jestem w stanie wylaczyc tego poniewaz tune2fs zachowuje sie jakby nie przyjmowal parametrow i po wydaniu tego polecenia wyswietla caly czas skrocone info pomocnicze z mozliwymi argumentami:

[root@localhost ~]# tune2fs -O ^has_journal
tune2fs 1.36 (05-Feb-2005)
Składnia: tune2fs [-c max-licznik-montowań] [-e trakt.-błędów] [-g grupa]
       [-i odstęp[d|m|w]] [-j] [-J opcje-kroniki]
       [-l] [-s flaga-rzadkich] [-m procent-zarez.-bloków]
       [-o [^]opcje-montowania[,...]] [-r liczba-zarez.-bloków]
       [-u użytkownik] [-C licznik-montowań] [-L etykieta-wolumenu]
       [-M ostatnio-mont.-katalog] [-O [^]cecha[,...]]
       [-T czas-ost.-sprawdz.] [-U UUID] urządzenie

 

jezeli ktos wie jak to rozwiazac w liuksie albo przy pomocy Partition Magica to prosze o male howto :)

Odnośnik do komentarza
Udostępnij na innych stronach

# df -k
System plików      bl.  1K B        użyte dostępne %uż. zamont. na
/dev/hda1              6048320   5561532    179548  97% /
none                    257908         0    257908   0% /dev/shm
/dev/hda3              9274016   1090316   7712596  13% /home
/dev/hda5             21416460  20342280   1074180  99% /mnt/win_g

 

# fdisk -l /dev/hda

  Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1         765     6144831   83  Linux
/dev/hda2            2084        9729    21416495    f  W95 Ext'd (LBA)
/dev/hda3             766        1938     9422122+  83  Linux
/dev/hda4            1939        2083     1164712+  82  Linux swap
/dev/hda5            2084        9729    21416463+   7  HPFS/NTFS

 

czekam wiec na jakas recepture ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Niestety nie mogłem przetestować tego na partycjach:

/

/home

ale wykonałem "dużą" część testów na wydzielonym dysku.

 

Moja propozycja to zmiejszenie zasobu: /home do wielkosci np. 6GB, z pozostej wolnej przestrzeni (około 3 GG) stworzyc nową partycję (najprawdopodobniej /dev/hda6) z systemem plików ext3. Partycja ta umożliwi nam "przeniesienie" danych z /dev/hda3 na /dev/hd6 oraz "odpowiednią" zmianę /etc/fstab aby kolejny "boot" FC3 wykorzystał właśnie nową partycję jako /home.

Kolejnym krokiem będzie wykasowanie /dev/hda3 (czyli zyskamy jakieś 6GB), o które powiększymy /dev/hda1 (/).

 

"OPERACJA" NIE JEST BANALNA.

 

1. Boot w trybie: linux rescue.

2. Zmniejszanie rozmiaru systemu plików

UWAGA: Nie działamy (fdisk; resize2fs; e2fsck) na "zamontowanych" zasobie: /dev/hda1; /dev/hda3

# e2fsck -f /dev/hda3

# resize2fs /dev/hda3 5500M

3. Zmiejszenie wielkości partycji /dev/hda3 do 6000M:

- wykasowanie /dev/hda3

- ponowne utworzenie /dev/hda3

"punkt startowy" musi być na lokalizcji "default" /dev/hda3 (czyli w tym przypadku: 766)

"punkt końcowy" ustalony np. na +6000M

# fdisk /dev/hda

Zawsze jednak trzeba pamiętać aby:

rozmiaru partycji (/dev/hda3) >= rozmiar systemu plików

4. Uruchomienie resize2fs bez żadnych argumentów aby system plików "dopasował" się do partycji:

# resize2fs /dev/hda3

5. Test mount:

# mkdir /mnt/orghome

# mount /dev/hda3 /mnt/orghome

# ls /mnt/orghome

# umount /mnt/orghome

6. Fdisk: Utworzenie partycji najprawdopodobniej /dev/hda6:

7. Utworzenie systemu plików ext3:

# mkfs.ext3 /dev/hda6

# mkdir /mnt/testhome

# mount /dev/hda6 /mnt/testhome

8. Przeniesienie danych z /dev/hda3 na /dev/hda6: (/home).

9. Zmiana /etc/fstab (prawdopodobnie partycję z /dev/hda3 na /dev/hda6 przypisanego do /home).

UWAGA: Działamy oczywiście na /etc/fstab "znajdującym" się na /dev/hda1

10. reboot

 

Jeżeli wszystko jest w porządku możemy kontynuować:

 

1. Boot w trybie: linux rescue.

UWAGA: Nie działamy (fdisk; resize2fs; e2fsck) na "zamontowanych" zasobie: /dev/hda1; /dev/hda3

2. Fdisk: Wykasowanie /dev/hda3

3. Fdisk: Zwiejszenie wielkości partycji /dev/hda1:

- wykasowanie /dev/hda1

- ponowne utworzenie /dev/hda1

"punkt startowy" musi być na lokalizcji "default" /dev/hda1 (czyli w tym przypadku: 1)

4. Zwiększenie rozmiaru systemu plików:

# e2fsck -f /dev/hda1

# resize2fs /dev/hda1

5. reboot

 

I odpowiedzi na Twoje pytania:

wyłączenie "journal" dla systemu plików:

#tune2fs -O ^has_journal /dev/hdaX

włączenie "journal" dla systemu plików:

#tune2fs -j /dev/hdaX

 

Pozdrawiam.

 

PS.

Testowałem również "wykorzystanie" partycji rozszerzonej, ale takiego czegoś nie :):

/dev/hda2 2084 9729 21416495 f W95 Ext'd (LBA)

Mogą więc wystąpić "pewne" odstępstwa (mam nadzieję, że nie duże)

Proponowałbym jednak najpierw sprawdzić jaki wpływ może mieć ten typ partycji rozszerzonej.

 

Mam nadzieję, że coś z tego się Tobie przyda :)

Odnośnik do komentarza
Udostępnij na innych stronach

Testowałem również "wykorzystanie" partycji rozszerzonej, ale takiego czegoś nie smile.gif:

/dev/hda2 2084 9729 21416495 f W95 Ext'd (LBA)

 

hmm... wlasnie nie do konca wiem skad pojawila sie ta partycja <_<

dysk do instalacji FC przygotowalem w Partition Magicu zostawiajac wolna przestrzen niepodzielona na partycje na poczatku dysku (dopiero dzielilem na partycje w podczas instalacji FC) natomiast pod koniec dysku stworzylem partycje rozszerzona 'ntfs', mysle ze to wlasnie spowodowalo powstanie tego wpisu w parycjach

 

dzieki za male howto, jutro (a raczej dzisiaj ;) ) sprobuje sie zmierzyc z dyskiem,

Odnośnik do komentarza
Udostępnij na innych stronach

Więc niestety mamy problem z partycja rozszerzoną. :(

 

Zostały już stworzone 3 partycje podstawowe (i to już jest max):

/dev/hda1 * 1 765 6144831 83 Linux

/dev/hda3 766 1938 9422122+ 83 Linux

/dev/hda4 1939 2083 1164712+ 82 Linux swap

i partycja rozszerzona:

/dev/hda2 2084 9729 21416495 f W95 Ext'd (LBA)

która trzyma partycję logiczną:

/dev/hda5 2084 9729 21416463+ 7 HPFS/NTFS

 

Wcześniej nie przyjrzałem się dokładnie "zakresom" dla portycji podstawowych i rozszerzonej.

Jak widać nie stworzymy już więcej partycji podstawowych, a w zakresie partycji rozszerzonej nie będą się znajdowały bloki wydzielone po zmniejszeniu /dev/hda3 - a co za tym idzie nie stworzymy z nich patycji logicznej /dev/hda6.

 

Postaram się (do wieczora) zorientować jak można ten problem rozwiązać.

do tego czasu mam prośbę o wstrzymanie się z powyższym "howto".

 

Pozdrawiam i przepraszam za to niedopatrzenie :(

 

INFO:

Myslę, że rozwiązaniem oraz ZNACZNYM uproszczeniem powyższej instrukcji jest program:

parted

Wieczorem testy - wieczorem odpowiedź :)

 

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

udalo sie Tobie cos zaradzic? bo mi niestety nic,

 

przy takiej konfiguracji partycji strasznie ciezko cokolwiek zrobic,

 

probowalem zrobic to z Windozy przy pomocy Partition Magica a potem Acronis PartitionExperta ale niestety pomimo tego ze wylaczylem dziennik w systemie plikow i w etykiecie pokazuje system plikow ext2 to niestety nadal uwazaja ze system plikow nie jest znany i obslugiwany :(

 

jezeli dojdziesz do czegos to napisz, ja jutro pobawie sie jeszcze programem Parted, moze cos sie uda zrobic,

Odnośnik do komentarza
Udostępnij na innych stronach

Przetestowałem program: parted - niestety nie spełnił moich wszystkich oczekiwań.

Działam na dość specyficznym dysku (montowanym orzez usb 2.0 - widocznym jako /dev/sdc), i niestetu w/w program nie potrafił przeprowadzić operacji "resize" zarówno na ext3 (jak i na wyłączonym journalingu - >ext2).

Udało mi się za to przeprowadzić operację resize (bezproblemowo) na partycji rozszerzonej (w Twoim przypadku /dev/hda2) o wolne bloki uzyskane z wcześniejszego zmiejszenia partycji podstawowej - co umożliwia wykorzystanie "tej" przestrzeni dyskowej na nową partycje logiczną (np. /dev/hda6). Jest to dla nas bardzo dobra informacja :)

Na przeszkodzie stoi niestety partycja swap (w Twoim przypadku /dev/hda4).

Instrukcja nie ulegnie znaczącym zmianom - wprowadzone muszą być jednak pewne zmiany PRZED punktem 6 cześci I: "6. Fdisk: Utworzenie partycji najprawdopodobniej /dev/hda6:":

I) fdisk: wykasowanie swap (w Twoim przypadku /dev/hda4)

II) fdisk: założenie swap (wykorzystując miejsce pozostałe ze zmiejszenia /dev/hda3 i pozostawiając miejsce na "poszerzenie" partycji rozszerzonej - pkt III)

UWAGA: Nie zapominamy o wykonaniu poniższego polecenia po założeniu "nowej" partycji swap:

# mkswap /dev/hda4

III) poszerzenie partycji rozszerzonej (w Twoim przypadku /dev/hda2) o wolny obszar przy użyciu programu parted (jest dostępny w trybie: linux rescue):

# parted /dev/hda

(parted) print

(parted) ?

(parted) resize MINOR START_MB KONIEC_MB

 

MINOR jest numerem z pierwszej kolumny (w Twoim przypadku dla /dev/hda2) wyswietlonej przez print.

KONIEC_MB pozostaje bez zmian dla partycji rozszerzonej (/dev/hda2) - wartośc tą można odczytać z wcześniejszej komendy print.

Następnie (dopiero wtedy) możemy wykonywać PUNKT 6.

 

I w ten sposób uzyskujemy pełne rozwiązanie problemu. :)

 

Jestem w trakcie testowania (jeżeli masz ochotę to się przyłącz) :) programu "qtparted":

# yum install qtparted

(Wygląda nieźle ale jeszcze nic nie powiem. Plusem jest fakt, że jest np. na dystrybucji system rescue CD - co może umożliwić nam boot z cd i działanie na tych partycjach)

 

INFO 23.04.2005:

Przetestowałem instrukcję poszerzoną o powyższe punkty (w podobnej konfiguracji partycji) -

i muszę przyznać, że wszystko (w moim przypadku) zafunkcjonowało poprawnie.

 

Co do qtparted; gparted oraz dystrybucji system rescue CD to będę testował te rozwiązania dopiero w poniedziałek ... (ale robię to już wyłącznie z ciekawości - ale oczywiście jeżeli chcesz to podzielę się z Tobą spostrzeżeniami :).

 

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

Witam,

 

qtparted jest podobnie jak gparted nakladka na parted wiec zachowanie bylo podobne (przyciski resize na partycjach nie byly dostepne)

 

przeanalizowalem Twoj przepis i byc moze sie pogubilem, ale z tego co napisales widze ze trace dane na partycji glownej hda1, a chcialem zeby caly ten proces mial na celu wykozystac wolne misjsce na innej partycji ext3 (w moim przypadku /home) i dodanie tej wolnej przestrzeni do innej partycji (u mnie /) bez utraty danych na obu partycjach,

 

zastanawiam sie coraz powazniej nad alternatywnym rozwiazaniem problemu:

 

przeniesienie np. /usr/ na /home i zlinkowanie go tam (pomysl zaproponowal mi Karol z TLUG, dzieki ;) ), tylko zastanwiam sie jakie to bedzie mialo konsekwencje, moze ktos wie?

 

ewentualnie ztarowac partycje /home oraz / , przeniesc je w bezpieczne miejsce i od nowa podzielic dysk na partycje,

 

jezeli jeszcze cos uda Ci sie wymyslic ebnowak to bede wdzieczny za podpowiedz,

 

pozdrawiam,

Odnośnik do komentarza
Udostępnij na innych stronach

3. Fdisk: Zwiejszenie wielkości partycji /dev/hda1:

- wykasowanie /dev/hda1

- ponowne utworzenie /dev/hda1

"punkt startowy" musi być na lokalizcji "default" /dev/hda1 (czyli w tym przypadku: 1)

 

hda1 to partycja glowna systemu, wykasowanie w fdisku tej partycji zniszczy wszystkie dane ktore na niej sie znajduja,

Odnośnik do komentarza
Udostępnij na innych stronach

Usunięcie partycji /dev/hda1, a nastepnie ponowne utworzenie (mowa o działaniach w fdisk) nie powoduje "utraty danych".

UWAGA:

Najważniejsze aby "punkt startowy" danej partycji był w tym samym miejscu, a "punkt końcowy" zawsze był >= "poprzedniemu punktowi końcowemu"danej partycji.

 

Gdybyśmy chcieli użyć po takim "poszerzeniu" polecenia typu: mkfs.ext3, spowodowałoby to dopiero wtedy utratę danych.

 

Cała instrukcja jest tak przygotowanan aby ŻADNE DANE nie zostały utracone :)

 

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...