文档章节

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

u
 uetucci
发布于 2017/08/21 14:29
字数 1106
阅读 15
收藏 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技术的忠告

1.Linux体系组织结构 学习一个系统需要了解其体系结构,这样才能更好的学习。Linux有kernel和user两种模式,内核、shell和文件系统统一形成基本的操作系统结构,Linux内核由如下几部分组成:...

linuxprobe
2016/09/23
0
0
Linux系统的目录结构--Linux入门到精通系列

Linux安装后,由系统产生的目录比较多,初学都对这众多的目录通常会感到很迷或,不知这些目录有何作用,彼此间有何区别,用户自己的目录创建在哪个目录下比较合适。 1、目录结构简介 与DOS和...

长平狐
2012/09/20
147
0
你值得了解的 10 个有趣的 Linux 命令行小技巧

我非常喜欢使用命令,因为它们比 GUI(图形用户界面)应用程序对 Linux 系统提供更多的控制,因此,我一直在寻找一些有趣的方法让 Linux 的操作变得简单好玩,主要是基于终端操作。 当我们发...

两味真火
2017/01/16
4.8K
10
(一)Linux学习笔记-Linux常用命令

(一)Linux学习笔记-Linux常用命令 文件处理 以下为Red Hat系列Linux的命令集,我使用的Centos7.5版本。 文件处理 命名规则 1、除/以外,所有字符都合法 2、特殊字符最好不要用,如:空格、...

Super_RD
12/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

追加字节能优化性能

这种方式看起来很神奇,单如果深入理解处理器架构就能理解其中的奥秘。让我们先来看看LinkedTransferQueue这个类,它使用一个内部类型来定义队列的头队列Head和尾节点tail,二这个内部类Pad...

无知的小狼
27分钟前
2
0
性能优化(JVM概念及配置)

虚拟机组成 一次编写,到处运行 Java虚拟机是对操作系统的模拟,隔离差异 2018编程语言排行榜 一个复杂的构架 虚拟机的内部概念 运行原理 编译器,解释器执行流程 内存分配-线程模型 栈帧模型...

这很耳东先生
34分钟前
3
0
Scala之初步认识与环境准备

1. 了解 Scala 1.1. 什么是 Scala Scala 是 Scalable Language 的简写,是一门多范式的编程语言。 Scala设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚...

飞鱼说编程
55分钟前
4
0
Vue项目分环境打包的实现步骤

在项目开发中,我们的项目一般分为开发版、测试版、Pre版、Prod版。Vue-cli的默认环境一只有dev和prod两个,之前每次要发布测试版或Pre版都是修改了源码中API地址后打包,这样很麻烦。如果能...

peakedness丶
56分钟前
6
0
vue+lowdb+express

搭建流程: 1.安装Node.js; 2.安装npm; 3.安装Express; 搭建流程 npm install -g express 安装 express 生成器 npm install -g express-generator 查看是否安装成功,随便输的一个命令...

Js_Mei
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部