我们在前面的 EXT2 介绍中谈到了一个 block 只能放置一个文件, 因此太多小文件将会浪费非常多的磁盘容量。但你有没有注意到,整个文件系统中包括 superblock, inode table 与其他中介数据等其实都会浪费磁盘容量喔!所以当我们在 /dev/vda4, /dev/vda5 创建起 xfs/ext4 文件系统时, 一挂载就立刻有很多容量被用掉了!

    另外,不知道你有没有发现到,当你使用 ls -l 去查询某个目录下的数据时,第一行都会出现一个“total”的字样! 那是啥东西?其实那就是该目录下的所有数据所耗用的实际 block 数量 * block 大小的值。 我们可以通过 ll -s 来观察看看上述的意义:

    从上面的特殊字体部分,那就是每个文件所使用掉 block 的容量!举例来说,那个 crontab 虽然仅有 451Bytes , 不过他却占用了整个 block (每个 block 为 4K),所以将所有的文件的所有的 block 加总就得到 12KBytes 那个数值了。 如果计算每个文件实际容量的加总结果,其实只有不到 5K 而已~所以啰,这样就耗费掉好多容量了!未来大家在讨论小磁盘、 大磁盘,文件大小的损耗时,要回想到这个区块喔! ^_^

    7.6.2 利用 GNU 的 parted 进行分区行为(Optional)

    Tips 老实说,若不是后来有推出支持 GPT 的 gdisk,鸟哥其实已经爱用 parted 来进行分区行为了!虽然很多指令都需要同时开一个终端机去查 man page, 不过至少所有的分区表都能够支持哩! ^_^

    parted 可以直接在一行命令行就完成分区,是一个非常好用的指令!它常用的语法如下:

    • Start:分区的起始位置在这颗磁盘的多少 MB 处?有趣吧!他以容量作为单位喔!
    • End:此分区的结束位置在这颗磁盘的多少 MB 处?
    • File system:分析可能的文件系统类型为何的意思!
    • Name:就如同 gdisk 的 System ID 之意。
      不过 start 与 end 的单位竟然不一致!好烦~如果你想要固定单位,例如都用 MB 显示的话,可以这样做:

    如果你想要将原本的 MBR 改成 GPT 分区表,或原本的 GPT 分区表改成 MBR 分区表,也能使用 parted ! 但是请不要使用 vda 来测试!因为分区表格式不能转换!因此进行下面的测试后,在该磁盘的系统应该是会损毁的! 所以鸟哥拿一颗没有使用的U盘来测试,所以文件名会变成 /dev/sda 喔!再讲一次!不要恶搞喔!

    接下来我们尝试来创建一个全新的分区吧!再次的创建一个 512MB 的分区来格式化为 vfat,且挂载于 /data/win 喔!

    事实上,你应该使用 gdisk 来处理 GPT 分区就好了!不过,某些特殊时刻,例如你要自己写一只脚本,让你的分区全部一口气创建, 不需要 gdisk 一条一条指令去进行时,那么 parted 就非常有效果了!因为他可以直接进行 partition 而不需要跟用户互动!这就是它的最大好处! 鸟哥还是建议,至少你要操作过几次 parted ,知道这家伙的用途!未来有需要再回来查!或使用 man parted 去处理喔!