pla*_*tor 14 installation ssd fstab mount hard-drive
我很擅长窗户,现在我感觉自己像个彻头彻尾的白痴。
我有一个用于 ubuntu 的 SSD,想将我的大部分程序安装到单独的 HDD 上,但我不知道如何安装。
我尝试过的所有搜索都只出现在双引导安装中。
sou*_*rce 26
Windows 和 GNU/Linux 之间存在重大差异。在 Windows 上,每个程序及其依赖的所有库都安装在一个单独的文件夹中,这是很常见的。由于对于使用它们的每个程序多次安装库,这通常会导致大量浪费的磁盘空间。
在 Linux 上,程序是按照文件系统层次结构标准(FHS) 安装的。这意味着,程序所依赖的库都安装在一个公共的专用位置,因此它们通常只安装一次,无论有多少程序使用它们。此外,程序是以这样一种方式构建的,即它们都使用某个库的相同版本。这节省了磁盘空间(和运行时的 RAM),但有一个缺点,即不能在不同的分区或硬盘上自由地安装程序,至少在不编辑系统配置文件(例如 /etc/ld.so.conf.d)的情况下不能以包含不同的库文件夹)。
由于 Debian 软件包系统是在考虑 FHS 的情况下实现的,据我所知,没有简单的方法可以将 Debian 软件包安装到与它们打算放置的文件夹不同的文件夹中并让它们工作而无需手动移动并在之后编辑文件。这是因为路径通常在编译时被硬编码。因此,即使您将软件包安装到不同的文件夹,例如通过dpkg --instdir=folder/ package.deb在命令行上使用,程序仍将在“/etc”中查找其配置,而不是“文件夹/etc”中,而是随附的配置文件包当然被安装到“文件夹/等”......该程序也不会被添加到菜单中,因为菜单文件应该在“/usr/share应用程序”中,而不是在文件夹/usr/share/中应用程序。
您当然可以从源代码手动配置和编译程序,让它在您喜欢的任何位置安装二进制和数据部分,同时仍将配置文件安装到 FHS 兼容位置,但这是我只推荐的高级用户。如果您要从源代码编译,请查看 checkinstall,这是一个自动创建 debian 包的工具。
linuxfromscratch 上建议的另一种选择是将包解压缩到合适的位置,然后在相应的 FHS 位置创建指向所有已安装文件的符号链接。
由于在评论中您指的是游戏:许多不是通过 Ubuntu 软件中心购买的游戏都是作为安装程序可执行文件提供的,然后当然可以将它们安装到任何文件夹中,通常是您的主目录的子文件夹。使用 WINE 运行的 Windows 游戏也可以安装在您想要的任何目录中。对于 wine,存在一个名为 WINEPREFIX 的环境变量,您可以使用它来设置许多独立的 WINE 文件夹,每个文件夹都包括自己的虚拟 C: 驱动器。阅读 WINE 手册页了解更多信息。
即使游戏/程序以 Debian 软件包的形式出现,您也可以在您最喜欢的档案管理器中查看软件包内容。如果游戏要安装在 /opt 中,您通常可以安全地将其安装到不同的文件夹中,因为 /opt 通常用作不遵守 FHS 的程序的安装位置。
使用您刚安装的 Ubuntu 版本启动外部 USB 磁盘,我假设/dev/sda是您的 SSD,/dev/sdb是您的 HDD。
使用gparted在您的 HDD 上创建一个分区以包含您要安装的所有应用程序(假设为 64 GB),我假设这将是您将在 HDD ( /dev/sbd3)上创建的第三个分区
执行以下命令:
mkdir /media/apps
mount /dev/sdb3 /media/apps
mkdir /media/apps/usr
cp --preserve=all --recursive /opt /media/apps
cp --preserve=all --recursive /usr/bin /media/apps/usr
Run Code Online (Sandbox Code Playgroud)sudo nano在fstab对/dev/sda1/etc/包括后下列正确的/条目(根目录)
/dev/sdb3 /media/apps ext4 errors=remount-ro 0 0
/opt /media/apps/opt none defaults,bind 0 0
/usr/bin /media/apps/usr/bin none defaults,bind 0 0
Run Code Online (Sandbox Code Playgroud)重新启动并测试
Unix / Linux / Ubuntu 被认为是一个服务器操作系统,后来才想到桌面,而 Windows 被认为是一个桌面操作系统,而服务器是事后才想到的。
因此,Linux文件系统层次结构标准允许您将无限数量的驱动器/分区放置在任何位置,并将它们绑定到正确的驱动器或分区,并且对用户完全透明,而 Windows 操作系统仅限于最多 24 个可访问的驱动器/分区(C:通过Z:asA:和B:保留用于软盘。)
您自己安装的大多数应用程序都安装在/opt/和 中/usr/bin,因此请正常安装 Ubuntu,然后使用以下步骤,其中我假设/dev/sda是您的 SSD、/dev/sdb您的 HDD 和/dev/sdd您的 USB 记忆棒:
/dev/sbd3)上创建的第三个分区将该分区挂载到临时目录中:
mkdir /media/apps
mount /dev/sdb3 /media/apps
Run Code Online (Sandbox Code Playgroud)复制现有的/opt和/usr/bin在那里:
mkdir /media/apps/usr
cp --preserve=all --recursive /opt /media/apps
cp --preserve=all --recursive /usr/bin /media/apps/usr
Run Code Online (Sandbox Code Playgroud)sudo nano在fstab对/dev/sda1/etc/包括后下列正确的/条目(根目录)
/dev/sdb3 /media/apps ext4 errors=remount-ro 0 0
/opt /media/apps/opt none defaults,bind 0 0
/usr/bin /media/apps/usr/bin none defaults,bind 0 0
Run Code Online (Sandbox Code Playgroud)重新启动并测试
/dev/sda1/opt并/dev/sda1/usr/bin回收目前仍在使用的磁盘空间,这些已安装在其他地方的过时目录。警告:最后一个命令也可能使您的系统崩溃,/dev/sbd3因为硬件故障导致无法挂载,这种情况不太可能发生
| 归档时间: |
|
| 查看次数: |
55085 次 |
| 最近记录: |