Jak przenieść katalog domowy systemu Linux na inny dysk?

Opublikowany: 2022-01-29
Terminal Linux na stylizowanym laptopie
Fatmawati Achmad Zaenuri/Shutterstock

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

Po co przechowywać swój folder domowy oddzielnie?

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

Coraz popularniejszą konfiguracją nowoczesnych komputerów osobistych jest posiadanie średniej wielkości dysku półprzewodnikowego (SSD) z systemem operacyjnym oraz większego dysku hybrydowego półprzewodnikowego (SSHD) lub tradycyjnego dysku twardego (HD) jako głównego miejsca przechowywania danych. Możesz też mieć jeden tradycyjny dysk twardy w swoim systemie i dodałeś nowy dysk twardy w celu zwiększenia pojemności. Niezależnie od powodów, oto prosty i szczegółowy przegląd przenoszenia katalogu domowego.

Przy okazji, jeśli instalujesz system Linux od zera, prawdopodobnie zobaczysz opcję utworzenia oddzielnego katalogu domowego w instalatorze twojej dystrybucji Linuksa. Ogólnie rzecz biorąc, 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ść bieżący katalog domowy do nowej lokalizacji bez utraty czegokolwiek lub ponownej instalacji systemu operacyjnego.

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

POWIĄZANE: Jak wykonać kopię zapasową systemu Linux za pomocą rsync

Zidentyfikuj dysk

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

Reklama

Polecenie fdisk wyświetli dla nas listę dysków i ich partycji.

 sudo fdisk -l 

Przewiń dane wyjściowe, aż zidentyfikujesz nowy dysk. Pierwszy dysk nazywa się /dev/sda , drugi to /dev/sdb i tak dalej, a ostatnia litera rośnie za każdym razem. Tak więc /dev/sde byłby piątym dyskiem twardym w systemie.

w tym przykładzie nowy napęd jest drugim napędem, który należy zamontować w systemie. Musimy więc poszukać wpisu /dev/sdb .

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

 sudo fdisk /dev/sdb 

Gdy fdisk poprosi o polecenie, naciśnij literę p . Spowoduje to wydrukowanie tablicy partycji dla dysku twardego. Wiemy, że go nie będzie, ale otrzymujemy przydatne informacje o napędzie. Daje nam to dużą szansę na upewnienie się, że dysk, dla którego zamierzamy utworzyć 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 dla nowej partycji, a następnie naciśnij p dla partycji podstawowej. Gdy pojawi się pytanie o numer strefy, naciśnij cyfrę 1 .

Reklama

Zamierzamy utworzyć pojedynczą 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 fdisk polecenia zapisania zmian na dysku, dysk pozostanie nietknięty. Gdy upewnisz się, ż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ę tabelę partycji, a zobaczysz, że jest teraz wymieniona partycja dla dysku. Ponieważ była to pierwsza partycja na tym dysku, nazywa się /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 stworzyć system plików na partycji. Można to łatwo osiągnąć za pomocą polecenia mkfs . Pamiętaj, że w poleceniu musisz podać numer partycji. Uważaj, aby wpisać /dev/sdb1 (partycja), a nie /dev/sdb (dysk).

 sudo mkfs -t ext4 /dev/sdb1 

Reklama

System plików zostanie dla Ciebie utworzony i wrócisz do wiersza poleceń.

Montaż nowego dysku

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

Punkt /mnt jest tak dobrym miejscem, jak każde inne. Jest to tylko tymczasowy punkt montowania, który pozwala nam skopiować dane na nowy dysk. Użyjemy 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 zgubiono+znaleziono 

Kopiowanie folderu domowego

Musimy skopiować wszystko ze starego katalogu domowego do nowo zamontowanego systemu plików. Użycie opcji r (rekursywne) i p (zachowaj) zapewni skopiowanie wszystkich podkatalogów i zachowanie własności plików, uprawnień i innych atrybutów.

 sudo cp -rp /home/* /mnt 

Reklama

Po zakończeniu kopiowania użyj ls , aby rozejrzeć się 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
 Czy Dave 

Prawdopodobnie będziesz chciał być nieco dokładniejszy niż my na maszynie testowej, na której ten artykuł był badany. Jako sieć bezpieczeństwa zamierzamy zmienić nazwę i zachować twój stary katalog /home , dopóki nie będziesz zadowolony, że można go bezpiecznie usunąć.

 sudo mv /home /home.orig 

I utworzymy nowy, pusty katalog domowy.

 sudo mkdir / home 

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

Ale najpierw przejdziemy do katalogu głównego (za pomocą cd / ), aby upewnić się, że nie znajdujemy się w katalogu, który zostanie uwzględniony w lokalizacji montowania lub odmontowywania.

 płyta CD /
 sudo umount /dev/sdb1
 sudo mount /dev/sdb1 /home/ 

POWIĄZANE: Wyjaśnienie struktury katalogów systemu Linux

Testowanie nowego katalogu domowego

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

 df /dev/sdb1 

Reklama

Pokazano nam nazwę systemu plików, rozmiar partycji oraz zajętą ​​i dostępną na niej przestrzeń, a także, co ważne, miejsce jej zamontowania. To jest teraz nasz katalog /home . Oznacza to, że powinniśmy być w stanie odwołać się do niego dokładnie tak samo, jak do starego katalogu /home .

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

 płyta 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 jawnych poleceń i używając skrótu ~ . Wszystkie foldery, pliki i pliki z kropkami są obecne. Wszystko wygląda dobrze.

Gdyby 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 automatycznie montować /dev/sdb1 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 razie problemów.

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

Reklama

Teraz możemy edytować plik fstab. Użyj swojego ulubionego edytora, my używamy gedit . Każdy edytor tekstu zrobi to.

 sudo gedit /etc/fstab 

Musisz dodać linię na dole pliku, aby zamontować nasz nowy katalog /home . Jeśli identyfikatory dysku i partycji różnią się od tych użytych w tym przykładzie, zastąp je podanym tutaj /dev/sdb1 .

  • Wpisz nazwę partycji na początku wiersza, a następnie naciśnij klawisz Tab.
  • Wpisz punkt montowania /home i naciśnij Tab.
  • Wpisz opis systemu plików ext4 i naciśnij Tab.
  • Wpisz defaults dla 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żywanie gedit do edycji pliku fstab

Zapisz plik fstab.

Uruchom ponownie system

Musimy ponownie uruchomić komputer, aby sprawdzić, czy wszystko poszło zgodnie z planem i czy masz bezproblemowe 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 można przywrócić w razie potrzeby. Ze względu na podjęte przez nas środki ostrożności — kopiowanie katalogu /home i plików fstab — można łatwo przywrócić system do stanu sprzed rozpoczęcia.

 sudo zrestartuj teraz 

POWIĄZANE: Jak ponownie uruchomić lub zamknąć system Linux za pomocą wiersza poleceń

Kontrole końcowe

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

 df /dev/sdb1 

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

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

 płyta CD /
 sudo rm -rf home.orig/ 

Reklama

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

Nie ma to jak w domu

Teraz, gdy oddzieliłeś katalog /home od reszty partycji systemu operacyjnego, możesz ponownie zainstalować system operacyjny, a Twoje dane pozostaną nienaruszone. Wszystko, co musisz zrobić, to edytować plik fstab, aby zamontować drugi dysk w /home .

A ponieważ wszystkie twoje pliki dotfile znajdują się w twoim katalogu /home , kiedy uruchomisz różne aplikacje, znajdą one wszystkie twoje ustawienia, preferencje i dane.

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

POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów