手册:MIPS/安装/准备磁盘
MIPS Handbook |
---|
安装 |
关于安装 |
选择安装媒介 |
配置网络 |
准备磁盘 |
安装stage3 |
安装基本系统 |
配置Linux内核 |
配置系统 |
安装系统工具 |
配置系统引导程序Bootloader |
收尾安装工作 |
使用Gentoo |
Portage介绍 |
USE标记 |
Portage功能特性 |
初始化脚本(Initscript)系统 |
环境变量 |
使用Portage |
文件和目录 |
变量 |
混合使用不同的软件分支 |
额外的工具 |
定制Portage树 |
高级特性 |
网络配置 |
入门 |
高级配置 |
模块化网络 |
无线 |
添加功能 |
动态管理 |
块设备简介
块设备
让我们来好好看看Gentoo Linux以及普通Linux中有关磁盘方面的知识,包括块设备、分区和Linux文件系统。一旦磁盘的来龙去脉都了解了,我们将设置分区和文件系统以进行安装。
首先,让我们来看看块设备。SCSI和SATA磁盘以/dev/sda,/dev/sdb,/dev/sdc等形式被标注。在更先进的设备中,基于PCI Express的NVMe固态磁盘一般以/dev/nvme0n1,/dev/nvme0n2等形式被标注。
下表将帮助读者确定在系统中哪里可以找到块设备的类型:
设备类型 | 默认设备句柄 | 社论笔记和注意事项 |
---|---|---|
SATA,SAS,SCSI 或 USB 闪存 | /dev/sda | 从大约 2007 年到现在,这可能是 Linux 中最常用的设备句柄。这类设备可以连接在 SATA 总线,SCSI,USB 总线上作为块储存。例如,在第一个 SATA 设备的第一个分区称为 /dev/sda1。 |
NVM Express (NVMe) | /dev/nvme0n1 | NVMe设备是最新的固态技术,它连接在 PCI Express 总线,并且拥有市面上最快的传输速度。2014 年前后的系统可能会支持 NVMe 硬件。在第一个 NVMe 设备的第一个分区称为 /dev/nvme0n1p1。 |
MMC,eMMC 和 SD | /dev/mmcblk0 | 嵌入式 MMC 设备,SD 卡和其它类型的记忆卡 可以作为数据存储使用。也就是说,许多系统可能不允许从这些类型的设备启动。建议不使用这些设备用来安装 Linux,而是考虑用它们来传输文件,这也是它们的设计目的。另外,它们可以用来做短期的备份。 |
上面的块设备代表磁盘的抽象接口。用户程序可以使用这些块设备来与你的磁盘进行交互,而无需担心驱动器到底是 SATA,SCSI 还是其他什么东西。该程序可以把磁盘当作一系列连续的,可随机访问的 4096 字节块(4K)的存储。
Handbook:MIPS/Blocks/Disks/zh-cn
创建文件系统
介绍
现在分区已经创建,该在上面设置文件系统了。下一章节中描述了 Linux 所支持的众多文件系统。知道使用哪一个文件系统的读者可以继续阅读为分区应用文件系统。剩下的人应该学习可用的文件系统……
文件系统
Linux支持数十种文件系统,尽管其中许多只为特定目的而被部署。在mips架构上只能找到稳定的某些文件系统 - 建议在为重要分区选择更具实验性的文件系统之前查阅文件系统及其支持状态。ext4是推荐的全平台通用的文件系统。
:下一代文件系统,提供许多高级功能,例如快照、通过校验和进行自我修复、透明压缩、子卷和集成 RAID。不能保证 5.4.y 之前的内核在生产中与 btrfs 一起使用是安全的,因为对严重问题的修复仅存在于 LTS 内核分支的最新版本中。文件系统损坏问题在较旧的内核分支上很常见,任何早于 4.4.y 的版本都特别不安全且容易损坏。启用压缩后,较旧的内核(比 5.4.y)更可能发生损坏。 RAID 5/6 和配额组在所有版本的 btrfs 上都不安全。此外,当 df 报告由于内部碎片(由 DATA + SYSTEM 块固定但在 METADATA 块中需要的可用空间)导致的可用空间时,btrfs 可能会反直觉地失败使用 ENOSPC 的文件系统操作。此外,对 btrfs 内 128M 范围的单个 4K 引用可能会导致出现可用空间,但无法分配。当 df 报告可用空间时,这也可能导致 btrfs 返回 ENOSPC。安装 sys-fs/btrfsmaintenance 并将脚本配置为定期运行可以通过重新平衡 btrfs 来帮助减少 ENOSPC 问题的可能性,但是当存在可用空间时它不会消除 ENOSPC 的风险。一些工作负载永远不会达到 ENOSPC,而另一些工作负载会。如果 ENOSPC 在生产中的风险是不可接受的,你应该使用别的东西。如果使用 btrfs,请务必避免已知存在问题的配置。除 ENOSPC 外,有关最新内核分支中 btrfs 中存在的问题的信息可在 btrfs wiki 状态页面 上找到。
- ext2
:这是久经考验的真正 Linux 文件系统,但没有元数据日志,这意味着在启动时例行 ext2 文件系统检查可能非常耗时。现在有相当多的新一代日志文件系统可以非常快速地检查一致性,因此通常比非日志文件系统更受欢迎。当系统启动并且文件系统恰好处于不一致状态时,日志文件系统可以防止长时间延迟。
- ext3
:ext2 文件系统的日志版本,除了其他增强的日志模式(如完整数据和有序数据日志)之外,还提供元数据日志以实现快速恢复。它使用 HTree 索引,可以在几乎所有情况下实现高性能。总之,ext3 是一个非常好的和可靠的文件系统。
- ext4
- 最初创建时为 ext3 的一个分支,ext4 带来了新功能、性能改进和删除大小限制,并对磁盘格式进行了适度的更改。它可以跨越高达 1 EB 的卷,最大文件大小为 16 TB。代替经典的 ext2/3 位图块分配 ext4 使用扩展区,这提高了大文件的性能并减少了碎片。 Ext4 还提供了更复杂的块分配算法(延迟分配和多块分配),为文件系统驱动程序提供了更多优化磁盘数据布局的方法。 Ext4 是推荐的通用全平台文件系统。
- f2fs
:Flash-Friendly File System 最初是由三星为与 NAND 闪存一起使用而创建的。截至 2016 年第二季度,这个文件系统仍然被认为是不成熟的,但在将 Gentoo 安装到 microSD 卡、USB 驱动器或其他基于闪存的存储设备上时,它是一个不错的选择。
- JFS
:IBM 的高性能日志文件系统。 JFS 是一个轻量、快速、可靠的基于 B+tree 的文件系统,在各种条件下都具有良好的性能。
:一个基于 B+tree 的日志文件系统,具有良好的整体性能,尤其是在以更多 CPU 周期为代价处理许多小文件时。 ReiserFS 版本 3 包含在主线 Linux 内核中,但不建议在最初安装 Gentoo 系统时使用。存在较新版本的 ReiserFS 文件系统,但是它们需要对主线内核进行额外的修补才能使用。
:具有元数据日志的文件系统,具有强大的功能集并针对可扩展性进行了优化。 XFS 似乎对各种硬件问题不太宽容,但已不断升级以包含现代功能。
- VFAT
- 也称为 FAT32,Linux 支持但不支持标准的 UNIX 权限设置。它主要用于与其他操作系统(Microsoft Windows 或 Apple 的 OSX)的互操作性,但也是某些系统引导加载程序固件(如 UEFI)的必需品。
- NTFS
- 这个“新技术”文件系统是自 Windows NT 3.1 以来 Microsoft Windows 的旗舰文件系统。与上面的 vfat 类似,它不存储 BSD 或 Linux 正常运行所需的 UNIX 权限设置或扩展属性,因此不应将其用作根文件系统。它应该“仅”用于与Microsoft Windows 系统的互操作性(注意强调“仅”)。
为分区应用文件系统
在一个分区或卷上创建一个文件系统,这里有用于每一个可能的分区的工具。 单击下表中的文件系统名称,了解每个文件系统的更多信息:
文件系统 | 创建命令 | 在最小化 CD 中已包含? | 软件包 |
---|---|---|---|
btrfs | mkfs.btrfs | Yes | sys-fs/btrfs-progs |
ext2 | mkfs.ext2 | Yes | sys-fs/e2fsprogs |
ext3 | mkfs.ext3 | Yes | sys-fs/e2fsprogs |
ext4 | mkfs.ext4 | Yes | sys-fs/e2fsprogs |
f2fs | mkfs.f2fs | Yes | sys-fs/f2fs-tools |
jfs | mkfs.jfs | Yes | sys-fs/jfsutils |
reiserfs | mkfs.reiserfs | Yes | sys-fs/reiserfsprogs |
xfs | mkfs.xfs | Yes | sys-fs/xfsprogs |
vfat | mkfs.vfat | Yes | sys-fs/dosfstools |
NTFS | mkfs.ntfs | Yes | sys-fs/ntfs3g |
比如,在示例分区结构中,有 使用 FAT32 的引导分区()和使用 ext4 的根分区(/dev/sda5),下面的命令将会用到:
root #
mkfs.vfat -F 32 /dev/sda1
root #
mkfs.ext4 /dev/sda5
当在一个小的分区(少于8 GiB)上使用 ext2、ext3 或 ext4,则创建文件系统时必须带适当的选项以保留足够的 inode。可以使用以下命令创建文件系统:
root #
mkfs.ext2 -T small /dev/<device>
root #
mkfs.ext3 -T small /dev/<device>
root #
mkfs.ext4 -T small /dev/<device>
这一般将是对于给定的文件系统inode数量的四倍,它的“字节每inode”从16kB每个减少到4kB每个。
现在在新创建的分区(或逻辑卷)上创建文件系统。
激活swap分区
mkswap是用来初始化swap分区的命令:
root #
mkswap /dev/sda10
要激活swap分区,使用swapon:
root #
swapon /dev/sda10
使用上面提到的命令创建和激活swap。
挂载 root 分区
现在分区都已初始化并有文件系统,接下来该挂载那些分区了。使用mount命令,但是不要忘记为每一个创建的分区创建需要的挂载目录。比如示例中我们挂载根分区:
root #
mount /dev/sda5 /mnt/gentoo
如果/tmp/需要放在一个独立分区,确保在挂载后变更它的权限:
root #
chmod 1777 /mnt/gentoo/tmp
后面的介绍中将挂载proc文件系统(一个内核的虚拟接口)和其它内核伪文件系统。不过我们首先安装Gentoo安装文件。