对于首次安装 Linux 的新用户来说,面临的难题之一是如何对磁盘驱动器进行分区。 需要估计系统文件和用户文件可能需要的空间,这使得安装过程比必要的更复杂,一些用户为了避免这个问题,干脆选择将所有数据放入一个大型分区。
一旦用户猜测了 /home /usr / (或者让安装程序完成) 需要多少空间,那么即使在其他分区有大量磁盘空间的情况下,其中一个分区也常常会被填满。
使用逻辑卷管理,整个磁盘将被分配给一个卷组,并创建逻辑卷来保存 / /usr 和 /home 文件系统。 例如,如果 /home 逻辑卷后来被填满,但 /usr 上仍有可用空间,则可以将 /usr 缩小几兆字节,并将该空间重新分配给 /home。
另一种选择是为每个逻辑卷分配最小量的空间,并留出一些磁盘未分配。 然后,当分区开始填满时,可以根据需要扩展它们。
例如:Joe 购买了一台配备 8.4 千兆字节磁盘的 PC,并使用以下分区系统安装了 Linux
/boot /dev/hda1 10 Megabytes swap /dev/hda2 256 Megabytes / /dev/hda3 2 Gigabytes /home /dev/hda4 6 Gigabytes |
过了一段时间,Joe 决定安装最新的办公套件和可用的桌面 UI,但他意识到根分区不够大。 但是,由于已将所有 MP3 存档到新的可写 DVD 驱动器上,/home 上有足够的空间。
他的选择不太好
重新格式化磁盘,更改分区方案并重新安装。
购买新磁盘并找出一些新的分区方案,这将需要最少的数据移动。
在 / 上设置一个指向 /home 的符号链接场,并在 /home 上安装新软件
使用 LVM,这变得容易得多
Jane 购买了类似的 PC,但使用 LVM 以类似的方式划分磁盘
/boot /dev/hda1 10 Megabytes swap /dev/vg00/swap 256 Megabytes / /dev/vg00/root 2 Gigabytes /home /dev/vg00/home 6 Gigabytes |
![]() | boot 未包含在 LV 上,因为引导加载程序尚不理解 LVM 卷。 在 LVM 上启动是可能的,但您有系统无法启动的风险。 |
![]() | LV 上的 root 应该仅由高级用户使用 |
---|---|
LVM 上的 root 需要一个激活 root LV 的 initrd 镜像。 如果在升级内核时没有构建必要的 initrd 镜像,则该内核将无法启动。 较新的发行版在其 mkinitrd 脚本以及其打包的 initrd 镜像中都支持 lvm,因此随着时间的推移,这不再是一个大问题。 |
当她遇到类似的问题时,她可以将 /home 的大小减少一个千兆字节,并将该空间添加到根分区。
假设 Joe 和 Jane 随后也设法填满了 /home 分区,并决定向他们的系统添加一个新的 20 千兆字节磁盘。
Joe 将整个磁盘格式化为一个分区 (/dev/hdb1),并将他现有的 /home 数据移动到该分区,并将新磁盘用作 /home。 但他有 6 千兆字节未使用,或者必须使用符号链接使该磁盘显示为 /home 的扩展,例如 /home/joe/old-mp3s。
Jane 只是简单地将新磁盘添加到她现有的卷组,并扩展她的 /home 逻辑卷以包含新磁盘。 或者,实际上,她可以将旧磁盘上 /home 中的数据移动到新磁盘,然后扩展现有的根卷以覆盖旧磁盘的所有空间。