TOC

Linux 分区方案(Partition Scheme)

在一次突然断电之后,磁盘出现损坏,fsck 修复的时候提示需要删除文件,一路 y 下来,最后几乎把根目录下大量文件都删除了,直接导致我的 Ubuntu 无法启动(PS:操作肯定是不够谨慎的)。

不幸中的万幸是我的 /home 在另外的分区,所以我的代码和文档基本上都保留下来了。虽说都存在 Git 上,不过那么多项目(可能有大几十个),环境什么的搭建,软件配置,还有些 git svn 拉取,等等,总有些费时费力。

曾经觉得分区没有什么必要,只不过作为习惯保留下来,一般都是 //homeSWAP。没想到这次还发挥了不小的作用。

回头想来,按照不同的读写要求、内容类别区分挂载点,划分不同分区,还是很有必要的。那些频繁读写的临时数据目录坏了也不至于整个硬盘都不行了。

电脑配置

  • 内存:8GB
  • 磁盘:1TB 西数蓝盘(7200 转),实际空间大概只有 931GB(1000 * (1000.0 / 1024) ** 3,万恶的存储设备行业潜规则)。

简单分区方案

挂载点 大小
/ 50GB
/home 剩余所有空间
SWAP 10GB

新设计的分区方案

挂载点 大小 意义
/ 50GB 根目录
/boot 10GB 启动目录
/home 150GB 用户主目录
/usr 100GB 程序分区
/var 50GB 变量文件目录
/tmp 50GB 临时文件目录
SWAP 20GB 交换分区

注意:SWAP 分区一般和内存差不多就行了,多了也是浪费。

这样划分,Ubuntu 系统总共使用 430G 空间,磁盘还剩 500G 暂时不用。

不理解的地方

EFI 系统分区(EFI System Partition,ESP)

红帽推荐 UEFI 系统创建 50MB - 150MB 的 EFI 系统分区(/boot/efi),而且 Win7、Win10 也都会自动创建隐藏的 100MB EFI 系统分区(还有一个隐藏的 450MB 恢复分区)。

但是这个 EFI 系统分区是用来做什么的,我并不了解。

交换分区

红帽文档:

内存大小 建议 SWAP 大小 建议 SWAP 大小(如果允许休眠)
( 0GB - 2GB] 两倍内存大小 三倍内存大小
( 2GB – 8GB] 等于内存大小 两倍内存大小
( 8GB – 64GB] 至少 4GB 1.5 倍内存大小
(64GB - ∞] 至少 4GB 不推荐休眠!
  1. 交换分区是虚拟内存么?作用是什么?
  2. 红帽推荐这样设置的理由是什么?

参考