2017年3月

SSH 文件传输协议 SSH File transfer protocol (SFTP)也称为 通过安全套接层的文件传输协议 File Transfer protocol via Secure Socket Layer , 以及 FTPS 都是最常见的安全 FTP 通信技术,用于通过 TCP 协议将计算机文件从一个主机传输到另一个主机。SFTP 和 FTPS 都提供高级别文件传输安全保护,通过强大的算法(如 AES 和 Triple DES)来加密传输的数据。

但是 SFTP 和 FTPS 之间最显着的区别是如何验证和管理连接。

FTPS

FTPS 是使用安全套接层(SSL)证书的 FTP 安全技术。整个安全 FTP 连接使用用户 ID、密码和 SSL 证书进行身份验证。一旦建立 FTPS 连接,FTP 客户端软件将检查目标 FTP 服务器证书是否可信的。

如果证书由已知的证书颁发机构(CA)签发,或者证书由您的合作伙伴自己签发,并且您的信任密钥存储区中有其公开证书的副本,则 SSL 证书将被视为受信任的证书。FTPS 所有的用户名和密码信息将通过安全的 FTP 连接加密。

以下是 FTPS 的优点和缺点:

优点:

  • 通信可以被人们读取和理解
  • 提供服务器到服务器文件传输的服务
  • SSL/TLS 具有良好的身份验证机制(X.509 证书功能)
  • FTP 和 SSL 支持内置于许多互联网通信框架中

缺点:

  • 没有统一的目录列表格式
  • 需要辅助数据通道(DATA),这使得难以通过防火墙使用
  • 没有定义文件名字符集(编码)的标准
  • 并非所有 FTP 服务器都支持 SSL/TLS
  • 没有获取和更改文件或目录属性的标准方式

SFTP

SFTP 或 SSH 文件传输协议是另一种安全的安全文件传输协议,设计为 SSH 扩展以提供文件传输功能,因此它通常仅使用 SSH 端口用于数据传输和控制。当 FTP 客户端软件连接到 SFTP 服务器时,它会将公钥传输到服务器进行认证。如果密钥匹配,提供任何用户/密码,身份验证就会成功。

以下是 SFTP 优点和缺点:

优点:

  • 只有一个连接(不需要 DATA 连接)。
  • FTP 连接始终保持安全
  • FTP 目录列表是一致的和机器可读的
  • FTP 协议包括操作权限和属性操作,文件锁定和更多的功能。

缺点:

  • 通信是二进制的,不能“按原样”记录下来用于人类阅读,
  • SSH 密钥更难以管理和验证。
  • 这些标准定义了某些可选或推荐的选项,这会导致不同供应商的不同软件之间存在某些兼容性问题。
  • 没有服务器到服务器的复制和递归目录删除操作
  • 在 VCL 和 .NET 框架中没有内置的 SSH/SFTP 支持。

对比

大多数 FTP 服务器软件这两种安全 FTP 技术都支持,以及强大的身份验证选项。

但 SFTP 显然是赢家,因为它适合防火墙。SFTP 只需要通过防火墙打开一个端口(默认为 22)。此端口将用于所有 SFTP 通信,包括初始认证、发出的任何命令以及传输的任何数据。

FTPS 通过严格安全的防火墙相对难以实现,因为 FTPS 使用多个网络端口号。每次进行文件传输请求(get,put)或目录列表请求时,需要打开另一个端口号。因此,必须在您的防火墙中打开一系列端口以允许 FTPS 连接,这可能是您的网络的安全风险。

支持 FTPS 和 SFTP 的 FTP 服务器软件:

  1. Cerberus FTP 服务器
  2. FileZilla - 最著名的免费 FTP 和 FTPS 服务器软件
  3. Serv-U FTP 服务器

via: http://www.techmixer.com/ftps-sftp/

作者:Techmixer.com 译者:Yuan0302 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

 title=

在这个系列中, 我们会讨论一些阻止黑客入侵你的系统的重要信息。观看这个免费的网络点播研讨会获取更多的信息。

在这个系列的第一部分中,我分享过两种简单的方法来阻止黑客黑掉你的 Linux 主机。这里是另外三条来自于我最近在 Linux 基金会的网络研讨会上的建议,在这次研讨会中,我分享了更多的黑客用来入侵你的主机的策略、工具和方法。完整的网络点播研讨会视频可以在网上免费观看。

