将主文件夹移动到第二个驱动器


64

我的计算机中有2个HDD驱动器。目前,第二个驱动器安装为/media/storage

如何将用户数据从/home移到/media/storage/home

我可以仅将数据移到那里,然后将其符号链接回去吗?


使用usermod的答案最简单:创建一个临时管理员用户,切换到该帐户usermod -m -d /path/to/non_existent_home_dir username,然后再切换回您的帐户(用户名),删除临时管理员用户。尽管仍然是5个步骤,但比其他答案要少,风险要少,步骤也要简单。
奥利弗

Answers:


31

如果只想移动主目录,即/ home / your-username,则只需将主目录复制到其他分区,然后使用System-> Administration-> Users&Groups打开用户设置对话框。单击钥匙图标以验证您的身份

替代文字

之后,选择要更改的用户并单击属性,然后转到“高级”选项卡

替代文字

将主目录更改为新目录,即您复制到其他分区的目录。


3
确实。这是轻松更改特定用户的主目录位置的好方法。在阅读问题时,我了解到这应该是全局的/ home目录。在这种情况下,您可以在另一台设备上创建分区,在其中手动移动所有文件,然后将设备更改为/ etc / fstab文件本身中的安装点。
jfmessier 2011年

3
@jfmessier:您应该做出答案而不是发表评论!
Skizz

1
如果要在命令行上使用“ cp”复制主目录,则最好使用“ cp -rPa *”:r表示递归,P表示不跟踪链接,a表示保留所有权和权限标志。
drevicko 2012年

1
13.04中的Unity没有“用户和组”,只有不包含这些选项的“用户”设置。您能在13.04中提及Unity的相应术语吗?
2013年

如果您使用Ubuntu 12.04或更高版本,则使用GUI方法的选项可能不可用,至少对我而言不可用。我必须使用在这里找到的这种方法:help.ubuntu.com/community/Partitioning/Home/Moving
Kyle Coots 2014年

83

从命令行移动HOME

为了避免在图形环境中工作时产生副作用,我们应该执行所有操作,以使用Ctrl+ Alt+ 从终端移动HOME F1

临时挂载新分区:

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

假设/ sdb1是HOME的新分区

将HOME复制到新位置:

sudo rsync -avx /home/ /mnt/tmp

然后,我们可以将新分区安装为HOME

sudo mount /dev/sdb1 /home

确保所有数据都存在。最简单的方法是/home在此时删除旧版本(您可以稍后再执行此操作,但是随后您必须启动实时系统才能看到旧版本):

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

使HOME永久化

我们需要知道fstab从以下位置看到的条目的新分区的UUID :

sudo blkid

请注意或复制/粘贴正确的UUID,以便fstab使用

sudo nano /etc/fstab   #or any other editor

并在末尾添加以下行:

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

注意在这里选择适当的文件系统,例如,ext3如果ext3格式化

重启

一个后重启,你/home有足够的空间所在的新的驱动器上。


1
没有为我工作。
2011年

2
我建议注销要移动的配置文件,然后也可以使用usermod此任务的分发工具。
LiveWireBT

有效!谢谢。/mnt/tmp重新启动后可以删除吗?
e9t

@ e9t:这只是我们创建的一个挂载点,可以临时挂载我们的HOME。可以删除此安装点,但仅保留它不会造成任何伤害(并且可能更安全)。如果出于任何原因仍要删除它,请格外小心,不要在其中安装任何东西(否则,您将具有不可逆转的删除已安装到的所有数据的风险/mnt/tmp)。
塔卡特2015年

1
我为服务器使用了这些说明,但现在无法通过SSH访问(权限被拒绝(公钥):( :( :(
Khue 18'Apr 18'18

13

官方的详细步骤在Ubuntu帮助Wiki上


查找分区的UUID

sudo blkid

设置Fstab

sudo -H gedit /etc/fstab 

并将这些行添加到其中

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

并将其替换????????为所需/home分区的UUID号。

保存并关闭fstab文件,然后键入以下命令:

sudo mkdir /media/home

复制/home到新分区

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

支票复印成功

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

注意:您还可以期望看到一些关于找不到文件的错误。这些是由于符号链接指向当前不存在的位置(但是在重新启动后才可以使用)。您可以忽略这些-但请检查其他内容。

为交换机准备fstab

sudo -H gedit /etc/fstab

现在编辑您之前添加的行,将/media/home部分更改为简单地说/home,使其看起来像这样:

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

移动/home/old_home

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

重新启动或重新安装全部

重新启动或重新安装所有与此:

sudo mount -a

10
欢迎来到Ask Ubuntu!虽然从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
伊利亚·卡根

7

确实。这是轻松更改特定用户的主目录位置的好方法。在阅读问题时,我知道这应该是全局的/ home目录。在这种情况下,您可以在另一台设备上创建分区,手动将所有文件移到该设备上,然后将设备更改为/ etc / fstab文件本身中的挂载点


2

好的,我发现此方法可行的唯一方法是创建另一个用户,赋予它管理员权限,注销主ID,使用新ID登录,然后使用usermod命令。


0

任务:

  • 检查可用性并格式化两个硬盘:“ WD Purple”和“ WD Gold”。
  • 将两个硬盘装载到Ubuntu文件系统。
  • 将HOME文件夹移至“ WD Gold”硬盘。

相关链接:

格式化磁盘

将所有必要的SATA和电源线插入硬盘。加载Ubuntu。按下键盘,然后输入“磁盘”。“磁盘”实用程序将打开: 在此处输入图片说明

在此实用程序中,您可以将硬盘格式化为Ext4文件系统。否则,使用以下命令格式化磁盘:

  1. fdisk(man fdisk);
  2. 分手(man parted);
  3. mkfs(man mkfs)

例如,但是我不确定参数,因为使用了GUI“磁盘”:

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

请记住,格式化将删除目标硬盘上的所有内容。如果硬盘上有任何数据并且您不想丢失它,则可以跳过此步骤。

慢速格式化需要花费大量时间:4TB磁盘从16到20小时不等。

永久挂载磁盘

# 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

从命令行移动HOME

# 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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.