EXT2

Ext2 文件系统在格式化的时候基本上是区分为多个区块群组 (block group) 的,每
个区块群组都有独立的 inode/block/superblock 系统 .
image.png
superblock:记录此 filesystem 的整体信息,包括 inode/block 的总量、使用量、剩余量, 以及文件系统的
格式与相关信息等;
inode:记录文件的属性,一个文件占用一个 inode,同时记录此文件的数据所在的 block 号码;
block:实际记录文件的内容,若文件太大时,会占用多个 block 。

data block (资料区块)

image.png

  • 原则上, block 的大小与数量在格式化完就不能够再改变了(除非重新格式化);
  • 每个 block 内最多只能够放置一个文件的数据;
  • 承上,如果文件大于 block 的大小,则一个文件会占用多个 block 数量;
  • 承上,若文件小于 block ,则该 block 的剩余容量就不能够再被使用了(磁盘空间会浪费)。

inode 本身并不记录文件名,文件名的记录是在目录的 block 当中 。

磁盘与目录的容量

df

  1. [root@study ~]# df [-ahikHTm] [目录或文件名]
  2. 选项与参数:
  3. -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
  4. -k :以 KBytes 的容量显示各文件系统;
  5. -m :以 MBytes 的容量显示各文件系统;
  6. -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
  7. -H :以 M=1000K 取代 M=1024K 的进位方式;
  8. -T 连同该 partition filesystem 名称 (例如 xfs) 也列出;
  9. -i :不用磁盘容量,而以 inode 的数量来显示
  10. 范例一: 将系统内所有的 filesystem 列出来

du

[root@study ~]# du [-ahskm] 文件或目录名称
选项与参数:
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;

实体链接与符号链接: ln

Hard Link (实体链接, 硬式连结或实际连结)

每个文件都会占用一个 inode , 文件内容由 inode 的记录来指向;
想要读取该文件,必须要经过目录记录的文件名来指向到正确的 inode 号码才能读取。

hard link 只是在某个目录下新增一笔档名链接到某 inode 号码的关连记录而已。

image.png

  • 不能跨 Filesystem;
  • 不能 link 目录。

Symbolic Link (符号链接,亦即是快捷方式)

Symbolic link 就是在建立一个独立的文件,而这个文件会让数据的读取指向他 link 的那个文件的档名
当来源档被删除之后, symbolic link 的文件会『开不了』

磁盘分区、格式化等

新增一块磁盘时:
1. 对磁盘进行分区,以建立可用的 partition ;
2. 对该 partition 进行格式化 (format),以建立系统可用的 filesystem;
3. 若想要仔细一点,则可对刚刚建立好的 filesystem 进行检验;
4. 在 Linux 系统上,需要建立挂载点 (亦即是目录),并将他挂载上来;


lsblk 列出系统上的所有磁盘列表


image.png
image.png
image.png
image.png

blkid 列出块设备的 UUID 等参数

image.png
image.png

parted 列出磁盘的分区表类型与分区信息

image.png

gdisk - 新增分区槽 (GPT分区)

随便玩 gdisk ,只要离开 gdisk 时按下『q』,那么所有的动作『都不会生效!』相反的, 按下『w』就是动作生效的意思。
image.png

文件系统类型:

Command (? for help): L
0700 Microsoft basic data  0c01 Microsoft reserved    2700 Windows RE          
4200 Windows LDM data      4201 Windows LDM metadata  7501 IBM GPFS            
7f00 ChromeOS kernel       7f01 ChromeOS root         7f02 ChromeOS reserved   
8200 Linux swap            8300 Linux filesystem      8301 Linux reserved      
8e00 Linux LVM             a500 FreeBSD disklabel     a501 FreeBSD boot        
a502 FreeBSD swap          a503 FreeBSD UFS           a504 FreeBSD ZFS         
a505 FreeBSD Vinum/RAID    a580 Midnight BSD data     a581 Midnight BSD boot   
a582 Midnight BSD swap     a583 Midnight BSD UFS      a584 Midnight BSD ZFS    
a585 Midnight BSD Vinum    a800 Apple UFS             a901 NetBSD swap         
a902 NetBSD FFS            a903 NetBSD LFS            a904 NetBSD concatenated 
a905 NetBSD encrypted      a906 NetBSD RAID           ab00 Apple boot          
af00 Apple HFS/HFS+        af01 Apple RAID            af02 Apple RAID offline  
af03 Apple label           af04 AppleTV recovery      af05 Apple Core Storage  
be00 Solaris boot          bf00 Solaris root          bf01 Solaris /usr & Mac Z
bf02 Solaris swap          bf03 Solaris backup        bf04 Solaris /var        
bf05 Solaris /home         bf06 Solaris alternate se  bf07 Solaris Reserved 1  
bf08 Solaris Reserved 2    bf09 Solaris Reserved 3    bf0a Solaris Reserved 4  
bf0b Solaris Reserved 5    c001 HP-UX data            c002 HP-UX service       
ed00 Sony system partitio  ef00 EFI System            ef01 MBR partition scheme
ef02 BIOS boot partition   fb00 VMWare VMFS           fb01 VMWare reserved     
fc00 VMWare kcore crash p  fd00 Linux RAID

新建分区步骤

新建gpt分区:
gdisk命令
image.png

记得按w保存(q是不保存离开),接着会警告可能出现的问题。
image.png

partprobe 更新 Linux 核心的分区表信息

partprobe -s

image.png

删除分区也要更新分区表信息!!