Jak mogę przechowywać / var na osobnej partycji?

13

Chciałbym przechowywać /varna osobnej partycji od /. Jaki jest prawidłowy sposób skonfigurowania tego?

ændrük
źródło

Odpowiedzi:

17

Najpierw przygotuj nową partycję (np. Za pomocą partedi mkfs).

Powiedz, że partycja to / dev / sda5

Zamontuj nową partycję:

mkdir /var2
mount /dev/sda5 /var2

Zsynchronizuj swój obecny var:

rsync -a /var/ /var2

Dodaj wpis do / etc / fstab

/dev/sda5    /var    ext4    defaults      2 2

Restart.

Jeśli chcesz wrócić do swojego starego / var, po prostu skomentuj wpis w fstab.

Aleksandr Levchuk
źródło
1
Dodałbym trochę informacji, aby odzyskać miejsce na starym /var: zacznij od livecd, zamontuj partycję w zainstalowanym systemie /i rm -rf /var/*.
enzotib
1
Słuszna uwaga. Lub możesz zamontować /w innej lokalizacji w bieżącym systemie, gdy jest on uruchomiony (ale po ponownym uruchomieniu). Następnie możesz dostać się do starego /vari usunąć, jeśli chcesz
Aleksandr Levchuk
1
Też się nad tym zastanawiałem. Pierwsza 1 jest czymś naprawdę archaicznym i pozbawionym efektów, druga kontroluje kolejność fsck, kiedy nadejdzie czas skanowania twojego ext podczas startu. Nie zwracam już na nich uwagi. Po prostu wstaw 1 1, ponieważ wymaga tego składnia.
Aleksandr Levchuk
2
Powinieneś umieścić 2 2, aby pozwolić na takie rzeczy jak / pobierz fsck scan przed / var podczas ponownego uruchamiania po raz 30. W przeciwnym razie, jeśli / var zawiedzie i poprosi cię o ręczne naprawienie rzeczy w powłoce jednego użytkownika - wtedy nie będziesz miał żadnego systemu plików. Zabawne rzeczy.
Aleksandr Levchuk
2
Czy nie zaleca się używania UUID w fstab? Mam odpowiedni blkid -o list -s UUID, ale myślę, że musisz biegać z sudo
steevc
2

Konfigurowanie nowej partycji / var na serwerze wirtualnym

Kiedy przejąłem nowy serwer wirtualny udostępniony przez firmę hostingową mojego pracodawcy, w głównym systemie plików nie było wystarczającej ilości wolnego miejsca. Na szczęście użyli Logical Volume Manager (LVM) do podzielenia dysku wirtualnego i było wystarczającej ilości wolnego miejsca do utworzenia nowych woluminów. Utworzyłem dodatkowe woluminy logiczne vari homektóre były zwykłymi katalogami w głównym systemie plików. Ponieważ dostawca serwera wirtualnego nie zapewnił interfejsu podobnego do KVM, za pomocą którego mógłbym uzyskać dostęp do serwera w trybie pojedynczego użytkownika, zastosowałem bardzo podobną metodę do tej opisanej przez Aleksandra (ta odpowiedź zawiera dodatkowe szczegóły dotyczące odzyskiwania miejsca na dysku w dodatek do poleceń specyficznych dla LVM).

Utwórz nowy system plików / var za pomocą LVM

Utwórz wolumin logiczny dla nowego varsystemu plików, zamontuj go (używając katalogu tymczasowego) i skopiuj pliki z bieżącego /vardo nowego systemu plików:

# Create a new 60GB logical volume in the `VolGroup00` group called `var`.
sudo lvcreate -L 60GB -n var VolGroup00
# Create an ext4 filesystem on this new `var` volume.
sudo mkfs.ext4 /dev/VolGroup00/var
# Mount this filesystem at a temporary mount-point.
sudo mkdir /var.new
sudo mount /dev/VolGroup00/var /var.new

Ponieważ uruchomione procesy będą mieć /varotwarte i używane pliki , drzewa katalogów nie można po prostu przenieść do nowego systemu plików. Rekurencyjnie ( -r) kopiuj pliki z bieżącej /varpartycji do nowego systemu plików, zachowując atrybuty plików i atrybuty rozszerzone ( -a, --archiveopcja). Ostrożny użytkownik może najpierw utworzyć migawkę LVM bieżącego woluminu przed skopiowaniem, ale to zbyt wiele szczegółów nie na temat tego pytania.

sudo cp -ra /var/ /var.new/

Alternatywnie pliki można skopiować rsync, z -a, --archiveopcją zachowania znaczników czasu, własności, trybów itp. -X, --xattrsOraz z opcją zachowania rozszerzonych atrybutów, takich jak etykiety bezpieczeństwa używane przez AppArmor i SELinux:

sudo rsync -raX /var/ /var.new/

Zaktualizuj tabelę systemu plików

Skonfiguruj nowy system plików, który będzie używany jako nowy punkt montowania, /vardodając następujący wiersz do /etc/fstab. Zauważ, że 0jest używany jako numer przepustki (ostatnie pole), aby system plików nie był automatycznie sprawdzany ( fsck) po określonej liczbie ponownych uruchomień.

/dev/mapper/VolGroup00-var    /var    ext4  defaults  0 0

Ponieważ przejście do trybu pojedynczego użytkownika nie jest możliwe, uruchom ponownie komputer, aby użyć tego nowego woluminu jako /var.

Usuń tymczasowy punkt montowania

Po ponownym uruchomieniu komputera nowy system plików zostanie zamontowany, /varaby można było bezpiecznie usunąć tymczasowy punkt instalacji:

sudo rmdir /var.new

Odzyskaj miejsce na dysku z głównego systemu plików

Stare /varpliki nadal zajmują miejsce na partycji głównej, ale nie są łatwo dostępne, gdy zamontowany jest inny system plików /var(są „maskowane” przez nowy system plików, który używa /varkatalogu jako punktu montowania). Użyj tymczasowego punktu instalacji, aby zamontować główny system plików, aby zawartość oryginalnego /varkatalogu była dostępna alternatywną ścieżką.

    sudo mkdir /old-root
    sudo mount /dev/mapper/VolGroup00-root /old-root/
    sudo rm -rf /old-root/var/*
    sudo umount /old-root/
    sudo rmdir /old-root/
Anthony Geoghegan
źródło
Dobre wyjaśnienie dostępnych opcji. Jednak używasz lvcreatei mkfs.ext4nie wyjaśniając, jakie są lub dlaczego są używane. Być może możesz po prostu powiedzieć, że jest to tworzenie nowej partycji, ponieważ nie są one głównym tematem odpowiedzi.
PhoneixS,
Dzięki za opinie @PhoneixS Zredagowałem odpowiedź, aby była jaśniejsza i zawierała dodatkowe informacje kontekstowe.
Anthony Geoghegan,