简单的 Linux 安全提示 #3

Sudo。

Sudo 非常、非常的重要。我认为这只是很基本的东西,但就是这些基本的东西会让我的黑客生涯会变得更困难一些。如果你没有配置 sudo,还请配置好它。

还有,你主机上所有的用户必须使用他们自己的密码。不要都免密码使用 sudo 执行所有命令。当我有一个可以无需密码而可以 sudo 任何命令的用户,只会让我的黑客活动变得更容易。如果我可以无需验证就可以 sudo ,同时当我获得你的没有密码的 SSH 密钥后,我就能十分容易的开始任何黑客活动。这样,我就拥有了你机器的 root 权限。

保持较低的超时时间。我们喜欢劫持用户的会话,如果你的某个用户能够使用 sudo,并且设置的超时时间是 3 小时,当我劫持了你的会话,那么你就再次给了我一个自由的通道,哪怕你需要一个密码。

我推荐的超时时间大约为 10 分钟,甚至是 5 分钟。用户们将需要反复地输入他们的密码,但是,如果你设置了较低的超时时间,你将减少你的受攻击面。

还要限制可以访问的命令,并禁止通过 sudo 来访问 shell。大多数 Linux 发行版目前默认允许你使用 sudo bash 来获取一个 root 身份的 shell,当你需要做大量的系统管理的任务时,这种机制是非常好的。然而,应该对大多数用户实际需要运行的命令有一个限制。你对他们限制越多,你主机的受攻击面就越小。如果你允许我 shell 访问,我将能够做任何类型的事情。

简单的 Linux 安全提示 #4

限制正在运行的服务。

防火墙很好,你的边界防火墙非常的强大。当流量流经你的外部网络时,有几家防火墙产品可以帮你很好的保护好自己。但是防火墙内的人呢?

你正在使用基于主机的防火墙或者基于主机的入侵检测系统吗?如果是,请正确配置好它。怎样可以知道你的正在受到保护的东西是否出了问题呢?

答案是限制当前正在运行的服务。不要在不需要提供 MySQL 服务的机器上运行它。如果你有一个默认会安装完整的 LAMP 套件的 Linux 发行版,而你不会在它上面运行任何东西,那么卸载它。禁止那些服务,不要开启它们。

同时确保用户不要使用默认的身份凭证,确保那些内容已被安全地配置。如何你正在运行 Tomcat,你不应该可以上传你自己的小程序(applets)。确保它们不会以 root 的身份运行。如果我能够运行一个小程序,我不会想着以管理员的身份来运行它,我能访问就行。你对人们能够做的事情限制越多,你的机器就将越安全。

简单的 Linux 安全提示 #5

小心你的日志记录。

看看它们,认真地,小心你的日志记录。六个月前,我们遇到一个问题。我们的一个顾客从来不去看日志记录,尽管他们已经拥有了很久、很久的日志记录。假如他们曾经看过日志记录,他们就会发现他们的机器早就已经被入侵了,并且他们的整个网络都是对外开放的。我在家里处理的这个问题。每天早上起来,我都有一个习惯,我会检查我的 email,我会浏览我的日志记录。这仅会花费我 15 分钟,但是它却能告诉我很多关于什么正在发生的信息。

就在这个早上,机房里的三台电脑死机了,我不得不去重启它们。我不知道为什么会出现这样的情况,但是我可以从日志记录里面查出什么出了问题。它们是实验室的机器,我并不在意它们,但是有人会在意。

通过 Syslog、Splunk 或者任何其他日志整合工具将你的日志进行集中是极佳的选择。这比将日志保存在本地要好。我最喜欢做是事情就是修改你的日志记录让你不知道我曾经入侵过你的电脑。如果我能这么做,你将不会有任何线索。对我来说,修改集中的日志记录比修改本地的日志更难。

它们就像你的很重要的人,送给它们鲜花——磁盘空间。确保你有足够的磁盘空间用来记录日志。由于磁盘满而变成只读的文件系统并不是一件愉快的事情。

还需要知道什么是不正常的。这是一件非常困难的事情,但是从长远来看,这将使你日后受益匪浅。你应该知道什么正在进行和什么时候出现了一些异常。确保你知道那。

