为什么要对磁盘进行分区?

为什么要对磁盘进行分区?

我已经多次读到,将磁盘分区为较小的分区非常重要,对于根磁盘或操作系统磁盘尤其如此,但我始终找不到这样做的充分理由。一个常见的借口是它提高了数据安全性:如果您的磁盘被划分为操作系统/数据分区(例如 /、/usr、/usr/local、/home 等,或在 Windows 上 C:(操作系统)、D:(数据)),如果出现故障,仅丢失信息,您可以重新安装操作系统或从备份中恢复数据,而不会损坏其他信息。我们大多数人(好吧,我们中的很多人)(好吧,我们中的一些人)使用SSD作为操作系统,使用HDD作为数据,而且我们(可能)都只将每个分区划分为一个分区,所以这个论点似乎似是而非,或者充其量是原始的。即使我们不使用 SSD,HDD 也非常便宜,使用两个独立的驱动器也是相当合理的,因此在大多数情况下,我们的磁盘上都只有一个分区。

这让我想到了这篇文章的要点:为什么要对磁盘进行分区,甚至是单个跨磁盘分区?我最近做了一些实验,发现虽然 Windows 无法对未分区的磁盘执行任何操作,但 Linux 和其他一些 Unices(不包括 OpenBSD)却完全没有问题:

# mkfs.ext4 /dev/sdb
mke2fs 1.42.5 (29-Jul-2012)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
# mount /dev/sdb /mnt
# ls -l /mnt
drwx------  2 root root 16384 Dec 10 06:30 lost+found/
# mkdir /mnt/test
# ls -l /mnt
drwx------  2 root root 16384 Dec 10 16:30 lost+found
drwx------  2 root root  4096 Dec 10 16:31 test
# umount /mnt

那为什么还要麻烦呢?

答案1

安全性(如果你计算错误的话,可能会带来更多的管理烦恼)。从我的 OpenBSD 桌面:

/dev/sd0b none swap sw
/dev/sd0a / ffs rw,softdep 1 1
/dev/sd0k /home ffs rw,nodev,nosuid,softdep 1 2
/dev/sd0d /tmp ffs rw,nodev,nosuid,noexec 1 2
/dev/sd0f /usr ffs rw,nodev 1 2
/dev/sd0g /usr/X11R6 ffs rw,nodev 1 2
/dev/sd0h /usr/local ffs rw,nodev 1 2
/dev/sd0j /usr/obj ffs rw,nodev,nosuid,noatime,async 1 2
/dev/sd0i /usr/src ffs rw,nodev,nosuid,noatime,async 1 2
/dev/sd0e /var ffs rw,nodev,nosuid 1 2

好处:东西填满了/var或者/home不会给其他分区带来问题。可以拥有noatimeasync设置临时分区,以获得更高的性能。非设备分区不允许使用设备,这可能有助于防止出于恶意目的而创建一个kmem或某些其他此类设备。此外,nosuid在各种随机文件系统上,消除那些正在创建的文件,无论多么偶然。

只有一个大分区,某些东西可以填满整个磁盘(哦,您是否需要写入来/tmp创建 kerberos 票证才能登录?我很抱歉...),也许会创建随机设备和 suid 二进制文件,并且没有性能可以在这一大分区上进行调整以满足不同的需求。

哪种风格有意义取决于操作系统、站点、系统用途、管理难易程度等。

相关内容