Pindahkan folder rumah ke drive kedua

65

Saya memiliki 2 drive HDD di komputer saya. Saat ini drive kedua sudah terpasang sebagai /media/storage.

Bagaimana saya bisa memindahkan data pengguna saya dari /homeke /media/storage/home?

Bisakah saya memindahkan data di sana dan kemudian hanya menghubungkannya kembali?

Stann
sumber
Jawaban yang menggunakan usermod adalah yang termudah: buat pengguna admin temp, beralih ke akun itu,, usermod -m -d /path/to/non_existent_home_dir usernamekembali ke akun Anda (nama pengguna), hapus pengguna temp admin. Meskipun masih 5 langkah, jauh lebih sedikit dari jawaban lain, jauh lebih berisiko dan langkah lebih sederhana.
Oliver

Jawaban:

31

Jika Anda hanya ingin memindahkan direktori home Anda yaitu / home / your-username maka cukup salin direktori home Anda ke partisi lain dan kemudian gunakan System-> Administration-> Users & Groups untuk membuka dialog pengaturan pengguna. Klik pada ikon tombol untuk mengotentikasi diri Anda

teks alternatif

Setelah itu pilih pengguna yang ingin Anda ubah dan klik properti, pergi ke tab lanjutan

teks alternatif

ubah direktori home ke direktori baru yaitu direktori yang Anda salin ke partisi lain.

binW
sumber
3
Memang. itu adalah cara yang bagus untuk dengan mudah mengubah lokasi direktori home dari pengguna tertentu. Saat membaca pertanyaan, saya memahami bahwa ini akan menjadi direktori home / global. Dalam hal ini, Anda dapat membuat partisi di perangkat lain, secara manual memindahkan semua file di sana dan kemudian mengubah perangkat untuk titik pemasangan di file / etc / fstab itu sendiri.
jfmessier
3
@ jfmessier: Anda harus menjawabnya daripada memberikan komentar!
Skizz
1
Jika Anda menyalin direktori home Anda dengan 'cp' pada baris perintah, Anda sebaiknya menggunakan 'cp ​​-rPa *': r untuk rekursif, P untuk tidak mengikuti tautan, a untuk menjaga kepemilikan dan bendera izin.
drevicko
1
Unity in 13.04 tidak memiliki "Pengguna & Grup", hanya pengaturan "Pengguna" yang tidak termasuk opsi ini. Bisakah Anda menyebutkan ketentuan yang sesuai untuk Persatuan dalam 13,04?
Torben Gundtofte-Bruun
Jika Anda menggunakan Ubuntu 12,04 atau lebih besar opsi untuk menggunakan metode GUI mungkin tidak tersedia, setidaknya bagi saya itu tidak. Saya harus menggunakan metode ini yang ditemukan di sini: help.ubuntu.com/community/Partitioning/Home/Moving
Kyle Coots
84

Memindahkan HOME dari baris perintah

Untuk menghindari efek samping saat bekerja dalam grafik, lingkungan kita harus melakukan semua tindakan untuk memindahkan HOME dari terminal dengan Ctrl+ Alt+ F1.

Mount sementara partisi baru:

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

dengan asumsi / sdb1 adalah partisi baru untuk HOME

Salin HOME ke lokasi baru:

sudo rsync -avx /home/ /mnt/tmp

Kami kemudian dapat me-mount partisi baru dengan HOME

sudo mount /dev/sdb1 /home

untuk memastikan semua data ada. Cara termudah adalah menghapus yang lama /homepada saat ini (Anda bisa melakukannya nanti tetapi kemudian Anda harus mem-boot sistem live untuk melihat rumah yang lama):

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

Jadikan HOME permanen

Kita perlu mengetahui UUID dari partisi baru untuk fstabentri dilihat dari:

sudo blkid

Catat atau salin / tempel UUID yang benar untuk diedit fstabbersama Anda

sudo nano /etc/fstab   #or any other editor

dan tambahkan baris berikut di akhir:

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

Berhati-hatilah memilih sistem file yang sesuai di sini, misalnya ext3jika ext3 diformat

Mulai ulang

Setelah reboot , Anda /homeberada di drive baru yang memiliki banyak ruang.