第三篇也是最后的一篇文章里,我将就这次研讨会中问到的一些比较好的安全问题进行回答。现在开始看这个完整的免费的网络点播研讨会吧。

Mike Guthrie 就职于能源部,主要做红队交战和渗透测试。


via: https://www.linux.com/news/webinar/2017/how-keep-hackers-out-your-linux-machine-part-2-three-more-easy-security-tips

作者:MIKE GUTHRIE 译者:zhousiyu325 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Vim——正如你可能已经了解的那样——是一个包含很多特性的强大的编辑器。我们已经写了好多关于 Vim 的教程,覆盖了 基本用法插件, 还有一些 其他的 有用的 特性。鉴于 Vim 提供了多如海洋的特性,我们总能找到一些有用的东西来和我们的读者分享。

在这篇教程中,我们将会重点关注你如何在编辑窗口执行外部的命令,并且访问命令行 shell。

但是在我们开始之前,很有必要提醒一下,在这篇教程中提及到的所有例子、命令行和说明,我们已经在 Ubuntu 14.04 上测试过,我们使用的的 Vim 版本是 7.4 。

在 Vim 中执行外部命令

有的时候,你可能需要在 Vim 编辑窗口中执行外部的命令。例如,想象一下这种场景:你已经在 Vim 中打开了一个文件,并做了一些修改,然后等你尝试保存这些修改的时候,Vim 抛出一个错误说你没有足够的权限。

在 Vim 中执行命令行

现在,退出当前的 vim 会话,重新使用足够的权限打开文件将意味着你会丢失所做的所有修改,所以,你可能赞同,在大多数情况不是只有一个选择。像这样的情况,在编辑器内部运行外部命令的能力将会派上用场。

稍后我们再回来上面的用例,但是现在,让我们了解下如何在 vim 中运行基本的命令。

假设你在编辑一个文件,希望知道这个文件包含的行数、单词数和字符数。为了达到这个目的,在 vim 的命令行模式下,只需要输入冒号 :,接下来一个感叹号 !,最后是要执行的命令(这个例子中使用的是 wc)和紧接着的文件名(使用 % 表示当前文件)。

:! wc %

这是一个例子:

填入的上面提及的命令行准备执行:

命令准备在 vim 中执行

下面是终端上的输出:

命令输出

在你看到输出之后,输入回车键,你将会退回到你的 vim 会话中。

你正在编写代码或者脚本,并且希望尽快知道这段代码或者脚本是否包含编译时错误或者语法错误,这个时候,这种特性真的很方便。

继续,如果需求是添加输出到文件中,使用 :read ! 命令。接下来是一个例子:

:read ! wc %

read 命令会把外部命令的输出作为新的一行插入到编辑的文件中的当前行的下面一行。如果你愿意,你也可以指定一个特定的行号——输出将会添加到特定行之后。

例如,下面的命令将会在文件的第二行之后添加 wc 的输出。

:2read ! wc %

注意: 使用 $ 在最后一行插入, 0 在第一行前面插入。

现在,回到最开始我们讨论的一个用例,下面的命令将会帮助你保存文件而不需要先关闭文件(这将意味着没有保存的内容不会丢失)然后使用 sudo 命令重新打开。

:w ! sudo tee %

在 Vim 中访问 shell

除了可以执行单独的命令,你也可以在 vim 中放入自己新创建的 shell。为了达到这种目的,在编辑器中你必须要做的是运行以下的命令:

:shell

或者:

:sh

当你执行完了你的 shell 任务,输入 exit —— 这将带你回到原来离开的 Vim 会话中。

要谨记的漏洞

虽然在真实世界中,能够访问的 shell 绝对符合它们的用户权限,但是它也可以被用于提权技术。正如我们在早期的一篇文章(在 sudoedit 上)解释的那样,即使你提供给一个用户 sudo 的权限只是通过 Vim 编辑一个文件,他们仍可以使用这项技术从编辑器中运行一个新的 shell,而且他们可以做 root 用户或者管理员用户可以做的所有内容。

总结

能够在 Vim 中运行外部命令在好多场景中(有些场景我们已经在这篇文章中提及了)都是一个很有用的特性。这个功能的学习曲线并不麻烦,所以初学者和有经验的用户都可以好好使用它。

你现在使用这个特性有一段时间了吗?你是否有一些东西想分享呢?请在下面的评论中留下你的想法。


