Przenieś folder domowy na drugi dysk

65

W komputerze mam 2 dyski twarde. W tej chwili drugi napęd jest montowany jako /media/storage.

Jak mogę przenieść moje dane użytkownika /homedo /media/storage/home?

Czy mogę po prostu przenieść tam dane, a następnie po prostu dowiązać symbolicznie z powrotem?

Stann
źródło
Odpowiedź, która wykorzystuje usermod najłatwiej: utworzenie tymczasowego administratora użytkownikowi, przełączyć się do tego konta usermod -m -d /path/to/non_existent_home_dir username, przełączyć się z powrotem do swojego konta (nazwę użytkownika), usunąć temp administratora użytkownikowi. Chociaż wciąż jest to 5 kroków, znacznie mniej niż inne odpowiedzi, znacznie mniej ryzykowne i znacznie prostsze kroki.
Oliver,

Odpowiedzi:

31

Jeśli chcesz po prostu przenieść katalog domowy, tj. / Home / twoja-nazwa użytkownika, po prostu skopiuj katalog domowy na inną partycję, a następnie użyj System-> Administracja-> Użytkownicy i Grupy, aby otworzyć okno dialogowe ustawień użytkownika. Kliknij ikonę kluczy, aby uwierzytelnić siebie

alternatywny tekst

Następnie wybierz użytkownika, którego chcesz zmienić, i kliknij właściwości, przejdź do karty Zaawansowane

alternatywny tekst

zmień katalog domowy na nowy katalog, tj. katalog skopiowany na inną partycję.

binW
źródło
3
W rzeczy samej. to świetny sposób na łatwą zmianę lokalizacji katalogu domowego określonego użytkownika. Czytając to pytanie, rozumiałem, że byłoby tak w przypadku katalogu / home na całym świecie. W takim przypadku możesz utworzyć partycję na drugim urządzeniu, ręcznie przenieść tam wszystkie pliki, a następnie zmienić urządzenie dla punktu podłączenia w samym pliku / etc / fstab.
jfmessier
3
@jfmessier: powinieneś udzielić odpowiedzi, a nie komentarza!
Skizz
1
Jeśli kopiujesz swój katalog domowy z 'cp' w wierszu poleceń, lepiej użyj 'cp -rPa *': r dla rekurencyjnego, P dla nie podążania za linkami, a dla zachowania flagi własności i uprawnień.
drevicko
1
Unity w 13.04 nie ma „Użytkownicy i grupy”, tylko ustawienie „Użytkownicy”, które nie zawiera tych opcji. Czy możesz podać odpowiednie warunki dla Unity w 13.04?
Torben Gundtofte-Bruun
Jeśli używasz Ubuntu 12.04 lub nowszego, opcja użycia metody GUI może być niedostępna, przynajmniej dla mnie tak nie jest. Musiałem użyć tej metody znalezionej tutaj: help.ubuntu.com/community/Partitioning/Home/Moving
Kyle Coots
84

Przenoszenie programu HOME z wiersza polecenia

Aby uniknąć efektów ubocznych podczas pracy w środowisku graficznym, powinniśmy wykonać wszystkie czynności, aby przenieść HOME z terminala za pomocą Ctrl+ Alt+ F1.

Tymczasowo zamontuj nową partycję:

sudo mkdir /mnt/tmp
sudo mount /dev/sdb1 /mnt/tmp

zakładając, że / sdb1 jest nową partycją dla HOME

Skopiuj program HOME do nowej lokalizacji:

sudo rsync -avx /home/ /mnt/tmp

Następnie możemy zamontować nową partycję jako HOME

sudo mount /dev/sdb1 /home

aby upewnić się, że wszystkie dane są obecne. Najłatwiej jest usunąć stary /homew tym momencie (możesz to zrobić później, ale wtedy będziesz musiał uruchomić system na żywo, aby zobaczyć stary dom):

