Strona 1 z 1

[+] Zamiana partycji dla katalogu

: 09 kwietnia 2010, 10:11
autor: m4rcin
Hej wszystkim.

Przyglądam się Wam już od pewnego czasu, gdyż czerpie stąd różne ciekawe porady lub rozwiązuję swoje małe problemy. Ale dzisiaj postanowiłem się już zarejestrować i wreszcie napisać pierwszy post gdyż sam sobie z moim problemem rady nie daję! Otóż:

Przy instalacji musiałem zrobić błąd gdy wybierałem partycję tzn mam 3 dyski twarde (sda, sdb, sdc, - jeden dysk - jedna partycja) chciałem, aby dla jednego z nich montowanym folderem był /var, dla drugiego /home, a dla trzeciego reszta systemu - przyjmujemy, że:[INDENT]sda - /
sdb - /home
sdc - /var[/INDENT]
Po zainstalowaniu i skonfigurowaniu Debiana okazał się, że zamiast partycji dla /home cała partycja trafiła dla /boot:[INDENT]sda - /
sdb - /boot
sdc - /var[/INDENT]
Chciałbym nie przeinstalowywać całego systemu ustawić to z powrotem tak jak powinno być, czyli /boot przynieść na partycję do reszty system, a /home na sdb.
Czy jest to w ogóle wykonalne dla zainstalowanego i działającego systemu?

Proszę o pomoc.
Potrzebuję informacji gdzie szukać, czym zrobić lub koncepcję jak to powinno wyglądać.

: 09 kwietnia 2010, 12:34
autor: arturimagda
Jest to wykonalne, można to zrobić na działającym systemie. Na początek pokaż wynik:

Kod: Zaznacz cały

cat /etc/fstab

: 09 kwietnia 2010, 13:31
autor: m4rcin

Kod: Zaznacz cały

zwiazek:/etc/cbq# cat /etc/fstab -A
# /etc/fstab: static file system information.$
#$
# <file system> <mount point>   <type>  <options>       <dump>  <pass>$
proc            /proc           proc    defaults        0       0$
/dev/sdc1       /               ext3    errors=remount-ro 0       1$
/dev/sdb1       /boot           ext3    defaults        0       2$
/dev/sda1       /var            ext3    defaults        0       2$
/dev/sdc5       none            swap    sw              0       0$
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0$
Tak to wygląda. Chcę, aby /boot znalazł się na sdc, a /home w tym momencie spokojnie przenieść na sdb.

: 09 kwietnia 2010, 14:42
autor: Moreno
Owszem, można to zrobić bez ponownej instalacji.
Zapewne jest na to kilka sposobów, ale ja tutaj opiszę jeden wybrany, w miarę prosty do wykonania i przede wszystkim samodzielnego zrozumienia wykonywanych czynności - "a po co to i na co".
Wszystkie operacje wykonujemy w konsoli jako root. Z racji potrzeby ciągłego wglądu na poniższy opis, na początku można korzystać z konsoli w graficznym środowiśku. Później natomiast, gdy przenośić będziemy pliki użytkownika, należy polecenia wydawać z konsoli "tty".

W główym drzewie katalogów utwórz tymczasowy katalog, np. "a" wykonując komende:

Kod: Zaznacz cały

#mkdir /a
Teraz przemontuj partycję sdb1 do tego katalogu, co wykonujesz poprzez uprzednie odmontowanie partycji sdb1 i zamontowanie jej w katalogu "a":

Kod: Zaznacz cały

#umount /dev/sdb1
#mount /dev/sdb1 /a
Przenieś całą zawartość katalogu "/a" do katalogu "/boot", ale uważaj, nie przenoś katalogu "/a", tylko jego zawartość. Oczywiście, o ile istnieje katalog "lost+found" zostaw w spokoju. Tutaj najprościej jest posłużyć się Midnight Comanderem. Ja natomiast opisze to wydaniem poleceń:

Kod: Zaznacz cały

#ls -a /a
#mv /a/nazwakatalogu /boot/
#mv /a/nazwapliku /boot/    {Polecenia wpisujemy tyle razy, ile jest katalogów i plików.}
Teraz wyedytuj plik menu.lst:

Kod: Zaznacz cały

#nano /boot/grub/menu.lst

i sprawdź (w razie czego skoryguj) ściezki plików w wersach "kernel" oraz "initrd". Pwinno to wyglądac nastepująco:

Kod: Zaznacz cały

kernel         /boot/vmlinuz-twoja-wersja-jadra     root=/dev/sdc1 ro quiet
initrd             /boot/initrd.img-twoja-wersja-jadra

oraz

Kod: Zaznacz cały