via: https://www.howtoforge.com/tutorial/how-to-access-shell-or-run-external-commands-from-within-vim/

作者:Himanshu Arora 译者:yangmingming 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在过去十年中,Fedora 项目一直都在为另外一个操作系统构建相同软件包。然而,到 2017 年 3 月 31 日,它将会随着 Red Hat Enterprise Linux(RHEL)5 一起停止这项工作

EPEL 的简短历史

RHEL 是 Fedora 发布版本的一个子集的下游重建版本,Red Hat 愿为之支持好多年。虽然那些软件包构成了完整的操作系统,但系统管理员一直都需要“更多”软件包。在 RHEL-5 之前,许多那些软件包会由不同的人打包并提供。随着 Fedora Extras 逐渐包含了更多软件包,并有几位打包者加入了 Fedora,随之出现了一个想法,结合力量并创建一个专门的子项目,重建特定于 RHEL 版本的 Fedora 软件包,然后从 Fedora 的中心化服务器上分发。

经过多次讨论,然而还是未能提出一个引人注目的名称之后,Fedora 创建了子项目 Extra Packages for Enterprise Linux(简称 EPEL)。在首次为 RHEL-4 重建软件包时,其主要目标是在 RHEL-5 发布时提供尽可能多的用于 RHEL-5 的软件包。打包者做了很多艰苦的工作,但大部分工作是在制定 EPEL 在未来十年的规则以及指导。从所有人能够看到的邮件归档中我们可以看到 Fedora 贡献者的激烈讨论,它们担心将 Fedora 的发布重心转移到外部贡献者会与已经存在的软件包产生冲突。

最后,EPEL-5 在 2007 年 4 月的某个时候上线了,在接下来的十年中,它已经成长为一个拥有 5000 多个源码包的仓库,并且每天会有 20 万个左右独立 IP 地址检查软件包,并在 2013 年初达到 24 万的高峰。虽然为 EPEL 构建的每个包都是使用 RHEL 软件包完成的,但所有这些软件包可以用于 RHEL 的各种社区重建版本(CentOS、Scientific Linux、Amazon Linux)。这意味着随着这些生态系统的增长,给 EPEL 带来了更多的用户,并在随后的 RHEL 版本发布时帮助打包。然而,随着新版本以及重建版本的使用量越来越多,EPEL-5 的用户数量逐渐下降为每天大约 16 万个独立 IP 地址。此外,在此期间,开发人员支持的软件包数量已经下降,仓库大小已缩小到 2000 个源代码包。

收缩的部分原因是由于 2007 年的原始规定。当时,Red Hat Enterprise Linux 被认为只有 6 年活跃的生命周期。有人认为,在这样一个“有限”的周期中,软件包可能就像在 RHEL 中那样在 EPEL 中被“冻结”。这意味着无论何时有可能的修复需要向后移植,也不允许有主要的修改。因为没有人来打包,软件包将不断从 EPEL-5 中移除,因为打包者不再想尝试并向后移植。尽管各种规则被放宽以允许更大的更改,Fedora 使用的打包规则从 2007 年开始不断地改变和改进。这使得在较旧的操作系统上尝试重新打包一个较新的版本变得越来越难。

2017 年 3 月 31 日会发生什么

如上所述,3 月 31 日,红帽将终止 RHEL-5 的支持并不再为普通客户提供更新。这意味着 Fedora 和各种重建版本将开始各种归档流程。对于 EPEL 项目,这意味着我们将跟随 Fedora 发行版每年发布的步骤。

  1. 在 3 月 27 日,任何新版本将不会被允许推送到 EPEL-5,以便仓库本质上被冻结。这允许镜像拥有一个清晰的文件树。
  2. EPEL-5 中的所有包将从主镜像 /pub/epel/5/ 以及 /pub/epel/testing/5/ 移动到 /pub/archives/epel/。 这将会在 27 号开始,因此所有的归档镜像站点可以用它写入磁盘。
  3. 因为 3 月 31 日是星期五,系统管理员并不喜欢周五惊喜,所以它不会有变化。4 月 3 日,镜像管理器将更新指向归档。
  4. 4 月 6 日,/pub/epel/5/ 树将被删除,镜像也将相应更新。