sudo umount /home  #unmount the new home first!
rm -rf /home/*  #deletes the old home

Ustaw program HOME na stałe

Musimy znać identyfikator UUID nowej partycji dla fstabwpisu widzianego z:

sudo blkid

Uwaga lub kopiuj / wklej prawidłowy UUID aby zmieniać swoich fstabz

sudo nano /etc/fstab   #or any other editor

i dodaj następujący wiersz na końcu:

UUID=<noted number from above>    /home    ext4    defaults   0  2

Wybierz tutaj odpowiedni system plików, np. W ext3przypadku sformatowania ext3

Restart

Po ponownym uruchomieniu komputer /homeznajduje się na nowym dysku i ma dużo miejsca.

Takkat
źródło
1
Nie działało dla mnie.
corev
2
Zalecam wylogowanie się z profilu, który chcesz przenieść, a następnie możesz również użyć narzędzi do dystrybucji, takich jak usermodto zadanie.
LiveWireBT,
Zadziałało! Dzięki. Czy mogę usunąć /mnt/tmppo ponownym uruchomieniu?
e9t
@ e9t: jest to tylko punkt montowania, który stworzyliśmy, aby móc tymczasowo zamontować nasz HOME. Można usunąć ten punkt montowania, ale po prostu go nie wyrządzi (i może być bezpieczniej). Jeśli z jakiegoś powodu nadal chcesz go usunąć należy zachować szczególną ostrożność, aby nie mieć nic zamontowane tam (w przeciwnym razie istnieje ryzyko, aby nieodwracalnie usunąć wszystkie dane, które już zamontowany /mnt/tmp).
Takkat
1
Postępowałem zgodnie z instrukcjami dla mojego serwera i teraz nie mogę uzyskać do niego dostępu przez SSH (Odmowa dostępu (publickey) :( :( :(
Khue
13

Oficjalna szczegółowa procedura znajduje się tutaj na wiki pomocy Ubuntu


Znajdź identyfikator UUID partycji

sudo blkid

Skonfiguruj Fstab

sudo -H gedit /etc/fstab 

i dodaj do niego te linie

UUID=????????   /media/home    ext4    defaults    0  2 

i zastąp ????????numerem UUID planowanej /homepartycji.

Zapisz i zamknij fstabplik, a następnie wpisz następujące polecenie:

sudo mkdir /media/home

Skopiuj /homena nową partycję

sudo rsync -aXS --progress --exclude='/*/.gvfs' /home/. /media/home/.

Sprawdź, czy kopiowanie działa

sudo diff -r /home /media/home -x ".gvfs/*"

Uwaga: Możesz również spodziewać się błędów związanych z nie odnalezieniem plików. Wynika to z dowiązań symbolicznych, które wskazują miejsca, które obecnie nie istnieją (ale zrobią to po ponownym uruchomieniu). Możesz je zignorować - ale sprawdź cokolwiek innego.

Przygotowanie fstab do przełącznika

sudo -H gedit /etc/fstab

a teraz edytuj linie, które wcześniej dodałeś, zmieniając /media/homeczęść tak, aby po prostu powiedzieć, /homeaby wyglądała tak:

UUID=????????   /home   ext4    defaults     0  2 

Przeprowadzka /homedo/old_home

cd / && sudo mv /home /old_home && sudo mkdir /home

Uruchom ponownie lub podłącz ponownie

Zrestartuj lub ponownie podłącz wszystko za pomocą tego:

sudo mount -a
Steve
źródło
10
Witamy w Ask Ubuntu! Chociaż teoretycznie może to odpowiedzieć na pytanie, lepiej byłoby zawrzeć tutaj istotne części odpowiedzi i podać odnośnik.
Eliah Kagan
7

W rzeczy samej. to świetny sposób na łatwą zmianę lokalizacji katalogu domowego określonego użytkownika. Czytając to pytanie, rozumiałem, że byłoby to globalne dla katalogu / home. W takim przypadku możesz utworzyć partycję na drugim urządzeniu, ręcznie przenieść tam wszystkie pliki, a następnie zmienić urządzenie dla punktu podłączenia w samym pliku / etc / fstab

jfmessier
źródło
2

ok, jedynym sposobem, w jaki to działało, jest utworzenie innego użytkownika, nadanie mu uprawnień administratora, wylogowanie głównego identyfikatora, zalogowanie się przy użyciu nowego identyfikatora, a następnie użycie komendy usermod.


źródło
0

Zadanie:

  • Sprawdź dostępność i sformatuj dwa dyski twarde: „WD Purple” i „WD Gold”.
  • Podłącz dwa dyski twarde do systemu plików Ubuntu.
  • Przenieś folder HOME na dysk twardy „WD Gold”.

Powiązane linki:

Formatuj dyski

Podłącz wszystkie niezbędne kable SATA i zasilające do dysków twardych. Załaduj Ubuntu. Naciśnij klawiaturę i wpisz „Dyski”. Zostanie otwarte narzędzie „Dyski”: wprowadź opis zdjęcia tutaj

W tym narzędziu możesz sformatować dyski twarde w systemie plików Ext4. W przeciwnym razie, aby sformatować dyski, użyj poleceń:

  1. fdisk (man fdisk);
  2. rozstał się (człowiek rozstał się);
  3. mkfs (man mkfs)

Na przykład, ale nie jestem pewien co do parametrów, ponieważ użyłem GUI „Disks”:

sudo mkfs.ext4 -L purple /dev/sdb  # not sure with parameters
sudo mkfs.ext4 -L gold   /dev/sdc  # not sure with parameters

Pamiętaj, że formatowanie spowoduje usunięcie wszystkiego z docelowego dysku twardego . Możesz pominąć ten krok, jeśli na dysku twardym znajdują się jakieś dane i nie chcesz ich zgubić.

Powolne formatowanie powinno zająć dużo czasu: od 16 do 20 godzin dla dysku 4 TB.

Zamontuj na stałe dyski

# Press CTRL+ALT+T and open a console.
# Check your /dev/sdb and /dev/sdc discs are visible:
lsblk
# Create directories for the new HDD WD Purple and WD Gold
sudo mkdir /hdd_purple
sudo mkdir /hdd_gold  # temporary directory
# Temporary mount to the new mount point
sudo mount /dev/sdb1 /hdd_purple
sudo mount /dev/sdc1 /hdd_gold
# Unmount drives
sudo umount /dev/sdb1
sudo umount /dev/sdc1

# Configuration file /etc/fstab has list of all partitions that will be mounted at boot.
# 1. Show and copy UUID of the HDD with this command:
sudo blkid
# My data is:
#     /dev/sdb1: LABEL="purple" UUID="6ce9ec1f-3bf5-420f-8502-1b4f55f2fc60" TYPE="ext4" PARTUUID="a14c8357-a8ce-42e4-9772-64ccfad3e226"
#     /dev/sdc1: LABEL="gold" UUID="1d049c7c-4565-480b-a181-2459e8ff8c1b" TYPE="ext4" PARTUUID="4c691b21-b4e3-4dab-ab91-d7bf7272b2b5"
# Make a backup of that file to be able to revert changes.
sudo cp /etc/fstab /etc/fstab.2018.11.29.bak
# 2. Add a new partitions by editing /etc/fstab file as root:
sudo nano /etc/fstab
# 3. At the bottom of fstab file add 2 lines similar to this:
UUID=6ce9ec1f-3bf5-420f-8502-1b4f55f2fc60   /hdd_purple   ext4   defaults           0  2
UUID=1d049c7c-4565-480b-a181-2459e8ff8c1b   /hdd_gold     ext4   defaults           0  2
# Your UUID have to be different!
# Write the file with keys <Ctrl+O> then <Return>. Quit the editor with <Ctrl+X>.
# If you have Midnight Commander running, then save before quitting with <Ctrl+X>,
# because <Ctrl+O> will switch from nano editor to your MC.

# To see if the drive is mounted correctly we can simulate the mount process at boot with:
sudo mount -a

Przenoszenie programu HOME z wiersza polecenia

# To avoid side effects while working in a graphical, environment
# we should perform all actions to move HOME from a terminal with Ctrl+Alt+F3.

# Press <Ctrl+Alt+F3> and swidth to console mode.
# Login in the console mode.

# Copy HOME to the new location:
sudo rsync -avx /home/ /hdd_gold

# Delete everything in the HOME directory.
# Be careful with this command, make sure you have a backup.
rm -rf /home/*

# Make HOME permanent -- edit /etc/fstab configuration file
sudo nano /etc/fstab
# Change string
UUID=1d049c7c-4565-480b-a181-2459e8ff8c1b  /hdd_gold  ext4  defaults  0  2
# to string
UUID=1d049c7c-4565-480b-a181-2459e8ff8c1b  /home      ext4  defaults  0  2
# /hdd_golds change to /home directory

# After a reboot, your /home resides on the new drive having plenty of space.
sudo reboot
FooBar167
źródło