Jak przenieść katalog domowy Linuksa na inny dysk

Chcesz przenieść swój katalog domowy Linuksa na inny dysk? Oto prosty i krok po kroku sposób, aby to zrobić, który powinien działać w każdej dystrybucji. Przeniesienie folderu domowego oznacza, że ​​możesz ponownie zainstalować Linuksa i nie musisz martwić się o swoje pliki osobiste.

Po co przechowywać osobny folder domowy?

Jeśli konfigurujesz nowy komputer lub dodajesz dysk twardy do istniejącego, możesz chcieć mieć katalog domowy na innym dysku niż domyślna lokalizacja.

Coraz popularniejszą konfiguracją dla nowoczesnych komputerów osobistych jest posiadanie średniej wielkości dysku półprzewodnikowego (SSD) z systemem operacyjnym oraz większego hybrydowego dysku półprzewodnikowego (SSHD) lub tradycyjnego dysku twardego (HD) jako głównego magazynu danych. Możesz też mieć w swoim systemie jeden tradycyjny dysk twardy i dodać nowy dysk twardy w celu zwiększenia pojemności. Bez względu na powody, oto prosta i ciosowa próba przeniesienia katalogu domowego.

Nawiasem mówiąc, jeśli instalujesz system Linux od zera, prawdopodobnie zobaczysz opcję utworzenia oddzielnego katalogu domowego w instalatorze dystrybucji Linuksa. Generalnie wystarczy przejść do opcji partycjonowania, utworzyć oddzielną partycję i zamontować ją w „/ home”. Ale jeśli masz już zainstalowaną dystrybucję Linuksa, możesz skorzystać z tych instrukcji, aby przenieść swój bieżący katalog domowy do nowej lokalizacji bez utraty czegokolwiek lub ponownej instalacji systemu operacyjnego.

Teraz, zanim zaczniemy, zrób kopię zapasową.

Zidentyfikuj dysk

Jeśli właśnie zainstalowałeś dysk w komputerze z systemem Linux lub zainstalowałeś Linuksa na jednym z dysków w nowym komputerze wielodyskowym i ponownie uruchomiłeś, nie ma dowodów na to, że nowy dysk jest w ogóle obecny.

Polecenie fdisk to zrobi wymień dyski i ich partycje dla nas.

sudo fdisk -l

sudo fdisk -l w oknie terminala

Przewiń dane wyjściowe, aż zidentyfikujesz nowy dysk. Pierwszy dysk nosi nazwę / dev / sda, drugi to / dev / sdb itd., Przy czym za każdym razem zwiększa się ostatnia litera. Zatem / dev / sde byłby piątym dyskiem twardym w systemie.

w tym przykładzie nowy napęd jest drugim napędem, który zostanie zamontowany w systemie. Musimy więc poszukać wpisu dla / dev / sdb.

Wyjście z fdisk w oknie terminala z podświetlonym / dev / sdb

/ dev / sdb jest wyróżniony powyżej. Zauważysz, że nie ma linii opisującej partycję. To zupełnie nowy dysk, więc jeszcze go nie będzie. Musimy utworzyć partycję. Możemy to zrobić za pomocą fdisk. Jeśli twój dysk twardy nie jest / dev / sdb, upewnij się, że zastąpiłeś / dev / sdb faktycznym identyfikatorem dysku dla nowego dysku twardego w poleceniu.

sudo fdisk /dev/sdb

sudo fdisk / dev / sdb w oknie terminala

Gdy program fdisk zapyta o polecenie, naciśnij literę p. Spowoduje to wydrukowanie tablicy partycji dla dysku twardego. Wiemy, że nie będzie, ale otrzymujemy przydatne informacje o napędzie. Daje nam to dużą szansę na upewnienie się, że dysk, na którym utworzymy partycję, jest dyskiem, z którym zamierzaliśmy pracować.

Mówi nam, że dysk jest dyskiem o pojemności 1 TB, co odpowiada temu, czego oczekujemy w tej maszynie testowej, więc będziemy kontynuować.

Utwórz partycję

Naciśnij literę n, aby utworzyć nową partycję, a następnie naciśnij p dla partycji podstawowej. Gdy pojawi się pytanie o numer partycji, naciśnij cyfrę 1.

Utworzymy jedną partycję dla całego dysku, więc po wyświetleniu monitu o pierwszy sektor możemy nacisnąć Enter, aby zaakceptować wartość domyślną. Zostaniesz poproszony o podanie ostatniego sektora, a Enter zaakceptuje wartość domyślną.

tworzenie partycji za pomocą fdisk w oknie terminala