对于使用 cron 执行 yum 更新的系统管理员而言,这应该只是一个小麻烦。系统能继续更新甚至安装归档中的任何软件包。那些直接使用脚本从镜像下载的系统管理员会有点麻烦,需要将脚本更改到 /pub/archive/epel/5/ 这个新的位置。

虽然令人讨厌,但是对于仍使用旧版 Linux 的许多系统管理员也许算是好事吧。由于软件包不断地从 EPEL-5 中删除,各种支持邮件列表以及 irc 频道都有系统管理员惊奇他们需要的哪些软件包消失到哪里了。归档完成后,这将不会是一个问题,因为不会更多的包会被删除了 :)。

对于受此问题影响的系统管理员,较旧的 EPEL 软件包仍然可用,但速度较慢。所有 EPEL 软件包都是在 Fedora Koji 系统中构建的,所以你可以使用 Koji 搜索到较旧版本的软件包。


via: https://fedoramagazine.org/the-end-of-the-line-for-epel-5/

作者:smooge 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

如果你刚开始在 Linux 系统中使用命令行工具,那么你应该知道它是 Linux 操作系统中功能最强大和有用的工具之一。学习的难易程度跟你想研究的深度有关。但是,无论你的技术能力水平怎么样,这篇文章中的一些小贴士和技巧都会对你有所帮助。

在本系列的文章中,我们将会讨论一些非常有用的命令行工具使用小技巧,希望你的命令行使用体验更加愉快。

但是在开始下一步之前,我得强调一点,这篇文章中的测试实例都是在 Ubuntu 14.04LTS 系统下测试通过的。我们使用命令行 Shell 版本是 bash 4.3.11 。

Linux 命令行工具使用的一些小技巧

我们假设你已经掌握了一些 Linux 命令行的基础知识,比如什么是 root 账号及 home 目录,什么是环境变量,如何查看目录内容等等。说明这些小技巧的同时也会介绍涉及到的概念,如果有的话。

轻松切换目录 —— 快捷方式

假设你正在命令行下做一些操作,并且你需要经常在两个目录间来回切换。而且这两个目录在完全不同的两个路径下,比如说,分别在 /home//usr/ 下。你会怎么做呢?

其中,最简单直接的方式就是输入这些目录的全路径。虽然这种方式本身没什么问题,但是却很浪费时间。另外一种方式就是打开两个终端窗口分别进行操作。但是这两种方式使用起来既不方便,也显得没啥技术含量。

你应该感到庆幸的是,还有另外一种更为简捷的方法来解决这个问题。你需要做的就是先手动切换到这两个目录(通过 cd 命令分别加上各自的路径),之后你就可以使用 cd - 命令在两个目录之间来回快速切换了。

例如:

我现在在下面的目录:

$ pwd
/home/himanshu/Downloads

然后,我切换到 /usr/ 路径下的其它目录:

cd /usr/lib/

现在,我可以很方便的使用下面的命令来向前、向后快速地切换到两个目录:

cd -

下面是 cd - 命令的操作截图:

The Linux cd command

有一点我得跟大家强调下,如果你在操作的过程中使用 cd 加路径的方式切换到第三个目录下,那么 cd - 命令将应用于当前目录及第三个目录之间进行切换。

轻松切换目录 —— 相关细节

对于那些有强烈好奇心的用户,他们想搞懂 cd - 的工作原理,解释如下:如大家所知道的那样, cd 命令需要加上一个路径作为它的参数。现在,当 - 符号作为参数传输给 cd 命令时,它将被 OLDPWD 环境变量的值所替代。

The cd command explained

现在应该明白了吧, OLDPWD 环境变量存储的是前一个操作目录的路径。这个解释在 cd 命令的 man 帮助文档中有说明,但是,很遗憾的是你的系统中可能没有预先安装 man 命令帮助工具(至少在 Ubuntu 系统下没有安装)。

但是,安装这个 man 帮助工具也很简单,你只需要执行下的安装命令即可:

sudo apt-get install manpages-posix

然后做如下操作:

man cd

打开 man 帮助文档主页后,你将会看到下面很明确的解释:

—— 当 - 符号被用作 cd 命令的参数值时,将等同于下面的操作命令:

 cd "$OLDPWD" && pwd

毫无疑问, cd 命令设置了 OLDPWD 环境变量值。因此每一次你切换操作目录时,上一个目录的路径就会被保存到这个变量里。这还让我们看到很重要的一点就是:任何时候启动一个新的 shell 实例(包括手动执行或是使用 shell 脚本),都不存在 ‘上一个工作目录’。

