Odpowiedzi:
Najpierw przygotuj nową partycję (np. Za pomocą parted
i 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.
/
w innej lokalizacji w bieżącym systemie, gdy jest on uruchomiony (ale po ponownym uruchomieniu). Następnie możesz dostać się do starego /var
i usunąć, jeśli chcesz
blkid -o list -s UUID
, ale myślę, że musisz biegać z sudo
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 var
i home
któ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 wolumin logiczny dla nowego var
systemu plików, zamontuj go (używając katalogu tymczasowego) i skopiuj pliki z bieżącego /var
do 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ć /var
otwarte 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 /var
partycji do nowego systemu plików, zachowując atrybuty plików i atrybuty rozszerzone ( -a, --archive
opcja). 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, --archive
opcją zachowania znaczników czasu, własności, trybów itp. -X, --xattrs
Oraz z opcją zachowania rozszerzonych atrybutów, takich jak etykiety bezpieczeństwa używane przez AppArmor i SELinux:
sudo rsync -raX /var/ /var.new/
Skonfiguruj nowy system plików, który będzie używany jako nowy punkt montowania, /var
dodając następujący wiersz do /etc/fstab
. Zauważ, że 0
jest 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
.
Po ponownym uruchomieniu komputera nowy system plików zostanie zamontowany, /var
aby można było bezpiecznie usunąć tymczasowy punkt instalacji:
sudo rmdir /var.new
Stare /var
pliki 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 /var
katalogu jako punktu montowania). Użyj tymczasowego punktu instalacji, aby zamontować główny system plików, aby zawartość oryginalnego /var
katalogu 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/
lvcreate
i mkfs.ext4
nie 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.
/var
: zacznij od livecd, zamontuj partycję w zainstalowanym systemie/
irm -rf /var/*
.