Chociaż fdisk potwierdza, że ​​utworzył partycję Linuksa o pojemności 1 TB, która jest partycją numer 1, nic się jeszcze nie zmieniło na dysku twardym. Dopóki nie wydasz fdisk polecenia zapisania zmian na dysku, dysk pozostaje nietknięty. Gdy jesteś pewien, że jesteś zadowolony z naszych wyborów, naciśnij literę w, aby zapisać zmiany na dysku.

zapisywanie zmian w fdisk na dysku w oknie terminala

Partycja została zapisana w / dev / sdb. Sprawdźmy, co się właśnie stało. Ponownie użyjemy fdisk na / dev / sdb.

sudo fdisk /dev/sdb

sudo fdisk / dev / sdb w oknie terminala

Naciśnij literę p, aby wydrukować tę tablicę partycji, a zobaczysz, że na liście znajduje się teraz partycja dla dysku. Ponieważ była to pierwsza partycja na tym dysku, nosi nazwę / dev / sdb1. Druga partycja miałaby nazwę / dev / sdb2 i tak dalej.

Nie chcemy wprowadzać żadnych zmian na partycji, więc naciśnij literę q, aby wyjść.

Utwórz system plików na partycji

Musimy utworzyć system plików na partycji. Można to łatwo osiągnąć za pomocą polecenia mkfs. Zauważ, że musisz podać numer partycji w poleceniu. Uważaj, aby wpisać / dev / sdb1 (partycja), a nie / dev / sdb (dysk).

sudo mkfs -t ext4 /dev/sdb1

sudo mkfs -t ext4 / dev / sdb1 w oknie terminala

System plików zostanie utworzony dla Ciebie i nastąpi powrót do wiersza poleceń.

Dane wyjściowe z polecenia mkfs w oknie terminala

Montaż nowego napędu

Aby użyć nowego dysku, musimy zamontować na nim partycję w punkcie montowania w systemie plików. Właściwie, aby być idealnie dokładnym, nie montujemy dysku ani partycji, montujemy system plików na partycji, przez przeszczepienie go do drzewa systemu plików twojego systemu.

Punkt / mnt jest równie dobrym miejscem jak inne. Jest to tylko tymczasowy punkt montowania, który pozwala nam skopiować dane na nowy dysk. Zamierzamy użyć polecenia mount, aby zamontować system plików na pierwszej partycji na / dev / sdb, w / mnt.

sudo mount /dev/sdb1 /mnt

sudo mount / dev / sdb1 / mnt w oknie terminala

Jeśli wszystko pójdzie dobrze, nastąpi powrót do wiersza poleceń bez komunikatów o błędach. Zobaczmy, czy możemy zmienić katalog na nasz nowo zamontowany system plików.

cd /mnt

cd / mnt w oknie terminala

Tak możemy. zobaczmy, co tu jest.

ls -ahl

ls -ahl w oknie terminala

Jesteśmy w naszym nowym systemie plików. Domyślny katalog „lost + found” nie jest wymagany, więc możemy go usunąć.

sudo rm -rf lost+found

sudo rm -rf lost + znalezione w oknie terminala

Kopiowanie folderu domowego

Musimy skopiować wszystko ze starego katalogu domowego do nowo zamontowanego systemu plików. Użycie opcji r (rekurencyjne) ip (zachowaj) zapewni wszystko kopiowane są podkatalogi oraz że prawa własności do plików, uprawnienia i inne atrybuty są zachowane.