Hyphen and the cd command

这也很符合逻辑,因为 cd 命令设置了 OLDPWD 环境变量值。因此,除非你至少执行了一次 cd 命令,否则 OLDPWD 环境变量不会包含任何值。

继续,尽管这有些难以理解, cd -cd $OLDWPD 命令的执行结果并非在所有环境下都相同。比如说,你重新打开一个新的 shell 窗口时。

cd command example

从上面的截图可以清楚的看出,当执行 cd - 命令提示未设置 OLDPWD 值时, cd $OLDPWD 命令没有报任何错;实际上,它把当前的工作目录改变到用户的 home 目录里。

那是因为 OLDPWD 变量目前还没有被设置, $OLDPWD 仅仅是一个空字符串。因此, cd $OLDPWD 命令跟 cd 命令的执行结果是一致的,默认情况下,会把用户当前的工作目录切换到用户的 home 目录里。

最后,我还遇到过这样的要求,需要让 cd - 命令执行的结果不显示出来。我的意思是,有这样的情况(比如说,在写 shell 脚本的时候),你想让 cd - 命令的执行结果不要把目录信息显示出来。那种情况下,你就可以使用下面的命令方式了:

cd - &>/dev/null

上面的命令把文件描述符 2(标准错误)和 1(标准输出)的结果重定向到 /dev/null 目录。这意味着,这个命令产生的所有的错误不会显示出来。但是,你也可以使用通用的 $? 方式来检查这个命令的执行是否异常。如果这个命令执行报错, echo $? 将会返回 1,否则返回 0

或者说,如果你觉得 cd - 命令出错时输出信息没有关系,你也可以使用下面的命令来代替:

cd - > /dev/null

这个命令仅用于将文件描述符 1 (标准输出)重定向到 /dev/null

总结

遗憾的是,这篇文章仅包含了一个跟命令行相关的小技巧,但是,我们已经地对 cd - 命令的使用进行了深入地探讨。建议你在自己的 Linux 系统的命令行终端中测试本文中的实例。此外,也强烈建议你查看 man 帮助文档,然后对 cd 命令进行全面测试。

如果你对这篇文章有什么疑问,请在下面的评论区跟大家交流。同时,敬请关注下一篇文章,我们将以同样的方式探讨更多有用的命令行使用技巧。


via: https://www.howtoforge.com/tutorial/linux-command-line-navigation-tips-and-tricks-part-1/

作者:Ansh 译者:rusking 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

安装 Linux 系统时,可以有两种不同的方式。第一种方式是在一个超快的固态硬盘上进行安装,这样可以保证迅速开机和高速访问数据。第二种方式是在一个较慢但很强大的普通硬盘驱动器上安装,这样的硬盘转速快并且存储容量大,从而可以存储大量的应用程序和数据。

然而,一些 Linux 用户都知道,固态硬盘很棒,但是又很贵,而普通硬盘容量很大但速度较慢。如果我告诉你,可以同时利用两种硬盘来安装 Linux 系统,会怎么样?一个超快、现代化的固态硬盘驱动 Linux 内核,一个容量很大的普通硬盘来存储其他数据。

在这篇文章中,我将阐述如何通过分离 Root 目录和 Home 目录安装 Ubuntu 系统 — Root 目录存于 SSD(固态硬盘)中,Home 目录存于普通硬盘中。

没有多余的硬盘驱动器?尝试一下 SD 卡(内存卡)!

在多个驱动器上安装 Linux 系统是很不错的,并且每一个高级用户都应该学会这样做。然而,还有一种情况使得用户应该这样安装 Linux 系统 - 在低存储容量的笔记本电脑上安装系统。可能你有一台很便宜、没有花费太多的笔记本电脑,上面安装了 Linux 系统,电脑上没有多余的硬盘驱动,但有一个 SD 卡插槽。

这篇教程也是针对这种类型的电脑的。跟随这篇教程,可以为笔记本电脑买一个高速的 SD 卡来存储 Home 目录,而不是使用另一个硬盘驱动。本教程也适用于这种使用情况。

制作 USB 启动盘

