Home Dokumentacje Dzielenie dysku na partycje, przenosiny /tmp i /var
18 | 11 | 2019
Dzielenie dysku na partycje, przenosiny /tmp i /var
Wpisany przez Daniel Robbins   

Uwaga: Oryginalna wersja tego artykułu została opublikowana w IBM developerWorks i jest własnością Westtech Information Services. Poniższy dokument jest poprawioną przez zespół GDP wersją oryginalnego tekstu i nie jest już aktualizowany.

Dzielenie dysku na partycje, przenosiny /tmp i /var

Daniel Robbins Autor
Mateusz Kotyrba Tłumaczenie

Zaktualizowano 9 października 2005
Oryginalna wersja tego dokumentu została po raz ostatni zaktualizowana 2 marca 2010. Jeśli chcesz pomóc w aktualizacji tego dokumentu do najnowszej wersji, skontaktuj się z Adres poczty elektronicznej jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć. , koordynatorem polskiego projektu tłumaczeń dokumentacji Gentoo.

1. Łączenie danych

Wprowadzenie

W mojej ostatniej wskazówce, z powodzeniem przenieśliśmy katalog /home na nową partycję. Teraz nadszedł czas, aby się nauczyć jak przenieść często modyfikowane pliki na nową partycję. Często modyfikowane pliki znacznie się przyczyniają do fragmentacji. Jedną z najlepszych możliwości, aby temu zapobiec jest przechowywanie ich na osobnej partycji. W ten sposób fragmentacja wywołana przez często modyfikowane pliki nie ma wpływu na inne partycje. Jako sam pomysł, jest to łatwe do zrozumienia, ale jak to się ma do wykonania?

Po pierwsze należy stworzyć nową partycję dla naszego konkretnego celu -- przechowywania często modyfikowanych plików. W celu zwiększenia wydajności można umieścić tę partycję na osobnym dysku. Następnie wykonamy kilka kroków wymaganych, aby przenieść /tmp i /var na tę nową partycję.

Ostrzeżenie: Omawiana technika opisuje sposób przeniesienia partycji. Jest ona tak zaprojektowana, aby użytkownik mógł wycofać się w każdym momencie, ale nie chroni ona przed błędem użytkownika. Innymi słowy w dowolnym momencie, kiedy formatujemy partycje lub kopiujemy duże ilości plików, istnieje możliwość, że wpiszemy złe polecenie, powodując tym samym zniszczenie dużej ilości danych. Z tego powodu gorąco się zaleca, aby podjąć odpowiednie kroki i przed przejściem dalej stworzyć kopię zapasową wszystkich niezbędnych plików.

Tworzymy system plików na nowej partycji

W pierwszym kroku stworzymy nową partycję, która będzie dostatecznie duża, aby pomieścić /var i /tmp. Będziemy potrzebowali dodatkowy dysk lub wolną (nieużywaną) partycję, na której umieścimy często modyfikowane pliki. Jeśli stworzymy partycję za pomocą fdisk lub cfdisk, wtedy konieczne będzie ponowne uruchomienie systemu. Następnie formatujemy nową partycję (możemy to wykonywać w trybie multiuser; dam znać kiedy należy przejść do trybu single-user):

Listing 1.1: Tworzenie systemu plików

# mkfs.ext2 /dev/???

2. Montujemy to do /mnt/rwstorage

Tak jak w mojej poprzedniej wskazówce ??? należy zastąpić nazwą urządzenia nowej, pustej partycji. Przypadkowo wpisując złą nazwę zniszczymy istniejące dane, więc należy być ostrożnym! Po wpisaniu tego polecenia, otrzymamy system plików ext2 na zupełnie nowej partycji. Jesteśmy prawie gotowi, aby go zamonotować, ale najpierw stwórzmy punkt montowania.

Listing 2.1: Tworzenie punktu montowania

# mkdir /mnt/odczytzapis

Wybrałem nazwę odczytzapis, aby przypomnieć, że ta partycja została stworzona szczególnie po to, aby przechowywać często modyfikowane pliki. Montujemy partycję wpisując:

Listing 2.2: Montowanie partycji

# mount /dev/??? /mnt/odczytzapis

3. Tworzenie nowego /tmp

Partycja jest już zamontowana i jesteśmy gotowi, aby stworzyć nowy katalog /tmp:

Listing 3.1: Tworzenie nowego /tmp

# cd /mnt/odczytzapis
# mkdir tmp
# chmod 1777 tmp

4. Przejście do trybu single-user

Nowy katalog w /mnt/odczytzapis/tmp posiada odpowiednie prawa dostępu dla katalogu tymczasowego. Teraz przechdzimy do trybu single-user, ponieważ musimy skopiować /var. Jak zwykle maksymalnie opóźniłem przejście do trybu single-user. Nie chcemy, aby żaden program odczytywał lub zapisywał pliki w /var, więc należy zatrzymać wszystkie demony, odłączyć wszystkich użytkowników i wpisać:

Listing 4.1: Wejście w tryb single-user

# init 1

W razie potrzeby wpisujemy hasło. Teraz powinniśmy znajdować się w powłoce roota i wszystkie niepotrzebne demony powinny być zatrzymane. Tworzymy nowy katalog dla naszych plików z /var poprzez wpisanie:

