Mam dwa logiczne woluminy, jeden jest zamontowany jako /, a drugi jako / home.
Chcę je połączyć, ponieważ w /
woluminie ciągle brakuje miejsca. (Tak, wiem, co zajmuje całą tę przestrzeń; nie, nie mogę jej usunąć.)
Jestem gotów zdjąć maszynę na dzień lub dwa, aby to zrobić.
System operacyjny: Linux xxxxx 2.6.32-279.22.1.el6.x86_64 #1 SMP Wed Feb 6 03:10:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
(CentOS)
/
głośności, czy nie o to chodzi w korzystaniu z LVM?Odpowiedzi:
Skończyłem i ponowna partycja działała. Ponieważ jednak w obu przewodnikach brakuje obszarów, podsumuję to, co zrobiłem. Pamiętaj, że zamieniłem swoją nazwę użytkownika na
zzzz
i nazwę mojego komputera naxxxxxxx
. Ponadto wszystkie polecenia powinny być uruchamiane jako root, chyba że zaznaczono inaczej.Najpierw utworzyłem kopię zapasową:
Spowoduje to utworzenie skompresowanej kopii zapasowej katalogu / home i umieszczenie jej na moim dysku zewnętrznym. (Pamiętaj, że twój dysk zewnętrzny będzie miał inną ścieżkę).
Teraz musisz ponownie uruchomić komputer w trybie pojedynczego użytkownika.
Gdy komputer ponownie się włączy, musisz poszukać takiego ekranu:
Naciśnij dowolny klawisz, aby to przerwać. Powinieneś zobaczyć taki ekran:
Naciśnij a, następnie spację, a następnie wpisz
single
. Wciśnij Enter.Powinieneś zobaczyć następujący monit:
Wprowadź następujące polecenia:
Powinien to pokazać
Size
,Used
iAvail
. Jesteśmy zainteresowaniUsed
.Zapisz, ile miejsca zajmuje wolumen domowy. Będziemy tego potrzebować później.
Pamiętasz, ile miejsca zajmował Twój domowy wolumin? Podwój to i podaj to polecenie. Na przykład miałem 15 gigabajtów używanych w moim katalogu domowym, więc zmieniłem rozmiar na 30 gigabajtów.
Ostrzeżenie : następnym krokiem może być utrata danych. Upewnij się , że masz rozmiar większy niż poprzednie polecenie. Dodaj 5 gigabajtów, aby się upewnić.
Powiedz partycji root, aby wykorzystała całą przestrzeń, którą właśnie zwolniliśmy.
Skopiuj dane na partycję root
(Nawiasem mówiąc,
-a
jest to ważne, ponieważ w przeciwnym razie wszystko będzie własnością roota, a ty tego nie chcesz).Szybko sprawdź, czy dane zostały poprawnie skopiowane:
Teraz usuwamy partycję domową i mówimy rootowi, aby ponownie zajął nową przestrzeń.
W tym momencie popełniłem wielki błąd, z którego można się nauczyć. Uruchomiłem się ponownie, a kiedy system wrócił, odmówił zamontowania partycji root jako do odczytu i zapisu, ponieważ nie mógł zamontować partycji / home. Przed ponownym uruchomieniem piszemy
Jedna z tych linii powie systemowi, aby zamontował partycję / home. Umieść
#
przed nim. Naciśnij Ctrl-O, Enter, Ctrl-X. Teraz możesz zrestartować komputer.(Hipotetycznie, jeśli zapomniałbyś edytować fstab tak jak ja, polecenie zamontowania partycji root to
mount -n -o remount -t ext2 /dev/vg_xxxxxxxx/lv_root /
)źródło
/home
. Następnie, o ile możesz odmontować/home
, możesz go usunąć. Jednak nie mam wystarczających kwalifikacji, aby przeprowadzić Cię przez ten proces. To jest coś, o co powinieneś zadać nowe pytanie.OSTRZEŻENIE: Przed zrobieniem czegokolwiek wykonaj kopię zapasową wszystkich ważnych danych!
Należy przenieść wszystkie dane z partycji / home na inną partycję, partycję lokalną lub dysk zewnętrzny lub w inne miejsce, w którym jest wystarczająco dużo miejsca.
Usuń / home lv, a następnie rozwiń lv / (root)
Skopiuj dane z powrotem do katalogu / home
Edytuj 1
Powyższa odpowiedź zakłada, że nie masz wystarczającej ilości miejsca na partycji głównej, aby umieścić dane na partycji domowej.
Jeśli tak nie jest, po prostu zamontuj partycję domową w innym miejscu i skopiuj dane, na przykład:
Następnie wystarczy usunąć partycję domową i rozwinąć partycję główną
źródło
Możesz to zrobić bez zewnętrznego magazynu, uruchamiając z
/
, ale będziesz musiał odmontować/home
.Nie jest to szczególnie ryzykowna procedura, jeśli jesteś ostrożny, ale mimo to obowiązuje standardowa rada: najpierw wykonaj kopie zapasowe i przetestuj je.
Użyję
foo
nazwy grupy woluminówroot
ihome
jako logicznych nazw woluminów. To sprawia, że logiczne ścieżki objętościfoo/root
ifoo/home
i drogi urządzenia/dev/mapper/foo-root
i/dev/mapper/foo-home
. Zakładam, że należą do tej samej grupy woluminów, w przeciwnym razie staje się to bardziej skomplikowane i zależy od fizycznego układu woluminów dwóch grup woluminów.Najpierw odmontuj
/home
i uruchome2fsck -f /dev/mapper/foo-home
. Następnie najpierw zmniejsz system plików i odpowiednio wolumin logiczny. Uruchomresize2fs /dev/mapper/foo-home NNNN
gdzie nnnn jest liczbą bloków, które chcesz zachować wewnątrz objętości (można użyć KB lub MB lub GB zamiast z przyrostkiemK
,M
lubG
). Po obkurczeniu systemu plików, zmniejszyć wolumin logiczny zlvresize -L MMMM foo/home
którym MMMM jest liczba megabajtów (uwaga, że domyślna jednostka jest innaresize2fs
, ale można korzystać z tych samych przyrostkówK
,M
,G
). Uważaj, aby nie zmniejszyć woluminu logicznego dalej niż system plików - jest to jeden niebezpieczny krok w tej procedurze.W grupie woluminów jest teraz nieużywany pokój. Uruchom,
lvresize -l +100%FREE foo/root
aby wolumin główny przechwycił całe wolne miejsce w grupie woluminów. Następnie uruchomresize2fs /dev/mapper/foo-root
(bez parametru rozmiaru), aby powiększyć system plików i objąć cały wolumin logiczny; powiększenia można dokonać, gdy wolumin jest zamontowany.Masz teraz miejsce na skopiowanie niektórych plików. Jeśli nie masz wystarczająco dużo miejsca na wszystko, przesuń się jak najwięcej, a następnie powtórz procedurę.
Po skopiowaniu wszystkich plików
/home
możesz je zniszczyć. Sprawdź, czy/home
jest pusty (jeśli pliki zostały przeniesione) lub czy wszystkie pliki/home
zostały skopiowane/root
(jeśli pliki zostały skopiowane ). Aby zniszczyć niepotrzebny wolumin logiczny, uruchomlvremove foo/home
. Na koniec powiększ wolumin główny za pomocąlvresize -l 0%FREE foo/root
i jego systemu plików za pomocąresize2fs /dev/mapper/foo-home
.źródło
OK, znalazłem się w dokładnie tej samej pozycji. Wygląda na to, że CentOS domyślnie tworzy mały wolumin główny i wypełnia resztę przestrzeni
/home
. Nawet najpierw przetestowałem moją konfigurację na maszynie wirtualnej, ale z mniejszym dyskiem CentOS nie utworzył woluminu domowego. Podjąłem ten problem, zanim zostałem ograniczony przestrzenią, a także wymyśliłem, jak nie wchodzić w tryb pojedynczego użytkownika. Następująco:Uzyskaj dostęp do komputera, ssh jest w porządku (przy założeniu, że użytkownik nie jest rootem).
cd /
więc nie ma cię w katalogu domowymsudo -s
będziemy rootem tego wszystkiegolsof /home
sprawdź, czy nikt nie korzysta z domowego tomu, nie powinnomv
,tar
lub podobną zawartość domu do innego miejscalvremove centos/home
/etc/fstab
i komentuj lub usuń wiersz dla/home
/home
- jesteś teraz w bezpiecznej pozycji, restart tutaj powinien być OKlvresize -l +100%FREE centos/root
xfs_growfs /dev/centos/root
na CentOS 7 inni mogą korzystaćresize2fs
df -h
czy ci się udało?Mam nadzieję, że to komuś ułatwi. To naprawdę niesamowite, co można obecnie robić na systemach plików.
źródło