文档章节

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

u
 uetucci
发布于 2017/08/21 14:29
字数 1106
阅读 12
收藏 0

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

一个 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  

© 著作权归作者所有

共有 人打赏支持
u
粉丝 0
博文 65
码字总数 103136
作品 0
深圳
程序员
Linux用户和权限管理看了你就会用啦

前言 只有光头才能变强 回顾前面: 看完这篇Linux基本的操作就会了 没想到上一篇能在知乎获得千赞呀,Linux也快期末考试了,也有半个月没有写文章了。这篇主要将Linux下的用户和权限知识点再...

Java3y
06/11
0
0
Linux系统在信息社会的发展

随着信息技术的高速发展并迅速渗透到社会生活的各个方面,Linux日益成为人们学习、工作、生活不可缺少的基本工具,再过不了几年,不会使用Linux,就会象不识字一样使人举步维艰。进入大学,L...

linuxprobe16
09/09
0
0
学着学着Linux系统写篇心得

本学期对于linux系统的学习,和自己买的一本《linux就该这么学》这本书,让我对linux有了一定的了解。我知道了linux只是个内核。现在的linux操作系统,都是用这么一个内核,加上其它的应用程...

linuxprobe16
06/03
0
0
Linux究竟要学习哪些东西?

很多人想学习Linux,寻找linux基础学习线路,但是不知道从哪里着手。这里我为大家准备了Linux基础需要学习的一些东西,供大家借鉴使用,详细请参考下面给出的9点建议。Linux程序工程师非常吃...

小杰java
2017/10/23
0
0
零基础怎么学Linux?Linux学习攻略

不知道文章面前的你是怎样计划你的Linux学习的。如今有很多关于Linux的书籍,博客。大多数都会比较“粗暴“的将一大堆的命令塞给读者,从而使很多Linux初学者望而却步,未入其门就路过了。所...

长沙千锋
05/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

科学利用谷歌云平台

当今既是大数据时代,也是云计算时代。云平台构建已经成了诸多大数据平台建设第一步。于是各家互联网巨头们纷纷都开启了云平台服务。国内的以阿里云、腾讯云、百度云、华为云为首,国外的有A...

胖胖雕
6分钟前
0
0
公众号关联小程序发送关联通知

公众号关联小程序发送关联通知,对于推广小程序有着很大的帮助。所以问题来了,怎么做到在公众号关联小程序发送关联通知呢? 一:开发中遇到的问题 之前在开发过程中发现,公众号已经关联小程...

Code辉
9分钟前
0
0
并发编程基础之JMM学习摘要

一、JMM定义 Java内存模型即Java Memory Model(JMM),JMM决定一个线程对共享变量的写入何时对另一个线程可见(内存可见性),从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程...

狠一点
14分钟前
0
0
mysql 开启日志记录并且解决日志时间错误问题

查看日志开启状态 SHOW VARIABLES LIKE 'general%'; 开启日志 SET GLOBAL general_log = 'ON'; 本人mysql版本5.7 在查询日志的时候发现时间和系统时间不对 查看系统默认时间参数 SELECT @@l...

Marhal
16分钟前
0
0
Kubernetes上的负载均衡详解

如果您的应用程序是面向大量用户、会吸引大量流量,那么一个不变的目标一定是在高效满足用户需求的同时、不让用户感知到任何类似于“服务器繁忙!”的情况。这一诉求的典型解决方案是横向扩展...

RancherLabs
17分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部