如何将你的 Linux 主目录移动到另一个驱动器
已发表: 2022-01-29想要将您的 Linux 主文件夹移动到另一个驱动器? 这是一个简单而逐步的方法,它应该适用于任何发行版。 移动您的主文件夹意味着您可以重新安装 Linux,而不必担心您的个人文件。
为什么要将您的主文件夹分开?
如果您要设置新机器或向现有机器添加硬盘驱动器,您可能希望将主目录放在与默认位置不同的驱动器上。
现代个人计算机越来越流行的配置是使用中型固态驱动器 (SSD) 来保存您的操作系统,并使用更大的固态混合驱动器 (SSHD) 或传统硬盘驱动器 (HD) 作为数据的主要存储。 或者,您的系统中可能只有一个传统硬盘驱动器,并且您添加了一个新的 HD 以增加存储空间。 无论您出于何种原因,这里都是移动您的主目录的简单且一目了然的操作。
顺便说一句,如果您从头开始安装 Linux 系统,您可能会在 Linux 发行版的安装程序中看到创建单独主目录的选项。 通常,您只需要进入分区选项,创建一个单独的分区,然后将其挂载到“/home”。 但是,如果您已经安装了 Linux 发行版,则可以使用这些说明将当前主目录移动到新位置,而不会丢失任何内容或重新安装操作系统。
现在,在我们开始之前,去进行备份。
相关:如何使用 rsync 备份你的 Linux 系统
识别驱动器
如果您刚刚将驱动器安装到 Linux 计算机上,或者将 Linux 安装到新的多驱动器计算机中的一个驱动器上,然后重新启动,则几乎没有证据表明新驱动器存在。
fdisk
命令将为我们列出驱动器及其分区。
须藤 fdisk -l
滚动输出,直到您识别出新驱动器。 第一个驱动器名为/dev/sda
,第二个驱动器名为 /dev /dev/sdb
,依此类推,最后一个字母每次都增加。 因此/dev/sde
将是系统中的第五个硬盘驱动器。
在此示例中,新驱动器是要安装到系统中的第二个驱动器。 所以我们需要为/dev/sdb
寻找一个条目。
/dev/sdb
在上面突出显示。 您会注意到它没有描述分区的行。 这是一个全新的驱动器,所以它还没有。 我们需要创建分区。 我们可以使用fdisk
来做到这一点。 如果您的硬盘驱动器不是/dev/sdb
,请确保在命令中将/dev/sdb
替换为新硬盘驱动器的实际驱动器标识符。
须藤 fdisk /dev/sdb
当fdisk
提示您输入命令时,请按字母p
。 这将打印硬盘驱动器的分区表。 我们知道它不会有一个,但我们得到了一些关于驱动器的有用信息。 它给了我们一个很好的机会来确保我们要为其创建分区的驱动器是我们打算使用的驱动器。
它告诉我们该驱动器是 1TB 驱动器,这与我们对这台测试机的预期相符,因此我们将继续。
创建分区
按字母n
表示新分区,然后按p
表示主分区。 当您被要求输入分区号时,请按数字1
。
我们将为整个磁盘创建一个分区,因此当提示输入第一个扇区时,我们可以按 Enter 接受默认值。 然后将提示您输入最后一个扇区,Enter 将接受默认值。
虽然fdisk
确认它已经创建了一个 1TB 的 Linux 分区,即分区号 1,但硬盘驱动器上还没有任何变化。 在您向fdisk
发出将更改写入驱动器的命令之前,驱动器不会受到影响。 一旦您确定对我们的选择感到满意,请按字母w
将更改写入驱动器。
分区已写入/dev/sdb
。 让我们看看刚刚发生了什么。 我们将在/dev/sdb
上再次使用fdisk
。
须藤 fdisk /dev/sdb
按字母p
打印该分区表,您会看到现在为驱动器列出了一个分区。 因为它是该驱动器上的第一个分区,所以它被称为/dev/sdb1
。 第二个分区将被称为/dev/sdb2
,依此类推。
我们不想对分区进行任何更改,所以按字母q
退出。
在分区上创建文件系统
我们需要在分区上创建一个文件系统。 这可以通过mkfs
命令轻松实现。 请注意,您必须在命令中包含分区号。 小心输入/dev/sdb1
(分区)而不是/dev/sdb
(驱动器)。
须藤 mkfs -t ext4 /dev/sdb1
将为您创建文件系统,您将返回到命令提示符。
安装新驱动器
要使用新驱动器,我们必须将其上的分区挂载到文件系统中的挂载点。 实际上,准确地说,我们既不挂载驱动器也不是挂载分区,而是挂载文件系统到分区上,方法是将其嫁接到系统的文件系统树上。
/mnt
点和任何地方一样好。 它只是一个临时挂载点,允许我们将数据复制到新驱动器。 我们将使用mount
命令将文件系统挂载到/dev/sdb
的第一个分区上的/mnt
。
须藤挂载/dev/sdb1 /mnt
如果一切顺利,您将返回到命令行且没有错误消息。 让我们看看是否可以将目录更改为新挂载的文件系统。
光盘 /mnt
我们可以。 让我们看看这里有什么。
ls -ahl
我们在我们的新文件系统中。 不需要默认的“lost+found”目录,因此我们可以将其删除。
sudo rm -rf 丢失+找到
复制您的主文件夹
我们需要将旧主目录中的所有内容复制到新挂载的文件系统中。 使用r
(递归)和p
(保留)选项将确保复制所有子目录并保留文件所有权、权限和其他属性。
sudo cp -rp /home/* /mnt
复制完成后,使用ls
环顾四周并验证您的数据是否在新文件系统中的预期位置。 换句话说,如果/mnt
是您的主目录,那么所有内容都存在且正确吗?
ls
戴夫
您可能希望比我们在本文研究的测试机器上更彻底。 作为安全网,我们将重命名并保留您的旧/home
目录,直到您确信可以安全删除它为止。
sudo mv /home /home.orig
我们将创建一个新的空主目录。
须藤 mkdir /home
我们将使用新的空主目录作为新硬盘驱动器上文件系统的挂载点。 我们需要从/mnt
卸载它并在/home
上重新安装它。 请注意,命令umount
在“u”之后没有“n”。
但首先,我们将切换到根目录(使用cd /
)以确保我们不在将包含在挂载或卸载位置的目录中。
光盘 /
sudo umount /dev/sdb1
sudo mount /dev/sdb1 /home/
相关: Linux 目录结构,解释
测试您的新主目录
让我们看看/dev/sdb1
分区的属性现在是什么:
df /dev/sdb1
我们会看到文件系统的名称、分区的大小以及分区的已用和可用空间,重要的是,它的挂载位置。 它现在是我们的/home
目录。 这意味着我们应该能够像旧的/home
目录一样引用它。
如果我们移动到文件系统中的某个任意点,我们应该能够使用~
波浪号快捷方式切换回/home
。
光盘 /
光盘~
密码
ls
光盘 /home
ls
光盘戴夫
ls
ls -a
我们可以使用显式命令和使用~
快捷方式在文件系统中来回移动到/home
。 我们期望的文件夹、文件和点文件都存在。 这一切看起来都很好。
如果缺少任何内容,我们可以将其从/home.orig
目录中复制出来,我们仍然可以在文件系统的根目录中访问该目录。 但这一切看起来都很好。
现在我们需要在每次启动计算机时自动挂载/dev/sdb1
。
编辑 fstab
“fstab”文件包含系统引导时将要挂载的文件系统的描述。 在对其进行任何更改之前,我们将对其进行备份,以便在出现问题时可以返回。
sudo cp /etc/fstab /etc/fstab.orig
现在我们可以编辑 fstab 文件了。 使用您最喜欢的编辑器,我们正在使用gedit
。 任何文本编辑器都可以。
须藤 gedit /etc/fstab
您必须在文件底部添加一行来挂载我们的新/home
目录。 如果您的驱动器和分区标识符与本示例中使用的不同,请将其替换为此处显示的/dev/sdb1
。
- 在行首键入分区的名称,然后按 Tab。
- 键入安装点
/home
,然后按 Tab。 - 键入文件系统描述
ext4
,然后按 Tab。 - 键入安装选项的
defaults
,然后按 Tab。 - 为文件系统转储选项键入数字
0
,然后按 Tab。 - 为文件系统检查选项键入数字
0
。
保存 fstab 文件。
重新启动系统
我们需要重新启动以验证一切都按计划进行,并且您已无缝连接到新的/home
目录。
如果没有,您仍然拥有原始/home
目录和 fstab 文件的安全网,如果需要,可以恢复这些文件。 由于我们采取了预防措施(复制/home
目录和 fstab 文件),您可以轻松地将系统恢复到开始之前的状态。
sudo 现在重新启动
相关:如何使用命令行重启或关闭 Linux
最终检查
当你的系统重新启动时,让我们检查一下你的/home
目录是否真的在你的新硬盘上,并且你的系统没有以某种方式(奇迹般地)恢复到使用旧的/home
目录。
df /dev/sdb1
太好了,它安装在/home
上。 任务完成。
一旦您完全确定不再需要旧/home
目录的安全副本,您可以将其删除:
光盘 /
sudo rm -rf home.orig/
当然,如果您确实意识到某些内容没有从旧的/home
复制到新的/home
,您将能够从我们开始之前所做的备份中检索它。
家,甜蜜的家
现在您已将/home
目录与操作系统分区的其余部分分开,您可以重新安装操作系统,并且您的数据不会受到影响。 您所要做的就是编辑 fstab 文件以将您的第二个驱动器安装在/home
上。
因为所有的点文件都在/home
目录中,所以当您启动各种应用程序时,它们会找到您的所有设置、首选项和数据。
它消除了重新安装的痛苦并消除了升级的风险。
Linux 命令 | ||
文件 | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look ·字符串·类型·重命名· zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
流程 | 别名· screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat ·超时·墙·是·杀死·睡眠· sudo · su ·时间· groupadd · usermod ·组· lshw ·关机·重新启动·停止·关机· passwd · lscpu · crontab ·日期· bg · fg | |
联网 | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
相关:适合开发人员和爱好者的最佳 Linux 笔记本电脑