最近我重新安装了 ubuntu 并创建了两个分区。整个系统位于 SSD 上,/home 位于另一个分区(HD 中)内。但是,我希望 /home 保留在 SSD 上,而 HD 作为第二个 /home,仅用于存储文件。有人能帮助我吗?
注意:如果存在丢失文件的风险,我无法从 HD 上的 /home 释放内存。如果可能的话,我想在 SSD 上创建一个 /home 并重命名旧的 /home,这样系统中就不会发生冲突。
答案1
/home
从HDD 中的单独分区转到默认配置,其中/home
有一个文件夹/
,位于 SSD 中
我们将从运行 Ubuntu 18.04 的 Live USB 执行此操作,以便我们可以使用该/home
分区并将其挂载为/internal_home
。
步骤 1:从 Live USB Ubuntu 启动
选择无需安装即可试用 Ubuntu选项,因为我们想从 USB 而不是内部 SSD 运行 Ubuntu。
/home
第 2 步:找到分区/
的uuid
Ctrl按+ Alt+打开终端T并输入:
sudo blkid > myUUIDs.txt
保持终端打开并转到文件(也称为 Nautilus),找到文件myUUIDs.txt
并双击打开它,这样您就可以轻松复制和粘贴内部驱动器/home
和/
分区的 UUID。您稍后会需要它们。
步骤 3:安装/home
和/
分区
由于这只是暂时的,挂载点是什么并不重要。您可以使用 Nautilus 单击并挂载它们。但是,自动生成的挂载点很难输入。因此我们将使用命令行创建 2 个挂载点并将两个分区挂载在那里。
第一的,将一些临时文件夹作为挂载点
sudo mkdir /internal_root
sudo mkdir /internal_home
第二,挂载两个内部分区
我假设:
1234-UUID-OF-SYSTEM-PARTITION
是您的内部/
(根)分区,1234-UUID-OF-HOME-PARTITION
是您当前的主分区。
复制并粘贴正确的UUID 输入终端使用前请先执行上述第 2 步。
sudo mount --uuid 1234-UUID-OF-SYSTEM-PARTITION /internal_root
sudo mount --uuid 1234-UUID-OF-HOME-PARTITION /internal_home
步骤 4:将主文件夹从其自己的分区复制到 SSD 下/
使用以下命令将旧/home
分区中的所有内容复制到新/home
文件夹。请注意,您不需要创建该文件夹,因为它是作为分区的挂载点创建的。
sudo rsync -aXS --exclude='/*/.gvfs' /internal_home/. /internal_root/home/.
步骤 5:为旧目录创建新的挂载点
我们需要为旧家创建一个新的接入点,以便我们可以使用它来存储数据,我将称之为oldhome
。使用以下命令:
sudo mkdir //internal_root/oldhome
笔记:我不建议将旧主目录挂载在 下/media
。此文件夹通常保留给系统临时自动挂载分区。
替代方案将使用以下命令oldhome
在现有文件夹下创建文件夹:/mnt
sudo mkdir //internal_root/mnt/oldhome
步骤 6:编辑以在 Ubuntu 启动时自动/etc/fstab
挂载oldhome
使用以下命令/etc/fstab
以管理员权限在 gedit 中打开。
sudo -H gedit /internal_root/etc/fstab
查找包含主分区 UUID 的行。请参阅步骤 2 以获取 UUID。将其更改为如下所示:
UUID=1234-UUID-OF-HOME-PARTITION /oldhome ext4 defaults 0 2
旧分区1234-UUID-OF-HOME-PARTITION
的 UUID 号码在哪里/home
第2步。请注意,在此文件中我们不包含/internal_root/
创建oldhome
文件夹时的前缀。
保存文件并退出gedit
。
步骤 7:重新启动计算机并启动至内部 SSD
如果一切顺利,您的/home
并不位于 SSD 中的默认位置。
要使用 Nautilus 访问/oldhome
分区,您需要转到其他地点并点击计算机图标并导航至oldhome
。
希望这可以帮助
答案2
我将尝试使用无需实时启动的方法来回答。
- 启动电脑并等待 grub 菜单出现
- 在 grub 菜单中,选择“默认”选项并按下
e
键 - 编辑以 linux 开头的行,并
init=/bin/bash
在末尾附加 - 按 CTRL+x
- root 提示问题之后
mount -o remount,rw /
- 为你的新家创建新目录:
mkdir /mnt/newhome
- 老山之家:
mount /home
- 安装新家:
mount /dev/ssd_partition /mnt/newhome
- 复制所有数据:
cp -rp /home/* /mnt/newhome/
- 相应地修改
/etc/fstab
/home 挂载点的条目 - 重启
- 利润 :)
答案3
这是一个已有 1 年历史的问题,但对于那些遇到...
我认为你忘记删除旧的 /home它仍然在文件系统中浪费空间(看看/(根)分区的尺寸)
正如其他答案中所解释的,复制/同步新分区中的所有文件
你不需要实时图像
同步
- 使用您喜欢的工具将新分区挂载到某处(我使用了没有 root 权限的 gnome-disks。)
为了方便起见,请为分区指定一个除名称之外的标签,以便磁盘可以使用 /media/username 中的给定标签创建挂载点
- 同步
sudo rsync -aXS --exclude='/*/.gvfs' /home/. /media/my_user/home/.
- 在 /etc/fstab 中添加新分区,但在第 5 步将其注释掉(开头的 #)
# UUID=1234-你的 UID /home ext4 默认值 0 2
为了确定我正在查看哪个主文件夹,我通常会创建一个空文件(这是可选的)
$ touch /media/my_user/home/blahhhhh
释放不再需要的空间
在安全模式下重新启动并获取 root shell(很简单,只需按照屏幕上的消息操作即可)
查看/home,你应该不是查看文件 /home/blahhhh
$ ls /home
因为新的 /home 尚未挂载(fstab 中的行已被注释),而是 / 文件系统的部分可用。
如果你想仔细检查你的新主分区中是否有所有文件,请挂载它并查找文件 /home/blahhhh
$ mkdir /新主页 $ mount /dev/the_new_home_partition /new_home $ ls /新主页
*you may want to use /dev/dev_name instead the UUID: it is shorter to write.*
如果你高兴...删除旧目录下的所有文件
警告 !!!!!! 确定你在哪里,你在做什么......没有回头路
$ rm -fr /主页/*
警告 !!!!!
新的主目录候选分区仍然挂载在 /new_home
编辑 /etc/fstab 并取消注释(删除 #)/home 条目
UUID=1234-你的UID /home ext4 默认值 0 2
8.重启
检查挂载在/(根)上的空间分区
尝试了解自己正在做的事情...如果您犯了错误,您将失去一切...