前言:
识别磁盘、
磁盘构成、
文件系统、
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分区 | <div style="width: 400pt">位于0扇区,他一共512字节,前446字节是grub引导程序,中间64字节是分区表,最后2个字节是结束符号每个分区需要16个字节表示,因此主分区和扩展分区一共只能有4个分区,超过4个的分区只能从扩展分区上再设置逻辑分区来表示。每个分区的大小无法超过2T。 |
GPT格式 | <div style="width: 400pt">打破了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