在网上可以查到分区的不同理由,我更喜欢两个最重要的理由:
- 不会因为局部数据意外溢出而整机被卡死或崩溃
- 数据安全:局部硬件或软件出问题对其他分区影响可以降低到最低。
曾经有过一次惨痛的教训,在运行Debian数月之后突然有一天系统出错,经查是数据库满出来卡死,当时分配的磁盘容量太少,如果是生产服务器的话后果是十分严重的。
Linux有很多发行版,多多少少有点差异,这里以Debian为例。
对初学者来说是蛮难的,要马上搞清楚是不容易的事,最大的困难是一发行版很多,文件目录不同;二是应用场景各不相同;所以就增加了理解的难度。
这是Debian安装程序给出的自动分区的三个选择
分区方式 | 所新建的分区 | 说明 |
---|---|---|
所有文件在同一分区 | /, swap | 这是系统推荐新手使用的配置 |
建立 /home 分区 | /, /home, swap | 把home放到一个独立的分区 |
分别建立 /home、/var 和 /tmp 分区 | /, /home, /var, /tmp, swap | 对使用者提出了更高的要求 |
下面的例子是用一台Thinkpad笔记本在局域网做共享盘为主,同时还有一个内网的web server和数据库,硬盘大小为500G,安装时用手动分区,只使用标准目录,没有自建主目录。
挂载目录 | 建议分区大小 | 说明 |
---|---|---|
/boot | 100 - 150 MB | 目前实际大小为45MB,分配了476MB,有点多了。 |
/ | 15 - 20 GB | 不包括 /var,实际分配了19G。 |
/var | 10 - 40 GB | 这个实际要看用途,数据库数据,网站程序和图片、视频,备份,日志等都在这里;实际分配了33G。 |
/home | 剩余空间 | 因为计划把共享目录Samba Server放在这个下面,所以要把剩余的405GB都分配给home了,如果是1T的硬盘就会是900GB |
/tmp | > 500MB | 实际分配4.3G |
/swap | 4 - 8 GB | 实际分配4.7G,一般建议为内存的1倍或2倍 |
硬盘的分配情况:
user2@thinkpad:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 476M 0 part
├─sda2 8:2 0 18.6G 0 part /
├─sda3 8:3 0 1K 0 part
├─sda5 8:5 0 32.6G 0 part /var
├─sda6 8:6 0 405.1G 0 part /home
├─sda7 8:7 0 4.3G 0 part /tmp
└─sda8 8:8 0 4.7G 0 part [SWAP]
sr0 11:0 1 1024M 0 rom
user2@thinkpad:~$ ls -l /dev/sda*
brw-rw---- 1 root disk 8, 0 Dec 18 14:00 /dev/sda
brw-rw---- 1 root disk 8, 1 Dec 18 14:00 /dev/sda1
brw-rw---- 1 root disk 8, 2 Dec 18 14:00 /dev/sda2
brw-rw---- 1 root disk 8, 3 Dec 18 14:00 /dev/sda3
brw-rw---- 1 root disk 8, 5 Dec 18 14:00 /dev/sda5
brw-rw---- 1 root disk 8, 6 Dec 18 14:00 /dev/sda6
brw-rw---- 1 root disk 8, 7 Dec 18 14:00 /dev/sda7
brw-rw---- 1 root disk 8, 8 Dec 18 14:00 /dev/sda8
目前硬盘占用情况:
user2@thinkpad:~$ df -hl
Filesystem Size Used Avail Use% Mounted on
udev 3.9G 0 3.9G 0% /dev
tmpfs 787M 11M 776M 2% /run
/dev/sda2 19G 1.6G 16G 10% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda6 398G 64G 314G 17% /home
/dev/sda5 32G 573M 30G 2% /var
/dev/sda7 4.2G 18M 4.0G 1% /tmp
tmpfs 787M 0 787M 0% /run/user/1000