Skocz do zawartości

Przeniesienie /var Oraz /tmp Na Oddzielną Partycje


bojus

Rekomendowane odpowiedzi

Witam,

 

chciałem zrobić jak w temacie, czyli przenieść katalogi var oraz tmp z root-a na oddzielną parytcję (tę samą). Postąpiłem jak opisano w artykule:

 

http://www.gentoo.org/doc/en/articles/partitioning-p2.xml

 

Czyli utowrzyłem nową partycję rozszerzoną (fdisk), następnie w jej obrębie partycję podstawową. System plików jest ext4. Przekopiowałem wszystko z /var/ oraz /tmp , a nastepnie dolinkowałem. Dodałem wpis do etc/fstab i po restarcie... zasadzka. System nie chce wstać.

 

Czy ktoś mi podpowie, co jest tego przyczyną?

 

Aha, system to fed 12 (constantine)

 

Bardzo dziękuję za wskazówki.

 

Pozdrawiam

swider

Odnośnik do komentarza
Udostępnij na innych stronach

Zasadzką jest to, że system nie wstaje. Na początku widziałem przez moment coś w rodzaju

"pci adress space collision" potem pojawił się znaczek fedory i ustaje czytanie dysku, a system wisi.

 

Po skorzystaniu z live cd, początek jest ten sam(wspomniane błędy), ale system się uruchamia. Błędy "pci adress space collision" raczej nie są problemem, ponieważ po instalacji systemu, a przed przygotowaniem partycji /var oraz /tmp pojawiały się już i nie przeszkadzało to w normanym uruchomieniu linuxa.

 

Z poziomu live mogę wyciągnąc tylko fdisk

fdisk -l

 

Disk /dev/sda: 60.0 GB, 60011642880 bytes

255 heads, 63 sectors/track, 7296 cylinders

Units = cylinders of 160065 * 512 = 8225280 bytes

Disk identifier: 0x9acd0f50

 

Device Boot Start End Blocks Id System

 

/dev/sda1 * 1 26 204800 83 Linux

/dev/sda2 26 3850 30720000 83 Linux

/dev/sda3 3850 4360 4096000 83 Linux

/dev/sda4 4360 7296 23584288+ 5 Extended

/dev/sda5 4360 5927 12587764+ 83 Linux

 

Nie wiem, czy mogę coś dodać, co może pomóc w analizie? z dmesg-a, ale jakich wpisów?

 

 

Po uruchomieniu w single user:

 

moj fstab wyglada nastepujaco:

 

UUID =6417b0ca-4197-4c05-8a51-1323669c0047 / ext4 defaults 1 1

UUID =f6d849a1-0707-4453-a4e1-b1cd5c8317ce /boot ext4 defaults 1 2

UUID = e7fee7fe-acc6-4112-866f-5f1f78deb46a /swap ext4 defaults 1 2

 

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

/dev/sda5 /mnt/rwstorage ext4 defaults 1 2

 

df -h to

 

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 29G 2.0G 27G 7% /

tmpfs 620M 0 620M 0% /dev/shm

/dev/sda1 194M 22M 163M 12% /boot

/dev/sda3 3.9G 72M 3.6G 2% /swap