首先去这个网站下载最新的 Ubuntu Linux 版本。然后下载 Etcher- USB 镜像制作工具。这是一个使用起来很简单的工具,并且支持所有主流的操作系统。你还需要一个至少有 2GB 大小的 USB 驱动器。

安装好 Etcher 以后,直接打开。点击 选择镜像 Select Image 按钮来制作镜像。这将提示用户浏览、寻找 ISO 镜像,找到前面下载的 Ubuntu ISO 文件并选择。然后,插入 USB 驱动器,Etcher 应该会自动选择它。之后,点击 “Flash!” 按钮,Ubuntu 启动盘的制作过程就开始了。

为了能够启动 Ubuntu 系统,需要配置 BIOS。这是必需的,这样计算机才能启动新创建的 Ubuntu 启动盘。为了进入 BIOS,在插入 USB 的情况下重启电脑,然后按正确的键(Del、F2 或者任何和你的电脑相应的键)。找到从 USB 启动的选项,然后启用这个选项。

如果你的个人电脑不支持 USB 启动,那么把 Ubuntu 镜像刻入 DVD 中。

安装

当用启动盘第一次加载 Ubuntu 时,欢迎界面会出现两个选项。请选择 “安装 Ubuntu” 选项。在下一页中,Ubiquity 安装工具会请求用户选择一些选项。这些选项不是强制性的,可以忽略。然而,建议两个选项都勾选,因为这样可以节省安装系统以后的时间,特别是安装 MP3 解码器和更新系统。(LCTT 译注:当然如果你的网速不够快,还是不要勾选的好。)

勾选了 “准备安装 Ubuntu” Preparing to install Ubuntu 页面中的两个选项以后,需要选择安装类型了。有许多种安装类型。然而,这个教程需要选择自定义安装类型。为了进入自定义安装页面,勾选 “其他” something else 选项,然后点击“继续”。

现在将显示 Ubuntu 自定义安装分区工具。它将显示任何/所有能够安装 Ubuntu 系统的磁盘。如果两个硬盘均可用,那么它们都会显示。如果插有 SD 卡,那么它也会显示。

选择用于 Root 文件系统的硬盘驱动器。如果上面已经有分区表,编辑器会显示出来,请使用分区工具把它们全部删除。如果驱动没有格式化也没有分区,那么使用鼠标选择驱动器,然后点击 “新建分区表” new partition table 。对所有驱动器执行这个操作,从而使它们都有分区表。(LCTT 译注:警告,如果驱动器上有你需要的数据,请先备份,否则重新分区后将永远丢失。)

现在所有分区都有了分区表(并已删除分区),可以开始进行配置了。在第一个驱动器下选择空闲空间,然后点击加号按钮来创建新分区。然后将会出现一个“创建分区窗口”。允许工具使用整个硬盘。然后转到 “挂载点” Mount Point 下拉菜单。选择 / (Root)作为挂载点,之后点击 OK 按钮确认设置。

对第二个驱动器做相同的事,这次选择 /home 作为挂载点。两个驱动都设置好以后,选择要放入引导装载器的驱动器,然后点击 “现在安装” install now ,安装进程就开始了。

从这以后的安装进程是标准安装。创建用户名、选择时区等。

注: 你是以 UEFI 模式进行安装吗?如果是,那么需要给 boot 创建一个 512 MB 大小的 FAT32 分区。在创建其他任何分区前做这件事。确保选择 “/boot” 作为这个分区的挂载点。(有的发行版不允许使用 FAT32 的分区作为 /boot ,而是将 UEFI 分区放到 /boot/efi 下,因此将 /boot 单独放一个分区或置入 / 分区下比较稳妥。)

如果你需要一个交换分区,那么,在创建用于 / 的分区前,在第一个驱动器上进行创建。可以通过点击 ‘+’ 按钮,然后输入所需大小,选择下拉菜单中的 “交换区域” swap area 来创建交换分区。

结论

Linux 最好的地方就是可以自己按需配置。有多少其他操作系统可以让你把文件系统分割在不同的硬盘驱动上?并不多,这是肯定的。我希望有了这个指南,你将意识到 Ubuntu 能够提供的真正力量。

安装 Ubuntu 系统时你会用多个驱动器吗?请在下面的评论中让我们知道。


via: https://www.maketecheasier.com/install-ubuntu-with-different-root-home-hard-drives/

作者:Derrik Diener 译者:ucasFL 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出