Takkat
sumber
1
Tidak bekerja untuk saya.
corev
2
Saya sarankan keluar dari profil yang ingin Anda pindahkan, Anda kemudian juga dapat menggunakan alat distribusi seperti usermoduntuk tugas ini.
LiveWireBT
Berhasil! Terima kasih. Bisakah saya menghapus /mnt/tmpsetelah reboot?
e9t
@ e9t: ini hanya mount point yang kami buat untuk sementara bisa me-mount HOME kami. Dimungkinkan untuk menghapus titik pemasangan ini tetapi itu tidak akan membahayakan (dan mungkin lebih aman) untuk hanya menyimpannya. Jika karena alasan apa pun Anda masih ingin menghapusnya, harap berhati-hati untuk tidak memasang apa pun di sana (jika tidak, Anda berisiko menghapus semua data yang telah Anda pasang secara permanen /mnt/tmp).
Takkat
1
Saya mengikuti instruksi ini untuk server saya dan sekarang saya tidak dapat mengaksesnya melalui SSH (Izin ditolak (publickey) :( :( :(
Khue
13

Prosedur terperinci resmi ada di sini di wiki bantuan Ubuntu


Temukan UUID Partisi

sudo blkid

Siapkan Fstab

sudo -H gedit /etc/fstab 

dan tambahkan baris-baris ini ke dalamnya

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

dan ganti ????????dengan nomor UUID dari /homepartisi yang dimaksud .

Simpan dan tutup fstabfile, lalu ketikkan perintah berikut:

sudo mkdir /media/home

Salin /homeke partisi baru

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

Periksa penyalinan berhasil

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

Catatan: Anda juga dapat berharap melihat beberapa kesalahan tentang file yang tidak ditemukan. Ini karena tautan simbolis yang menunjuk ke tempat-tempat yang saat ini tidak ada (tetapi akan dilakukan setelah Anda reboot). Anda dapat mengabaikan ini - tetapi periksa yang lainnya.

Mempersiapkan fstab untuk sakelar

sudo -H gedit /etc/fstab

dan sekarang edit baris yang Anda tambahkan sebelumnya, ubah /media/homebagian menjadi hanya mengatakan /homesehingga terlihat seperti ini:

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

Pindah /homeke/old_home

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

Nyalakan kembali atau Remount semua

Nyalakan kembali atau pasang kembali semua dengan ini:

sudo mount -a
Steve
sumber
10
Selamat Datang di Tanya Ubuntu! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Eliah Kagan
7

Memang. itu adalah cara yang bagus untuk dengan mudah mengubah lokasi direktori home dari pengguna tertentu. Saat membaca pertanyaan, saya memahami bahwa ini akan menjadi direktori home / global. Dalam hal ini, Anda dapat membuat partisi di perangkat lain, secara manual memindahkan semua file di sana dan kemudian mengubah perangkat untuk titik mount di file / etc / fstab itu sendiri

jfmessier
sumber
2

ok, satu-satunya cara saya menemukan ini akan berhasil adalah membuat pengguna lain, berikan otoritas admin, logoff id utama, logon dengan id baru dan kemudian gunakan perintah usermod.


sumber
0

Tugas:

  • Periksa ketersediaan dan format dua HDD: "WD Purple" dan "WD Gold".
  • Pasang dua HDD ke sistem file Ubuntu.
  • Pindahkan folder HOME ke HDD "WD Gold".

Tautan yang berhubungan:

Memformat disk

Pasang semua kabel SATA dan kabel daya yang diperlukan ke HDD Anda. Muat Ubuntu. Tekan keyboard dan ketik "Disk". Utilitas "Disk" akan dibuka: masukkan deskripsi gambar di sini

Dalam utilitas ini Anda dapat memformat HDD Anda ke sistem file Ext4. Kalau tidak, untuk memformat disk, gunakan perintah:

  1. fdisk (man fdisk);
  2. berpisah (man berpisah);
  3. mkfs (man mkfs)

Misalnya, tapi saya tidak yakin dengan parameter karena menggunakan GUI "Disk":

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

Ingat, pemformatan itu akan menghapus semua yang ada di hard disk target . Anda dapat melewati langkah ini jika ada data pada hard disk dan Anda ingin tidak kehilangannya.

Pemformatan lambat harus memakan banyak waktu: dari 16 hingga 20 jam untuk disk 4TB.

Pasang disk secara permanen

# 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

Memindahkan HOME dari baris perintah

# 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
sumber