Linux学习-文件系统的特殊观察与操作

###磁盘空间之浪费问题

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

当你使用 ls -l 去查询某个目录下的数据时,第一行都会出现 一个“total”的字样! 那是啥东西?其实那就是该目录下的所有数据所耗用的实际 block 数量 * block 大小的值。

###利用GUN的parted进行分区行为(Optional)

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

[root@study ~]# parted [设备] [指令 [参数]]
选项与参数:
指令功能:
            新增分区:mkpart [primary|logical|extended] [ext4|vfat|xfs]
            显示分区:print
            删除分区:rm [partition]

范例一:以 parted 列出目前本机的分区表数据
[root@study ~]# parted /dev/vda print
Model: Virtio Block Device (virtblk)         <==磁盘接口与型号
Disk /dev/vda: 42.9GB                        <==磁盘文件名与容量
Sector size (logical/physical): 512B/512B    <==每个扇区的大小
Partition Table: gpt                         <==是 GPT 还是 MBR 分区
Disk Flags: pmbr_boot

Number  Start   End     Size    File system     Name                  Flags
 1      1049kB  3146kB  2097kB                                        bios_grub
 2      3146kB  1077MB  1074MB  xfs
 3      1077MB  33.3GB  32.2GB                                        lvm
 4      33.3GB  34.4GB  1074MB  xfs             Linux filesystem
 5      34.4GB  35.4GB  1074MB  ext4            Microsoft basic data
 6      35.4GB  36.0GB  537MB   linux-swap(v1)  Linux swap
[  1 ]  [  2 ]  [  3  ] [  4  ] [  5  ]         [  6  ]

上述的分区表示意拆成六部分来说明:

  1. Number : 这个就是分区的号码啦!举例来说,1号代表的是/dev/vda1的意思;
  2. Start : 分区的起始位置在这颗磁盘的多少MB处?有趣吧!他以容量作为单位喔! 3. End:此分区的结束位置在这颗磁盘的多少MB处?
  3. Size : 由上述两者的分析,得到这个分区有多少容量;
  4. Filesystem : 分析可能的文件系统类型为何的意思!
  5. Name : 就如同gdisk的SystemID之意。

不过 start 与 end 的单位竟然不一致!如果你想要固定单位,例如都用 MB 显示的话, 可以这样做:

[root@study ~]# parted /dev/vda unit mb print

如果你想要将原本的MBR改成GPT分区表,或原本的GPT分区表改成MBR分区表,也能使用parted!但是请不要使用vda来测试!因为分区表格式不能转换,因为进行下面的测试后,在该磁盘的系统应该是会损坏的。所以用一颗没有使用U盘来测试。

范例二 : 将/dev/sda这个原本的MBR分区表变成GPT分区表(危险!危险!勿乱搞!无法复原)
[root@study ~]# parted /dev/sda print
Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sda: 2148MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos # 确实显示的是 MBR 的 msdos 格式喔!

[root@study ~]# parted /dev/sda mklabel gpt
Warning: The existing disk label on /dev/sda will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? y

[root@study ~]# parted /dev/sda print
# 你应该就会看到变成 gpt 的模样!只是...后续的分区就全部都死掉了! 

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

范例三 : 创建一个约为512MB容量的分区
[root@study ~]# parted /dev/vda print
.....(前面省略).....
Number  Start   End     Size    File system     Name                  Flags
.....(中间省略).....
6 35.4GB 36.0GB 537MB linux-swap(v1) Linux swap # 要先找出来下一个分区的起始点!
 

[root@study ~]# parted /dev/vda mkpart primary fat32 36.0GB 36.5GB
# 由于新的分区的起始点在前一个分区的后面,所以当然要先找出前面那个分区的 End 位置!
# 然后再请参考 mkpart 的指令功能,就能够处理好相关的动作!
[root@study ~]# parted /dev/vda print
.....(前面省略).....
Number  Start   End     Size    File system     Name                  Flags
7      36.0GB  36.5GB  522MB                   primary

[root@study ~]# partprobe
[root@study ~]# lsblk /dev/vda7
NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda7 252:7 0 498M 0 part # 要确定它是真的存在才行!

[root@study ~]# mkfs -t vfat /dev/vda7
[root@study ~]# blkid /dev/vda7
/dev/vda7: SEC_TYPE="msdos" UUID="6032-BF38" TYPE="vfat"

[root@study ~]# nano /etc/fstab
UUID="6032-BF38"  /data/win  vfat  defaults   0  0

[root@study ~]# mkdir /data/win
[root@study ~]# mount -a
[root@study ~]# df /data/win
Filesystem     1K-blocks  Used Available Use% Mounted on
/dev/vda7         509672     0    509672   0% /data/win  

转载于:https://my.oschina.net/tucci/blog/1517988

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值