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 wymienia dyski i ich partycje dla nas.
sudo fdisk -l
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.
/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
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ą.
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.
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
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
System plików zostanie utworzony dla Ciebie i nastąpi powrót do wiersza poleceń.
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
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
Tak możemy. Zobaczmy, co tu jest.
ls -ahl
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
Kopiowanie folderu domowego
Musimy skopiować wszystko ze starego katalogu domowego do nowo zamontowanego systemu plików. Użycie opcji r (rekurencyjne) i p (zachowaj) zapewni, że wszystkie podkatalogi oraz prawa własności do plików, uprawnienia i inne atrybuty są zachowane.
sudo cp -rp /home/* /mnt
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
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
Stworzymy nowy, pusty katalog domowy.
sudo mkdir /home
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/
Testowanie nowego katalogu domowego
Zobaczmy, jakie są teraz atrybuty partycji /dev/sdb1:
df /dev/sdb1
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 /home
ls
cd dave
ls
ls -a
Możemy poruszać się po systemie plików tam iz powrotem do /home, używając wyraźnych poleceń i 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
Teraz możemy edytować plik fstab.
sudo gedit /etc/fstab
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.
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
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
Ś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/
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.