/dev/sda5 12G 257M 11G 3% /mnt/rwstorage

 

 

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Przekopiowałem wszystko z /var/ oraz /tmp , a nastepnie dolinkowałem.
Tak się nie robi. Tzn. do przenoszenia całych /* używa się bardziej wyszukanych metod niż zwykłe kopiowanie. No i symlinki to za mało. Jeśli nie nadpisałeś (usunąłeś) pierwotnych /var i /tmp to wystarczy, że usuniesz dodane wpisy z /etc/fstab i system ruszy. Jeśli nadpisałeś to skopiuj je w to miejsce z zewnętrznej partycji. Co do /tmp to właściwie nic w nim nie ma i możesz równie dobrze utworzyć pusty folder oczywiście z dobrymi prawami, bo to właśnie o prawa zapisu może chodzić. Przykładowo zwykły użytkownik nie ma prawa do zapisywania, ale wtedy gnome by nie wstało, a nie cały system.
Odnośnik do komentarza
Udostępnij na innych stronach

Bez LiveCD na żywca:

- kopia folderu na inną partycję (mam oddzielny /home)

su -
mkdir -p /home/var
cd /var
find . -print0 | cpio -p0vumd /home/var

- podmiana

ln -s /home/var /var-link
mv /var /var-org
mv /var-link /var

- restart i wszystko działa

- dostałem kilka alertów SELinux

Odnośnik do komentarza
Udostępnij na innych stronach

znów pojawia sie ten sam problem, wpis fstab-a:

 

/dev/sda5 /mnt/rwstorage ext4 defaults 1 2

 

powoduje, ze system nie wstaje. Tak jakby nie chciał podmontować partycji z utworzonymi na niej katalogami i symlinkami. Moze chodzi tu o kolejnosc wpisów w fstabie?

 

Gdy uruchamiam w tryb verbose, na ekranie widze, ze pierwszy wpis failed pojawia sie przy - Starting audits: [failed] nastepnie zatrzymuje sie na Starting system logger:

 

 

Miał może ktoś podobny przypadek?

 

Dzieki

Odnośnik do komentarza
Udostępnij na innych stronach

Kolejność wpisów w fstab nic nie zmieni, ja mam podłączaną partycję z var na końcu. Robisz pewnie jakiś czeski błąd z tym linkiem. "Starting system logger:" to pierwsza usługa zapisująca do /var, więc go nie widzi.

Pokaż:

ls -l /mnt/rwstorage

oraz na co wskazuje Twój link podmieniony za /var

 

* SELinux zgłasza alerty, gdy cokolwiek chce dostępu do /var. Trzeba by poszukać jaki to powinno mieć kontekst.

 

* Metoda z linkiem symbolicznym to nawiasem mówiąc "partyzantka". Najlepiej by było, gdyby cała partycja był przeznaczona na montowany folder. Wówczas to ma ręce i nogi.

Czyli:

- zamontuj (o ile nie zamontowałeś w fstab)

mount /dev/sda5 /mnt/rwstorage

i wyczyść do zera zawartość

- skopiuj ZAWARTOŚĆ /var (z LiveCD to zawsze bezpieczniej dla danych)

su -
cd /var
find . -print0 | cpio -p0vumd /mnt/rwstorage

a w fstab zamontuj partycję bezpośrednio jako /var

/dev/sda5 /var ext4 defaults 1 2

tym sposobem nie ma prawa się nic sknocić i SELinux będzie zadowolony

minus jest taki, że cała partycja jest dla /var z drugiej strony to plus :)

 

* Jeśli chodzi o /tmp to tam zazwyczaj nic nie ma i jeśli masz w zapasie ~1GB RAM (gruba przesada) to możesz go zamontować do RAM. Plus jest taki, że działa szybciej i zawsze się sam czyści przy restarcie. Podmiana jest banalna, wystarczy wpisać w fstab:

tmpfs            /tmp        tmpfs        defaults,size=1024M,mode=1777     0 0

gdzie size=1024M oznacza rozmiar przeznaczony dla /tmp. Reszty nie zmieniaj.

Przed restartem wyczyść /tmp (to są śmieci, nie rób kopi), bo się zamontuje ukrywając zawartość. Miałbyś taki dziwny efekt, że coś zajmuje miejsce na dysku, ale tego nigdzie nie widać :)

Jak Ci się coś nie będzie podobać to wystarczy usunąć wpis i wszystko wraca po staremu.

Odnośnik do komentarza
Udostępnij na innych stronach

wygląda to tak:

 

ls -l /mnt/rwstorge/

 

total 24

drwx------. 2 root root 16384 2010-07-29 11:18 lost+found

drwxr-xr-x. 10 root root 4096 2010-07-30 10:51 tmp

drwxr-xr-x. 20 root root 4096 2010-07-30 08:18 var

 

 

ls -ld /var

 

lrwxrwxrwx. 1 root root 18 2010-07-30 08:20 /var -> /mnt/rwstorage/var

 

 

ls -ld /mnt/rwstorage/var

 

drwxr-xr-x. 20 root root 4096 2010-07-30 08:18 /mnt/rwstorage/var

 

a jesli chodzi o RAM to u mnie jest tak, jak poniżej:

 

free

 

total used free shared buffers cached

Mem: 1269356 307732 961624 0 272920 228500

 

oczywiscie to jest z pozimou single user.

 

Tak w ogole, to chcialbym to miec raczej na oddzielnej partycji(takze tmp). Wszystkie te czynnosci robie na zwyklym lapie dla testów, a potem chcialbym zrobic na serwerze, ktory działa komercyjnie. Niestety nie moge tam skorzystac raczej z płytki instalacyjnej. Stąd tak kombinuje.

 

Zrobiłem czynności, które opisałeś, ale system znów staje na etapie

 

Starting system logger:

 

Po zalogowaniu sie do single user mode dostaje:

 

fdisk -l

 

Device Boot Start End Blocks Id System

/dev/sda1 * 1 26 204800 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 26 3850 30720000 83 Linux

/dev/sda3 3850 4360 4096000 83 Linux

/dev/sda4 4360 7296 23584288+ 5 Extended

/dev/sda5 4360 5927 12587764+ 83 Linux

 

 

df -h pokazuje:

 

 

Filesystem Size Used Avail Use% Mounted on

/dev/sda2 29G 2.0G 27G 7% /

tmpfs 620M 0 620M 0% /dev/shm

/dev/sda1 194M 22M 163M 12% /boot

/dev/sda3 3.9G 72M 3.6G 2% /swap

/dev/sda5 12G 259M 11G 3% /var

 

 

a fstab:

 

UUID =6417b0ca-4197-4c05-8a51-1323669c0047 / ext4 defaults 1 1

UUID =f6d849a1-0707-4453-a4e1-b1cd5c8317ce /boot ext4 defaults 1 2

UUID = e7fee7fe-acc6-4112-866f-5f1f78deb46a /swap ext4 defaults 1 2

 

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

/dev/sda5 /var ext4 defaults 1 2

#tmpfs /tmp tmpfs defaults,size=512M,mode=1777 0 0

 

 

tmp zostawiłem na razie w głównym katalogu /

 

i dalej to samo, nie wstaje system

 

 

 

 

dzieki za pomoc

Odnośnik do komentarza
Udostępnij na innych stronach

Zaraz, zaraz. System wstaje w trybie init 1, a w trybie init 3/5 zawiesza się na starcie. Nie wiem, zacznij od różnicy w uruchomionych usługach, a potem to czarna magia.

 

Jeśli miałbyś możliwość sprawdzić tę konfigurację na innym kompie (albo chociażby wirtualnie), to byś wiedział czy błąd popełniłeś Ty, czy to wina jakiegoś kruczka na tym jednym laptopie.

Odnośnik do komentarza
Udostępnij na innych stronach

Z tego co widzę próbujesz wstać z katalogami var i tmp jako linki symboliczne. Nie jestem specem ale to może być niemożliwe dla systemu bo spodziewa się realnego pliku (katalogu).

Pamiętam że była opcja montowania katalogu do innego przez mount --bind, ale nie wiem czy da się tego użyć w fstab. Warto jednak spróbować.

Odnośnik do komentarza
Udostępnij na innych stronach

Z tego co widzę próbujesz wstać z katalogami var i tmp jako linki symboliczne.
Nic podobnego - plik to plik i katalog to plik i link symboliczny to plik :) Dlaczego miałoby być źle?

Od dawna mam /var jako link symboliczny do katalogu na innej partycji. Tym bardziej powinno zadziałać z /tmp. Tylko faktycznie po podlinkowaniu musiałem Selinuksa przekonać, żeby się nie wściekał, ale na to pomogło

touch /.autorelabel
reboot

 

@swider - zrób tak jak radzi borzole, tzn. sprawdź czy jakieś usługi nie są przyczyną. W czasie startu przejdź do uruchamiania interaktywnego i zobacz na czym się zatrzymuje. W sumie można nawet bez trybu interaktywnego, chociaż mam wrażenie, że w trybie interaktywnym pokazuje więcej usług, niz to widać przy normalnym starcie ("normalnym" - czytaj z wyłączonym rhgb/plymouth).

 

[EDIT]

ls -l /mnt/rwstorge/
Literówka? rwstorge czy rwstorage? Lepiej kopiuj z terminala to co tam wypisujesz, bo w końcu przez jedna literkę będziemy w kółko błądzić.

 

Wg mnie to chyba w piętkę gonisz.

Najpierw podmontuj /dev/sda5 na /mnt/storage a dopiero potem utwórz tam katalogi var i tmp.

 

bo jeśli robisz najpierw katalog /mnt/storage/var a potem linkujesz do niego /var, to de facto masz link z /var (na partycji / ) do /mnt/storage/var (też na partycji / ). Żeby przenieść /var na /dev/sda5 musisz:

1. najpierw podmontować partycję (mount /dev/sda5 /mnt/storage)

2. potem utworzyć katalog (mkdir /mnt/storage/var)

3. potem zrobić przeniesienie plików i podkatalogów (najlepiej offline, w trybie rescue albo z LiveCD poleceniem "mv -R /var/* /mnt/storage/var")

4. usunąć /var (rmdir /var)

5. zrobić link /var -> /mnt/storage/var (ln -s /var /mnt/storage/var

6. a potem już bez żadnego cudowania w /etc/fstab zrobić reboot (ewentualnie jeszcze touch /.autorelabel, żeby obłaskawić SElinux).

Odnośnik do komentarza
Udostępnij na innych stronach

zrobiłem jeszcze raz to samo, a więc zainstalowałem fedore. Potem partycja rozszerzona, podstawowa, zmiany w fstabie i przy restarcie z pozimou single user mode init 6 od razu wyskakuje:

 

 

Couldn't create log file /var/log/ConsoleKit/history (No such file or directory)

 

 

Potem system sie restartuje i zastyga na moment przy Starting auditd - pierwszy "failed" a następnie wiesza sie na bardzo długo przy Starting HAL daemon: Po dość długim czasie przelatują bardzo szybko logi jak podczas wstawanie systemu, ale juz z samymi błędami i już nie przechodzi dalej.

 

 

 

Gdy uruchamiam w single user mode w verbose widze coś takiego

 

Mounting local filesystem: [OK]

 

touch:cannot touch /var/lib/raandom-seed : No such file or directory

chmod:cannot access var/lib/raandom-seed No such file or directory

find: /var/run : No such file or directory

/etc/rc.d/rc.sysinit:line 769:/var/run/utmp: No such file or directory

touch: cannot touch /var/log/wtmp: No such file or directory

chgrp: cannot access /var/run/utmp: No such file or directory

chmod: canno access /var/log/wtmp: No such file or directory

 

i wiele podobnych wpisów

 

jednak system wstaje i widze podmontowana partycje z /var

 

 

 

 

Niestety nie mam jak kopiowac z termianala i tu wklejać-przeciez nie mam dostepu do usług sieciowych

 

 

Nie wiem, może spróbuje tego przeniesienia /var na innej dystrybucji (np Suse), albo zaoram mój stacjonarny PC i na innym kompie to zrobie. Muszę sprawdzić, czy to jest wina mojego dysku, dystrybucji, czy czegoś innego.

 

Albo jeszcze raz podejde do tego na spokojnie krok po kroku i przekaże moje spostrzeżenia.

 

Dzieki

Odnośnik do komentarza
Udostępnij na innych stronach

hej,

 

przeniosłem /var na inną partycje. Jednak problemem był najprawdopodobniej dysk(jeszcze nie zdiagnozowałem dokładnie), zawsze podczas uruchamiania lapa pojawiają się błędy typu: cannot allocate resource region 4 of device 0000:00:1d,0

 

A procedurka, którą przetestowałem na innej maszynie, pod linuchem wygląda tak:

 

 

z poziomu single user mode, a więc : init 1 lub init s, albo lub z boot loadera odpowiednia opcja robimy kolejno:

 

przygotowujemy "nowy" var

 

mkdir /data/new_var

 

montujemy "nowy" var(tutaj katalog w lokalizacji /data/new_var) do innej partycji(np/dev/hda5):

 

mount dev/hda5 /data/new_var

kopiujemy dane do "nowego" var-a:

 

cd /var

 

tar cfp - . | (cd /data/new_var ; tar xvfp - )

 

sprawdzamy spójnośc danych:

 

du -sk /var

du -sk /data/new_var

 

 

find /var | wc -l

find /data/new_var | wc -l

 

df -i /var

df -i /data/new_var

 

zmieniamy nazwę "starego" var-a:

 

mv /var /var_old

 

przygotowujemy nowy punkt podmontowania:

 

mkdir /var

 

odmontowujemy "nowy" var i podmontowujemy inną partycję do stworzonego punktu montowania:

 

umount data/new_var

 

mount dev/hda5 /var

 

dodajemy odpowiednią linię do /etc/fstab:

 

 

vi /etc/fstab

 

dev/hda5 /var ext3 defaults 1 2

 

i restartujemy:

 

init 6

 

Przetestowałem i działa, może komuś się przyda :)

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ę...