Listing 4.2: Tworzenie nowego katalogu

# cd /mnt/odczytzapis
# mkdir var

5. Kopiujemy /var

Domyślne uprawnienia dla katalogu /mnt/newstorage/var powinny być poprawne, więc jesteśmy gotowi, aby skopiować wszystkie dane z /var na nową partycję:

Listing 5.1: Kopiowanie danych

# cd /var 
# cp -ax * /mnt/odczytzapis/var

6. Kopia zapasowa i tworzenie dowiązań symbolicznych

Po wykonaniu tego polecenia, będziemy posiadali dokładną kopię katalogu /var w /mnt/odczytzapis/var. Pewnie jesteśmy ciekawi jak zmusić Gentoo, aby używało /mnt/odczytzapis/var i /mnt/odczytzapis/tmp zamiast domyślnych w katalogu systemowym. Wykonamy to bardzo łatwo poprzez stworzenie dowiązań symbolicznych -- stworzymy nowe dowiązania symboliczne, /tmp i /var, które będą wskazywały na odpowiednie katalogi w /mnt/odczytzapis. Najpierw, stwórzmy kopię zapasową oryginalnych katalogów:

Listing 6.1: Kopia zapasowa katalogów

# cd /
# cp var var.old
# cp tmp tmp.old

Ostatnia linia prawdopodobnie nie jest konieczna, ponieważ jest bardzo prawdopodobne, że w /tmp nie znajduje się nic istotnego. Teraz tworzymy dowiązania symboliczne:

Listing 6.2: Tworzenie dowiązań symbolicznych

# cd /
# ln -s /mnt/odczytzapis/var /var
# ln -s /mnt/odczytzapis/tmp /tmp

7. Kończące zmiany w /etc/fstab

Teraz kiedy którykolwiek z programów zechce skorzystać z katalogu /var, będzie automatycznie przeniesiony do /mnt/odczytzapis/var! Podobnie dla /tmp. Został nam ostatni krok. Jednakże może on być bezpiecznie wykonany w trybie multiuser. Nadszedł czas, aby uruchomić ponownie Apache i pozwolić wszystkim użytkownikom na zalogowanie się. Wychodzimy z poziomu uruchamiania 1 poprzez wciśnięcie CTRL-D. Po uruchomieniu systemu logujemy się jako root.

W ostatnim kroku konfigurujemy /etc/fstab, żeby /dev/??? był automatycznie montowany w /mnt/odczytzapis. Dodajemy następującą linię do /etc/fstab:

Listing 7.1: Konfiguracja fstab

/dev/???   /mnt/odczytzapis   ext2   defaults   1   2

Ważne: Jeśli używamy jądra w okolicach 2.3+, bardzo prawdopodobne, że w /etc/fstab będzie się znajdowała następująca linia:

Listing 7.2: Pamięć współdzielona

none   /var/shm   shm   defaults   0   0

Ta linia włącza pamięć współdzieloną w systemie i domyślnie jest montowana w /var. W celu właściwego działania tej linii, należy ją umieścić pod dodaną przez nas linią. W ten sposób, podczas włączania Gentoo, /mnt/odczytzapis zostanie najpierw zamonotowane (włączając /var). Wtedy i tylko wtedy urządzenie shm zostanie zamontowane w katalogu /var/shm, którym jest tak naprawdę /mnt/odczytzapis/var/shm. Należy się upewnić, że obie linie są w następującym porządku:

Listing 7.3: Włączanie pamięci współdzielonej

/dev/???        /mnt/odczytzapis  ext2    defaults       1     2
none            /var/shm        shm     defaults       0     0

Po zapisaniu zmian w /etc/fstab, nasz system został pomyślnie rozbudowany! Po sprawdzeniu czy wszystko działa poprawnie, będziemy mogli bezpiecznie usunąć katalogi kopii zapasowych /tmp.old i /var.old. Gratulacje -- pomyślnie skonfigurowaliśmy partycje w systemie, uzyskując optymalną wydajność.

Zasoby

O autorze

Daniel Robbins lives in Albuquerque, New Mexico. He was the President/CEO of Gentoo Technologies Inc., the Chief Architect of the Gentoo Project and is a contributing author of several books published by MacMillan: Caldera OpenLinux Unleashed, SuSE Linux Unleashed, and Samba Unleashed. Daniel has been involved with computers in some fashion since the second grade when he was first exposed to the Logo programming language and a potentially lethal dose of Pac Man. This probably explains why he has since served as a Lead Graphic Artist at SONY Electronic Publishing/Psygnosis. Daniel enjoys spending time with his wife Mary and his new baby daughter, Hadassah. You can contact Daniel at Adres poczty elektronicznej jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć. .

 

 
Linki sponsorowane

W celu realizacji usług i funkcji na witrynach internetowych ZUI "ELPRO" stosujemy pliki cookies. Korzystanie z witryny bez zmiany ustawień dotyczących plików cookies oznacza, że będą one zapisywane w urządzeniu wyświetlającym stronę internetową. Więcej szczegółów w Polityce plików cookies.

Akceptuję pliki cookies z tej witryny.