sudo cp -rp /home/* /mnt

sudo cp -rp / home / * / mnt w oknie terminala

Po zakończeniu kopiowania użyj ls, aby się rozejrzeć i sprawdzić, czy dane są tam, gdzie się spodziewasz w nowym systemie plików. Innymi słowy, jeśli / mnt był twoim katalogiem domowym, czy wszystko jest obecne i poprawne?

ls
ls dave

Znajduje się w oknie terminala

Prawdopodobnie będziesz chciał być nieco dokładniejszy, niż byliśmy na maszynie testowej, na której badano ten artykuł. W ramach zabezpieczenia zmienimy nazwę i zachowamy stary katalog / home, dopóki nie upewnisz się, że można go bezpiecznie usunąć.

sudo mv /home /home.orig

sudo mv / home /home.orig w oknie terminala

Stworzymy nowy, pusty katalog domowy.

sudo mkdir /home

sudo mkdir / home w oknie terminala

Użyjemy tego nowego pustego katalogu domowego jako punktu montowania dla naszego systemu plików na nowym dysku twardym. Musimy odmontować go z / mnt i ponownie zamontować w / home. Zauważ, że polecenie umount nie ma „n” po „u”.

sudo umount /dev/sdb1
sudo mount /dev/sdb1 /home/

sudo umount / dev / sdb1 w oknie terminala

Testowanie nowego katalogu domowego

Zobaczmy, jakie są teraz atrybuty partycji / dev / sdb1:

df /dev/sdb1

df / dev / sdb1 w oknie terminala

Pokazana zostaje nazwa systemu plików, rozmiar partycji oraz używane i dostępne miejsce na nim oraz, co ważne, miejsce jego zamontowania. To jest teraz nasz katalog / home. Oznacza to, że powinniśmy móc odwoływać się do niego dokładnie tak, jak do starego katalogu / home.

Jeśli przejdziemy do dowolnego punktu w systemie plików, powinniśmy móc wrócić do / home za pomocą skrótu ~ tylda.

cd /
cd ~
pwd
ls

cd / i inne polecenia w oknie terminala, aby przetestować katalog domowy

cd /home
ls
cd dave
ls
ls -a

cd / home i inne polecenia do testowania katalogu / home w oknie terminala

Możemy poruszać się po systemie plików tam iz powrotem do / home używając wyraźnych poleceń i używając skrótu ~. Wszystkie foldery, pliki i pliki dotfiles, których oczekiwalibyśmy, są obecne. Wszystko wygląda dobrze.

Jeśli czegoś brakowało, moglibyśmy skopiować to z katalogu /home.orig, do którego nadal mamy dostęp w katalogu głównym systemu plików. Ale wszystko wygląda dobrze.

Teraz musimy mieć / dev / sdb1 montowany automatycznie przy każdym uruchomieniu komputera.

Edycja fstab

Plik „fstab” zawiera opisy systemów plików, które zostaną zamontowane podczas uruchamiania systemu. Zanim wprowadzimy w nim jakiekolwiek zmiany, wykonamy jego kopię zapasową, do której będziemy mogli wrócić w przypadku problemów.

sudo cp /etc/fstab /etc/fstab.orig

sudo cp / etc / fstab /etc/fstab.orig w oknie terminala

Teraz możemy edytować plik fstab.

sudo gedit /etc/fstab

sudo gedit .etc.fstab w oknie terminala

Musisz dodać linię na dole pliku, aby zamontować nasz nowy katalog / home. Jeśli identyfikatory dysku i partycji są inne niż te użyte w tym przykładzie, zamień je na pokazane tutaj / dev / sdb1.

Wpisz nazwę partycji na początku wiersza, a następnie naciśnij klawisz Tab.
Wpisz punkt montowania / home i naciśnij klawisz Tab.
Wpisz opis systemu plików ext4 i naciśnij Tab.
Wpisz wartości domyślne opcji montowania i naciśnij klawisz Tab.
Wpisz cyfrę 0 dla opcji zrzutu systemu plików i naciśnij klawisz Tab.
Wpisz cyfrę 0 dla opcji sprawdzania systemu plików.

Użycie gedit do edycji pliku fstab

Zapisz plik fstab.

Uruchom ponownie system

Musimy zrestartować komputer, aby sprawdzić, czy wszystko poszło zgodnie z planem i czy masz płynne połączenie z nowym katalogiem / home.

Jeśli tak się nie stanie, nadal masz sieć bezpieczeństwa swojego oryginalnego katalogu / home i pliku fstab, który w razie potrzeby można przywrócić. Ze względu na podjęte przez nas środki ostrożności – kopiowanie katalogu / home i plików fstab – można było łatwo przywrócić system do stanu, w jakim był przed rozpoczęciem.

sudo reboot now

sudo uruchom ponownie teraz w oknie terminala

Końcowe kontrole

Po ponownym uruchomieniu systemu sprawdźmy, czy katalog / home rzeczywiście znajduje się na nowym dysku twardym, a system w jakiś (cudowny sposób) nie powrócił do używania starego katalogu / home.

df /dev/sdb1

df / dev / sdb1 w oknie terminala

Świetnie, jest zamontowany w / home. Misja zakończona.

Gdy jesteś już całkowicie pewien, że nie potrzebujesz już kopii bezpieczeństwa swojego starego katalogu / home, możesz go usunąć:

cd /
sudo rm -rf home.orig/

sudo rm -rf home.orig / w oknie terminala

I oczywiście, jeśli zdasz sobie sprawę, że coś nie zostało skopiowane ze starego / home do nowego / home, będziesz w stanie odzyskać to z kopii zapasowej, którą utworzyłeś przed rozpoczęciem.

Nie ma to jak w domu

Po oddzieleniu katalogu / home od reszty partycji systemu operacyjnego możesz ponownie zainstalować system operacyjny, a Twoje dane pozostaną nietknięte. Wszystko, co musisz zrobić, to edytować plik fstab, aby zamontować drugi dysk w / home.

A ponieważ wszystkie twoje pliki dotfiles znajdują się w twoim katalogu / home, po uruchomieniu różnych aplikacji znajdą one wszystkie twoje ustawienia, preferencje i dane.

Eliminuje ból związany z ponowną instalacją i eliminuje ryzyko związane z aktualizacjami.