kernel         /boot/vmlinuz-twoja-wersja-jadra     root=/dev/sdc1 ro single
 initrd             /boot/initrd.img-twoja-wersja-jadra

Zapisz zmiany "Ctrl+o" "T" i na nowo zainstaluj gruba wpisując:

Kod: Zaznacz cały

grub-install /dev/sdc
Teraz faza druga - przenosimy pliki użytkownika. Z tego względu należy wylogować się, a następnie przy użyciu Ctrl+Alt+F1 przenieść się na tty1 i zalogowac się jako root.

Teraz przenieś katalog użytkownika do folderu "/a", a następnie przemontuj partycje sdb1 do katalogu /home. Wszystko to wykonasz poprzez komendy:

Kod: Zaznacz cały

#mv /home/nazwa_uzytkownika /a
#umount /dev/sdb1
#mount /dev/sdb1 /home/
Na koniec jeszcze wyedytuj plik fstab

Kod: Zaznacz cały

#nano /etc/fstab
i zmień punkt montowania sdb1 - w odpowiednim wersie zmień
z

Kod: Zaznacz cały

/dev/sdb1         /boot 
na

Kod: Zaznacz cały

/dev/sdb1         /home
Zapisz zmiany "Ctrl+o" "T".

Gotowe :)

: 09 kwietnia 2010, 21:28
autor: Anetka
Ja bym to zrobił mniej więcej tak;

Kod: Zaznacz cały

umount /dev/sdb1
mkdir /tmp/oldboot
mount /dev/sdb1 /tmp/oldboot
mkdir /boot
cp -R /tmp/oldboot /boot
rm -rf /tmp/oldboot
umount /dev/sdb1
vim /etc/fstab i zmiana w linii /dev/sdb1 /boot na /home
mount -a
Mogłem gdzieś walnąć babola, ale generalnie powinno działać (proszę poprawić jeżeli gdzieś się machnąłem).

Dodatkowo;
1. Nie jestem pewien czy reinstalacja gruba jest konieczna.
2. Przy większej ilości dysków zainteresuj się UUID - odpadnie Ci wtedy zamartwianie się czy dyski są prawidłowo podpięte. Wbrew pozorom uruchomienie UUID na Debianie lenny jest banalne...

: 09 kwietnia 2010, 22:27
autor: m4rcin
Zrobiłem to pierwszym sposobem kolegi Moreno - działa bez problemu, nie wiem czy działałoby to bez przeinstalowania gruba - jak tak się zastanowiłem to chyba tak - jakbym nie ruszył partycji w sposób fizyczny. Co do UUID mam Lennego więc przemyślę temat - chyba, że wcześniej zamienię kilka dysków na jeden (dwa duże) pozdrawiam, dzięki za pomoc!

: 09 kwietnia 2010, 22:30
autor: Moreno
Anetka pisze:Ja bym to zrobił mniej więcej tak;

Kod: Zaznacz cały

umount /dev/sdb1
mkdir /tmp/oldboot
mount /dev/sdb1 /tmp/oldboot
mkdir /boot
cp -R /tmp/oldboot /boot
rm -rf /tmp/oldboot
umount /dev/sdb1
vim /etc/fstab i zmiana w linii /dev/sdb1 /boot na /home
mount -a
Mogłem gdzieś walnąć babola, ale generalnie powinno działać (proszę poprawić jeżeli gdzieś się machnąłem).

Dodatkowo;
1. Nie jestem pewien czy reinstalacja gruba jest konieczna.(...)
Anetka, nie obraź się, ale nie dość, że opisałaś pokrótce połowę tego co ja napisałem, to w dodatku zrobiłaś jedynie połowę roboty. Mało tego, po wykonaniu twoich poleceń, po restarcie kompa m4rcin nie uruchomi debiana.
Jeżeli masz się za coś wziąć i nie zrobić tego do końca, to lepiej wogóle sie za to nie zabieraj.

Reinstalacja gruba jest konieczna dlatego, że przenosisz pliki gruba na inną partycje, a właściwie inny dysk, a grub nie będzie wszczynał dochodzeń i poszukiwań pt. "gdzie się podziały moje pliki?".

Mimo to, babola walnęłaś, chociażby z poleceniem mkdir /boot.
Jaki sens ma tworzenie katalogu o takiej samej nazwie co istniejący już katalog? Przecież /boot już wcześniej istniał, tyle, że zamontowana była w nim partycja sdb1.
...a co z folderem użytkownika? Owszem, znajduje sie we właściwym katalogu, ale nie na partycji sdb1, tak jak chce m4rcin.

Do m4rcin, ciesze się, ze mogłem pomóc.