7_文件系统与磁盘分区

前言:
识别磁盘、
磁盘构成、
文件系统、
link(软链接、硬链接)、
fdisk 使用、
gdisk 使用


导图


磁盘和文件系统

识别硬盘

一般添加磁盘完成后,如果想要能够识别,需要重启电脑,不过这里也可以通过命令的方式识别

# echo "- - -" >> /sys/class/scsi_host/host0/scan
# echo "- - -" >> /sys/class/scsi_host/host1/scan
# echo "- - -" >> /sys/class/scsi_host/host2/scan
# fdisk -l
磁盘的构成
  • 硬盘的物理构成:
    扇区(sector)、磁道(track)、磁头、柱面(cylinder)

  • 分区:
    就是记录每一个分区的起始柱面和结束柱面。

  • 文件系统:
    是操作系统用于明确存储设备(常见的是磁盘)或分区上的文件的方法和数据结构;
    即在存储设备上组织文件的方法。

基本概念
  • block
    数据存储的最小单元
  • inode
    索引节点,全局唯一编号,除了记录文件的属性外,同时还具有指针功能,指向文件内容放置的块;
    (里面保存的是文件的权限,所有者,所属主等基本信息)
文件系统
  • boot block (boot sector)(待补充
    它位于分区上的第一个块,占用1024字节,只有装了操作系统的主分区和装了操作系统的逻辑分区才有。

  • group description(组描述)(待补充
    ext文件系统为每一个块组信息使用32字节描述,这32个字节称为块组描述符,
    所有块组的块组描述符组成块组描述符表GDT(group descriptor table)。

  • superblock(超级块)(待补充
    记录整个文件系统相关信息

  • block bitmap(块位图)(待补充
    此处记录block是否使用

  • inode bitmap(inode位图)(待补充)
    此处记录inode是否使用

  • inode table(inode表)(待补充
    为每个inode的数据存放区
    在ext文件系统上,将这些物理上存储inode的block组合起来,在逻辑上形成一张inode表(inode table)来记录所有的inode。

  • block group(待补充

  • data block(数据块)
    为每个block的数据存放区


软链接和硬链接:

链接:硬链接和软链接(符号链接),多个文件指向同一个iNode,硬链接;
符号连接,指向的是源文件的路径,而不是文件块

硬链接

硬链接:在某个目录下的block中增加一个文件关联数据,不会用到inode与磁盘空间
只能对文件进行创建,为了避免循环引用不能跨文件系统,
可以在不同目录下创建硬链接可以增加文件被连接的次数

软链接

软连接(符号链接):建立一个独立的文件,这个文件会让数据的读取指
向它连接的文件内容可以对目录创建可以跨文件系统

不会增加被链接文件的链接次数
其大小为指定路径所包含的字符个数


磁盘分区

硬盘分区格式 说明
MBR分区
位于0扇区,他一共512字节,前446字节是grub引导程序,中间64字节是分区表,最后2个字节是结束符号每个分区需要16个字节表示,因此主分区和扩展分区一共只能有4个分区,超过4个的分区只能从扩展分区上再设置逻辑分区来表示。每个分区的大小无法超过2T。
GPT格式
打破了MBR的限制,可以设置多达128个分区,分区的大小突破了2T空间的限制。支持高达 18EB(1EB=1024PB,1PB=1024TB)的卷大小,允许将主磁盘分区表和备份磁盘分区表用于冗余,还支持唯一的磁盘和分区 ID (GUID)。
fdisk(创建MBR分区)
  • 语法
    # fdisk /dev/sdX
命令 说明
a 设置引导扇区
b 编辑bsd磁盘标签
c 切换dos兼容性标志
d 删除分区
g 创建一个新的空GPT分区表
G 创建一个IRIX(SGI)分区表
l 列出已知的分区类型
m 打印此菜单
n 添加一个新分区
o 创建一个新的空DOS分区表
p 打印分区表
q 退出而不保存更改
s 创建一个新的空Sun disklabel
t 更改分区的系统ID
u 更改显示/输入单位
v 验证分区表
w 将表写入磁盘并退出
x 额外功能(仅限专家)
  • 创建分区
# fdisk /dev/sda 
命令(输入 m 获取帮助):n  
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB
  • 查看分区
# fdisk /dev/sda 
命令(输入 m 获取帮助):p

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x82ff3e4f

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     4196351     2097152   83  Linux
  • 保存分区
命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
  • 删除分区
命令(输入 m 获取帮助):d
分区号 (1,2,默认 2):1
分区 1 已删除

gdisk(创建GPT分区)
命令 说明
b 将GPT数据备份到文件
c 更改分区的名称
d 删除分区
i 在分区上显示详细信息
l 列出已知的分区类型
n 添加一个新分区
o 创建一个新的空GUID分区表(GPT)
p 打印分区表
q 退出而不保存更改
r 恢复和转换选项(仅限专家)
s 排序分区
t 更改分区的类型代码
v 验证磁盘
w 将表写入磁盘并退出
x 额外功能(仅限专家)
? 打印此菜单
  • 创建分区
# gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +2G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'
  • 查看分区
Command (? for help): p
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): B428B7A5-EBDF-4644-A35F-37942EC0C7EF
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 37748669 sectors (18.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         4196351   2.0 GiB     8300  Linux filesystem
  • 保存分区
Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.
  • 删除分区
Command (? for help): d
Partition number (1-2): 1

parted
  • 设置 磁盘分区表格式

设定为 MER格式:mklabel msdos
设定为 GPT格式:mklabel gpt

(parted) mklabel msdos
警告: 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? yes 
(parted) mklabel gpt
警告: 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? yes
  • 创建分区
(parted) mkpart 
分区名称?  []? disk1                                                     
文件系统类型?  [ext2]? ext4
起始点? 0M                                                               
结束点? 5G                                                               
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? i
  • 查看分区
parted) print 
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End     Size    Type     File system  标志
 1      512B   10.0GB  10.0GB  primary
  • 删除分区
(parted) rm
分区编号? Number

你可能感兴趣的:(7_文件系统与磁盘分区)