磁盘介绍管理

发布时间 2023-11-30 15:05:37作者: zjz的tom

磁盘分区

硬盘分区符认识

MBR 概述:全称为 Master Boot Record,即硬盘的主引导记录。 硬盘的 0 柱面、0 磁头、1 扇区称为主引导扇区(也叫主引导记录 MBR)。它由三个部分组成,主引导程序、 硬盘分区表 DPT(Disk Partition table)和分区有效标志(55AA)。在总共 512 字节的主引导扇区里主引导程序 (boot loader)占 446 个字节,第二部分是 Partition table 区(分区表),即 DPT,占 64 个字节,硬盘中分区 有多少以及每一分区的大小都记在其中。第三部分是 magic number,占 2 个字节,固定为 55AA。

分区编号:主分区 1-4 ,逻辑分区 5……

LINUX 规定:逻辑分区必须建立在扩展分区之上,而不是建立在主分区上

分区作用:

主分区:主要是用来启动操作系统的,它主要放的是操作系统的启动或引导程序,/boot 分区最好放在主分 区上

扩展分区不能使用的,它只是做为逻辑分区的容器存在的;我们真正存放数据的是主分区和逻辑分区,大量 数据都放在逻辑分区中

如果你用的是 GPT 的分区方式,那么它没有限制主分区个数

使用fdisk管理分区:

fdisk:磁盘分区,是 Linux 发行版本中最常用的分区工具 用法:fdisk [选项] device 常用的选项 : -l 查看硬盘分区表 案例:在 sdb 盘上建一个分区,大小为 100M

例1:

对sdb这块盘分化一个100M的分区出来

fdisk /dev/sdb

...
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition 删除分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types 显示分区类型
m print this menu 打印帮助菜单
n add a new partition 添加新的分区
o create a new empty DOS partition table
p print the partition table 显示分区表
q quit without saving changes 不保存,退出
s create a new empty Sun disklabel
t change a partition's system id 改变分区类型
u change display/entry units
v verify the partition table
w write table to disk and exit 写分区表信息到硬盘,保存操作并退出
x extra functionality (experts only)
Command (m for help): p -----打印分区表
Command (m for help): n ----新建一个分区
Partition type:
p primary (2 primary, 0 extended, 2 free) p:主分区
e extended e:扩展分区
Select (default p): --直接默认
Using default response p
Partition number (1,4, default 1): ---直接默认
First sector (1230848-41943039, default 1230848): ---直接默认
Using default value 1230848
Last sector, +sectors or +size{K,M,G} (1230848-41943039, default 41943039): +1G 输入分区大小
Partition 3 of type Linux and of size 1 GiB is set
Command (m for help): w 保存退出

查看: ls /dev/sdb*

/dev/sdb /dev/sdb1

例2:

对已经在使用的磁盘进行分区,分区让新生成的分区生效。如果对sda再做一个sda4主分区

fdisk /dev/sda

命令(输入 m 获取帮助):p
磁盘标识符:0x0005c80e
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 411647 204800 83 Linux
/dev/sda2 411648 2508799 1048576 82 Linux swap / Solaris
/dev/sda3 2508800 23480319 10485760 83 Linux
命令(输入 m 获取帮助):n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): p
已选择分区 4
起始 扇区 (23480320-41943039,默认为 23480320):
将使用默认值 23480320
Last 扇区, +扇区 or +size{K,M,G} (23480320-41943039,默认为 41943039):+1G
分区 4 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)

如果要让新分区生效:reboot(重启)或者partx -a /dev/sda (获得新分区表)

使用分区:

使用sdb1:

mkfs.ext4 /dev/sdb1

mkfs.xfs /dev/sdb1 格式化,-f 对已经存在文件系统的分区, 强制格式化

mkdir /sdb1 创建挂载点

mount /dev/sdb1 /sdb1/ 挂载

df -h 查看:

文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 10G 4.3G 5.8G 43% /
devtmpfs 982M 0 982M 0% /dev
tmpfs 997M 0 997M 0% /dev/shm
tmpfs 997M 9.0M 988M 1% /run
tmpfs 997M 0 997M 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sda1 197M 172M 25M 88% /boot
tmpfs 200M 24K 200M 1% /run/user/0
/dev/sdb1 1014M 33M 982M 4% /sdb1

cd /sdb1/

ls

cp /etc/passwd ./

使用gdisk磁盘分区工具:

介绍

gdisk 主要是用来划分容量大于 2T 的硬盘,大于 2T fdisk 搞不定

两种类型的分区表:GPT 和 MBR ; MBR 不支持 4T 以上

GPT 分区:GPT,全局唯一标识分区表(GUID Partition Table),它使用 128 位 GUID 来唯一标识每个磁盘 和分区,与 MBR 存在单一故障点不同,GPT 提供分区表信息的冗余,一个在磁盘头部一个在磁盘尾部;它通过 CRC 校验和来检测 GPT 头和分区表中的错误与损坏;默认一个硬盘支持 128 个分区

例:

对sdb做gpt分区,创建一个sdb1

gdisk /dev/sdb

。。。
Command (? for help): ? # 查看帮助
b back up GPT data to a file
c change a partition's name
d delete a partition #删除分区
ishow detailed information on a partition
llist known partition types
n add a new partition # 添加一个分区
o create a new empty GUID partition table (GPT)
p print the partition table # 打印分区表
q quit without saving changes # 退出不保存
r recovery and transformation options (experts only)
s sort partitions
t change a partition's type code
v verify disk
w write table to disk and exit # # 写入分区表并退出
x extra functionality (experts only)
? print this menu
Command (? for help): n #新建分区表
Partition number (1-128, default 1): #直接回车
First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: #直接回车, 从头开始划分空间
Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +1G #给 1G 空间
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): #分区类型直接回车
注:8300 Linux filesystem ;8e00 Linux LVM 想查看,可以按 L 来显示
Changed type of partition to 'Linux filesystem'
Command (? for help): p #查看
。。。
Number Start (sector) End (sector) Size Code Name
1 2048 2099199 1024.0 MiB 8300 Linux filesystem
Command (? for help): w #保存
Do you want to proceed? (Y/N): y #确定写入
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

mkfs.xfs /dev/sdb1 格式化

扩展swap分区:

Swap 分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。

mkswap /devices 格式化成swap格式

swapon /swap 激活swap,加入到swap分区中

vim /etc/fstab 开机自启动新添加的swap分区,在最后追加:

/devices swap swap defaults 0 0

如果要删除,执行 swapoff /swap

分区实战

gdisk /dev/sdb

...
Command (? for help): n #新建分区
Partition number (2-128, default 2): #回车
First sector (34-41943006, default = 2099200) or {+-}size{KMGTP}: #回车
Last sector (2099200-41943006, default = 41943006) or {+-}size{KMGTP}: +1G #给 1G
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): w #保存
Do you want to proceed? (Y/N): y

mkswap /dev/sdb2 格式化swap

swapon /dev/sdb2

swapon -s 查看

通过文件增加swap空间

dd if=/dev/zero of=swap_file bs=1M count=500

ll /root/swap_file

chmod 0600 /root/swap_file

mkswap -f /root/swap_file

swapon /root/swap_file

free -m