我对 Ubuntu 还很陌生,这里我的问题涉及到磁盘分区这个有点令人困惑的主题(至少对我来说)。
我最近买了一台新笔记本电脑,配有 250GB SSD 和 1TB HDD 硬盘,简单的想法是将所有应用程序和操作系统安装到 SSD 上,并将所有文件(文档、音乐、视频……)放到 HDD 上。这在 Windows 中很容易做到,因为磁盘会显示出来,但在 Ubuntu 中并非如此。
我知道这个网站上有很多与分区相关的类似问题,但对于像我这样的新手用户来说,这些问题太复杂了(因为我不寻求使用 Windows 进行双启动和相关问题...)。我最近将所有文件(约 150GB)复制到/home/Documents
,执行df -h
命令后,结果如下:
Filesystem Size Used Avail Use% Mounted on
udev 7,8G 0 7,8G 0% /dev
tmpfs 1,6G 9,6M 1,6G 1% /run
/dev/nvme0n1p3 198G 179G 9,0G 96% /
tmpfs 7,8G 16M 7,8G 1% /dev/shm
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 7,8G 0 7,8G 0% /sys/fs/cgroup
/dev/loop4 87M 87M 0 100% /snap/core/4917
/dev/loop0 141M 141M 0 100% /snap/skype/45
/dev/loop2 133M 133M 0 100% /snap/skype/41
/dev/loop1 194M 194M 0 100% /snap/firefox/103
/dev/loop3 194M 194M 0 100% /snap/firefox/107
/dev/loop5 144M 144M 0 100% /snap/gnome-calendar/28
/dev/nvme0n1p1 746M 25M 722M 4% /boot/efi
tmpfs 1,6G 88K 1,6G 1% /run/user/1001
如果在 198GB 分区上除了 179GB 的已用空间外没有看到任何 HDD 磁盘,则意味着该/home/Documents
目录位于 SSD 上。我认为,这也适用于/home/Music
、/home/Pictures
等。
为了查看我的硬盘到底在哪里,我执行了以下lsblk
命令:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931,5G 0 disk
loop0 7:0 0 140M 1 loop /snap/skype/45
loop1 7:1 0 193,6M 1 loop /snap/firefox/103
loop2 7:2 0 132,1M 1 loop /snap/skype/41
loop3 7:3 0 193,7M 1 loop /snap/firefox/107
loop4 7:4 0 86,9M 1 loop /snap/core/4917
loop5 7:5 0 143,5M 1 loop /snap/gnome-calendar/28
nvme0n1 259:0 0 238,5G 0 disk
├─nvme0n1p1 259:1 0 750M 0 part /boot/efi
├─nvme0n1p2 259:2 0 5G 0 part
├─nvme0n1p3 259:3 0 201G 0 part /
└─nvme0n1p4 259:4 0 31,8G 0 part [SWAP]
就在那里 ( sda
)!由于没有挂载点,我认为我的问题可以转化为“如何将 sda 挂载点设置为/home/Documents
、/home/Music
、/home/Pictures
目录等?” 真的是这样吗(我问这个问题是为了澄清术语)?
如果是这样,我的问题就归结为两个问题:
- 你如何将这些
/home
目录设置为位于 HDD 上,以及 - 你如何确定所有应用程序都将安装在 SSD 上(前提是你没有安装到上述目录中)。
我意识到这个问题可能已经在其他地方得到解答了,但我认为在这里向像我这样的新用户澄清术语和基本原则是有用的。
我衷心感谢大家的帮助,如果问题重复,我深感抱歉。
答案1
好的,我已经设法让所有东西都正常工作(在@oldfred 的大力帮助下),我想以简明扼要的形式发布此问题的答案,以方便任何遇到此问题的迷茫之人(就像我一样)。我还想澄清术语(例如分区、安装等的含义),因为如果您是 Linux 和 Ubuntu 新手,发布正确的问题可能会非常令人困惑和困难。此外,我以扩展形式编写了所有内容,因为仅将代码放入答案中对首次使用 Linux 的用户非常无益。如果此答案中的任何内容不真实,请您提醒我错误,我会编辑答案。
1.分区
在购买具有双磁盘设置(较小的 SDD 和较大的 HDD)的新计算机时,活动磁盘将默认为安装 Ubuntu 的磁盘(通常是 SSD,除非在安装过程中另有说明 - 有关在安装 Ubuntu 期间进行磁盘分区的详细指南,请参阅这里)。这也意味着,所有/home
目录文件(例如Documents
、Videos
等)都将存储在 SSD 上。但是,这些“固定”文件(文档、音乐、视频、图片)不需要 SSD 的改进性能,因此我们最好将它们放在 HDD 上(以释放 SSD 上的空间用于程序和应用程序)。
Ubuntu 对磁盘的处理方式可能会让 Windows 用户感到厌烦,因为在 Windows 中,你可以轻松地操作目录中的不同磁盘Computer
(磁盘分别标记为 :C、:D 等)。为了简化这一过程,我强烈建议分区(您可以使用终端命令轻松安装它sudo apt-get install gparted
)。在 GParted 中,您可以轻松查看所有磁盘及其各自的分区以及它们的使用百分比。分区的本质含义正如其词义 - 将可用磁盘空间分成多个部分以用于不同用途。现在,我们的 HDD 磁盘通常标记为/dev/sdX
,其中 X 是字母 a、b...(取决于您有多少个内部 HDD)。在 GParted 的右上角,您可以在所有可用的内部磁盘之间切换(它们也标有各自的大小)。默认情况下,HDD 通常显示为灰色,其空间未分配且未分区。要开始使用磁盘,我们首先需要对其进行分区:
1.1首先我们需要在 下创建一个分区表Device/Create Partition Table
。Ubuntu 最标准的表是 GUID 分区表或下拉菜单中的 gpt,因此您可以使用它。
1.2创建表后,我们可以对磁盘进行分区。由于我们预期硬盘的用途是存储,因此我们不需要将磁盘分成几部分,而只需创建一个与硬盘大小相同的大分区。ext4可以用作标准文件格式,其大小默认设置为整个未分配(可用)空间,分区类型只是主分区。阅读更多有关不同类型的分区的信息这里。
警告 分区将删除分区前存储在磁盘上的所有信息,因此请务必在执行此操作时进行相关备份。在我们的例子中,磁盘是新的,因此是空的,所以不需要这样做。
另外,请务必通过单击绿色勾号来应用形成的分区。
2. 安装
通过分区我们已经“激活”了磁盘以供使用,但我们仍然需要让计算机“看到”这个磁盘。这就是挂载的作用 - 它将目录分配给某个磁盘。因此,保存到此目录中的任何文件都将保存在该磁盘上。我遇到了 2 个首选挂载点(我们现在将绑定/挂载磁盘的目录/文件):Computer/media
或Computer/mnt
。当然这些是不是您将要必须安装磁盘,但社区似乎主要关注这两个选择。
2.1首先,我们将在这两个目录中创建一个目录,然后将所有文档放入其中(这是可取的,因为/mnt
系统也会将其用于其他用途)。我将命名目录data
并按如下方式创建它:
sudo mkdir /mnt/data
2.2接下来,由于我们正在系统文件中搜索,我们需要访问形成的目录/Computer/mnt/data
(如果没有此步骤,文件将显示在/home
文件夹中锁定)。使用以下命令:
sudo chown $USER:$USER /mnt/data
其中 $USER 由您自己的用户名替换(如果您不确定,请whoami
在终端中输入)。
2.3接下来,我们希望将磁盘永久挂载到(每次系统启动后)。为此,我们首先需要确定磁盘的 UUID(通用唯一标识符)。sudo blkid
在终端中输入。输出应如下所示(请记住,HDD 磁盘标记为sdX#
,其中 X 是字母 a、b...,# 是分区号):
/dev/sda1: UUID="9ea774e9-f5d9-4fd0-9466-dc1447b52402" TYPE="ext4" PARTLABEL="HDD Storage" PARTUUID="c707796f-8bf9-4e11-8841-17adaa79282e"
复制“”之间的数字(在本例中为 9ea774e9-f5d9-4fd0-9466-dc1447b52402)。这样,我们将通过在终端中输入以下内容来编辑 fstab 文档:
sudo -H gedit /etc/fstab
将弹出一个新文档,在文档末尾添加:
UUID=XXXX /mnt/data ext4 relatime 0 2
第一列标识磁盘(用您之前复制的数字替换 XXXX),第二列确定磁盘安装点,第三列确定磁盘上数据的格式(如果您在磁盘分区期间选择了任何其他格式选项,请务必更改此格式),后面的列现在不那么重要了。然后保存文档并关闭它。如果出现以下任何警告类型随后显示在终端中,您可以忽略它们,如链接中所述。
2.4要完成磁盘安装,请在终端中执行以下命令:
sudo mount -a
要查看您的磁盘现在是否已安装,请转到Disks
Ubuntu 应用程序,定位到有问题的磁盘,并在部分底部Contents
注明安装点。
3. 在 /home 文件夹中创建链接
现在是时候将所有“固定”文件移动到新安装的 HDD 上了。我选择移动Desktop
、、、和目录。这确保只有这些文档会被移动,Documents
而不会移动 /home 目录中安装的任何应用程序(您可以通过按 ctrl+hMusic
来查看这些应用程序),因为有些指南建议将整个目录移动到 HDD 磁盘。Videos
Pictures
Downloads
/home
3.1对于您想要移动的每个目录,只需在终端中输入:
mv <dir> <location>
例如,Music
从/home
目录移动到/mnt/data
另一个目录:
mv Music /mnt/data
(移动时,请确保您位于/home
终端的目录中。如果不是,请键入cd ~
)
3.2最后,我们在/home
文件夹中创建这些文件的链接,以便于访问:
ln -s /mnt/data/<dir> $HOME/<dir>
因此,对于我们的例子来说:
ln -s /mnt/data/Music $HOME/Music
对每个要移动的目录都执行此操作,然后就大功告成了。
这是我能找到的最简单的解决方案,尽管这里有很多(针对特定目的)解决方案。我希望我夸张的清晰度可以让未来的新 Linux 用户不要过早放弃这个乍一看非常烦人但随后却非常令人满意的操作系统。