linux 系统磁盘管理(主分区和逻辑分区)
摘要:linux系统磁盘管理主分区和逻辑分区
1主分区与逻辑分区
1.1、linux系统分区应了解的常识
-
硬盘分区实质上是对硬盘的一种格式化,然后才能使用硬盘保存各种信息,在创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record,一般简称为MBR)和引导记录备份的存放位置.
-
MBR概述:全称为Master Boot Record,即硬盘的主引导记录;是位于磁盘最前边的一段引导(Loader)代码。它负责磁盘操作系统(DOS)对磁盘进行读写时分区合法性的判别、分区引导信息的定位,它由磁盘操作系统(DOS)在对硬盘进行初始化时产生的。
1.主引导程序即主引导记录(MBR)(占446个字节)--可在FDISK程序中找到,它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统。
2.磁盘分区表项(DPT,Disk Partition Table)--由四个分区表项构成(每个16个字节)。负责说明磁盘上的分区情况,其内容由磁盘介质及用户在使用FDISK定义分区时决定。(具体内容略)
3.结束标志(占2个字节)(魔数)---其值为AA55,存储时低位在前,高位在后,即看上去是55AA(十六进制)。 -
分区编号:主分区1-4 ,逻辑分区5……
-
LINUX规定:逻辑分区必须建立在扩展分区之上,而不是建立在主分区上
-
分区作用:
1.主分区:主要是用来启动操作系统的,它主要放的是操作系统的启动或引导程序,/boot分区最好放在主分区上;
2.扩展分区是不能使用的,它只是做为逻辑分区的容器存在的,先创建一个扩展分区,在扩展分区之上创建逻辑分区;
3.我们真正存放数据的是主分区和逻辑分区,大量数据都放在逻辑分区中。 -
注意:使用分区工具fdisk对磁盘进行操作,分区,格式化(重点)
注意:
主分区+扩展分区 最多只能有4个
扩展分区可以是0个,最多是1个
扩展分区不能直接使用,扩展分区必须首先创建成逻辑分区才能使用
逻辑分区可以是0个 1个 多个
1.2、磁盘管理命令
fdisk : Linux分区表操作工具软件
#常用操作
fdisk -l 查看当前分区情况
# 菜单操作
n: 添加新的分区
p: 查看分区信息
w: 保存退出
q: 不保存退出
d: 删除分区
t: 改变分区类型
1.3、查看磁盘命令
ls /dev/sd* #查看磁盘
其中:a-z 表示设备的序号,如sda表示第一块scsi硬盘,sdb就是第二块……
n 表示每块磁盘上划分的磁盘分区编号
1.4、创建主分区演示:
工作环境中为English环境,方便大家阅读在国语环境下演示
1.4.1:添加磁盘创建主分区
╭─root@localhost.localdomain ~
╰─➤ ls /dev/sd* #查看磁盘
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde
╭─root@localhost.localdomain ~
╰─➤ fdisk /dev/sdb #管理分区
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x9fccbf7c 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n #新建分区
Partition type: #分区类型
p primary (0 primary, 0 extended, 4 free) #p--->主分区
e extended #e ---> 扩展分区
Select (default p): p #选择主分区
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048): #分区磁盘的起始位,默认值,回车就好!
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G #磁盘大小选择,加号不能省略,回车即可
分区 1 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):P #查询分区是否创建成功
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9fccbf7c
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux #sdb1
命令(输入 m 获取帮助):w #保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
1.4.2:查看磁盘
╭─root@localhost.localdomain ~
╰─➤ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdd /dev/sde
1.4.3:格式化成xfs文件系统
╭─root@localhost.localdomain ~
╰─➤ mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=327680 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=1310720, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
1.4.4:挂载至本地目录
╭─root@localhost.localdomain ~
╰─➤ mkdir /xfs_du #创建本地目录
╭─root@localhost.localdomain ~
╰─➤ mount /dev/sdb1 /xfs_du #使用mount挂载 mount 磁盘 目录
1.4.5:查看挂载信息
╭─root@localhost.localdomain ~
╰─➤ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 17G 4.7G 13G 28% /
devtmpfs 473M 0 473M 0% /dev
tmpfs 489M 88K 489M 1% /dev/shm
tmpfs 489M 7.1M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 1014M 173M 842M 18% /boot
tmpfs 98M 8.0K 98M 1% /run/user/0
/dev/sr0 4.1G 4.1G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 5.0G 33M 5.0G 1% /xfs_du
1.4.6:开机自动挂载
╭─root@localhost.localdomain ~
╰─➤ echo "/dev/sdb1/xfs_du xfs defaults 0 0" >> /etc/fstab
#开机自动挂载方法2:
echo “mount /dev/sdb1 /xfs_du” >> /etc/rc.local
chmod +x /etc/rc.d/rc.local #给个执行权限
# /etc/rc.local
是使用者自订开机启动程序的文件,把需要开机自动运行的程序写在这个脚本里
1.5、fdisk分区演示–创建逻辑分区
1.5.1:fdisk添加扩展分区
╭─root@du ~
╰─➤ fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n #添加新分区
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e #选择扩展分区
Partition number (2-4, default 2):
First sector (10487808-41943039, default 10487808):
Using default value 10487808
Last sector, +sectors or +size{K,M,G} (10487808-41943039, default 41943039): +5G #5G大小
Partition 2 of type Extended and of size 5 GiB is set
Command (m for help): P #查看分区
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe140b235
Device Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 20973567 5242880 5 Extended
Command (m for help): w #保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
1.5.2:创建逻辑分区
╭─root@du ~
╰─➤ fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l #创建逻辑分区
Adding logical partition 5
First sector (10489856-20973567, default 10489856):
Using default value 10489856
Last sector, +sectors or +size{K,M,G} (10489856-20973567, default 20973567): +10G #逻辑分区大小不能超过扩展分区大小
Value out of range.
Last sector, +sectors or +size{K,M,G} (10489856-20973567, default 20973567): +2g
Unsupported suffix: ‘g’.
Supported: 10^N: KB (KiloByte), MB (MegaByte), GB (GigaByte)
2^N: K (KibiByte), M (MebiByte), G (GibiByte)
Last sector, +sectors or +size{K,M,G} (10489856-20973567, default 20973567): +2G
Partition 5 of type Linux and of size 2 GiB is set
Command (m for help): P
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe140b235
Device Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 83 Linux
/dev/sdb2 10487808 20973567 5242880 5 Extended
/dev/sdb5 10489856 14684159 2097152 83 Linux
Command (m for help): W
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
1.5.3:创建文件系统
╭─root@du ~
╰─➤ ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb5
╭─root@du ~
╰─➤ mkfs.xfs /dev/sdb5
meta-data=/dev/sdb5 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
1.5.4:开机自动挂载
╭─root@du ~
╰─➤ echo “mount /dev/sdb5 /xfs_du” >> /etc/rc.local
2坏盘修复(大于8TB磁盘做分区)
2.1确定坏盘
2.1.1查看机器盘符
sudo lsscsi
2.1.2(坏盘一般会亮故障灯)不亮故障可以通过读写测试分析确定机房故障盘位,在对应的磁盘挂载目录下,对磁盘依次进行io测试,指示灯未亮的就是坏盘.测试完成后记得删除测试文件wtest_find_error_disk
dd oflag=direct if=/dev/zero of=wtest_find_error_disk bs=64k count=100k
2.2初始化新磁盘、创建分区、格式化文件系统
2.2.1 查看当前分区,找到新盘
fdisk -l
#注:常用的分区表格式由msdos和gpt,msdos不支持2TB以上容量的磁盘,大于2TB的磁盘选择gpt分区表格式
2.2.2 查看正常磁盘的分区表格式
parted /dev/sdX
print list
2.2.3定义分区表
#定义gpt分区表
sudo parted -s /dev/sdX mklabel gpt
#定义msdos分区表
sudo parted -s /dev/sdX mklabel msdos
2.2.4创建分区
sudo parted -s /dev/sdX mkpart primary 0% 100%
2.2.5查看分区
fdisk -l
2.2.6新盘格式化文件系统
sudo mkfs.xet4 /dev/sdX1
3交换分区
交换分区又叫swap分区,Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
3.1本地目录创建交换分区
3.1.1:创建目录
mkdir /swap
3.1.2:创建空文件
dd if=/dev/zero of=/swap/swap bs=2M count=2014
3.1.3:格式化为swap格式
mkswap /swap/swap
3.1.4:写入文件/etc/fstab 开机自动挂载
echo "/swap/swap swap swap defaults 0 0" >> /etc/fstab
3.1.5:修改权限,挂载
chmod 0600 /swap/swap
mount -a
3.1.6:开启swap
swapon -a
[root@node1 ~]# free -h
total used free shared buff/cache available
Mem: 976M 321M 60M 9.5M 594M 466M
Swap: 5.9G 221M 5.7G
3.1.7:关闭swap
swapoff -a