Linux磁盘管理(1)

磁盘基础知识

盘体

扇区:是数据存储的最小单元,有512字节和4k两种格式。操作系统识别 的最小单位。

工作原理
为了对扇区进行查找和管理,需要对扇区进行编号,扇区的编号从0磁道开始,起始扇区为1扇区,其后为2扇区,3扇区…,0磁道的扇区编号结束后,1磁道的起始扇区累计编号,直到最后一个磁道的最后一个扇区(n扇区)。例如,某个硬盘有1024个磁道,每个磁道划分为63个扇区,则0磁道的扇区号为1-63,1磁道的起始扇区号为64,最后一个磁道的最后一个扇区号为64512。
交叉因子:数据读取经常需要按顺序读取一系列相邻的扇区(逻辑数据相邻)。如对磁道扇区按物理顺序进行编号,很可能出现磁头读取完第一个扇区后,由于盘片转速过快来不及读取下一个扇区,所以用交叉因子来解决这个问题。

如下图,增加了交叉因子后的扇区编号一般是下面这样:
在这里插入图片描述

磁道:磁盘的每个盘面被划分为许多同心圆,这些同心圆的轨道叫做磁道。
磁柱:不同盘片上相同等级的磁道组成磁柱。是分区的最小单位。
:相邻的扇区组成族。文件系统存储的最小单位。(4k=4096bytes 4096/512=8)
盘面:磁盘一般会有一个或多个盘面,每个盘片可以有两个面,即第一个盘片的正面称为0面,反面称为1面,第二个盘片的正面称为2面,反面3面,以此类推。

在这里插入图片描述

磁盘核心分区

磁盘分区表主要有两种格式,一种是限制较多的MBR分区表,一种是较新且限制较少的GPT表。
MBR分区表中,第一个扇区最重要,里面有:
MBR(Main Boot Record主引导记录区) 位于整个硬盘的0磁道0柱面1扇区。在总共512字节的主引导扇区中,MBR只占用了其中的446个字节,另外的64个字节交给了DPT(硬盘分区表),最后两个字节“55,AA”是分区的结束标志。这个整体构成了硬盘的主引导扇区。

MBR分区表上有四项,每一项表示一个分区,所以一个分区最多只能表示4个分区。分区表上的4项用来表示主分区和扩展分区的信息。因为扩展分区最多只能有一个,所以硬盘最多可以有四个主分区或者三个主分区一个扩展分区。
余下的分区表是表示逻辑分区的,这里有必要阐述一点:逻辑区都是位于扩展分区里面的,并且逻辑分区的个数没有限制。

GPT分区表除了分区数量扩充较多外,支持的磁盘容量也可以超过2TB。
分区表
分区表由4项组成,每项16个字节,共4*16=64字节
512-446-64=2:磁盘有效标识

接口

IDE:价格低廉,兼容性强,性价比高,但数据传输慢,不支持热插拔等。
SCSI:传输速率高,读写性能好,可连接多个设备,可支持热插拔,CPU占用率低但是价格比较贵。应用于中、高端服务器和高档工作站中。
SATA:具备了更强的纠错能力,可靠性强,结构简单,支持热插拔等。
SAS:是SATA协议的扩展,传输效率高。
USB:扩展强,效率低。
光纤通道:热插拔性,高速带宽,远程连接,连接设备数量大等。

磁盘文件名

/dev/sd[a-p][1-128]:实体磁盘的文件名
/dev/vd[a-d][1-128]:虚拟磁盘的文件名
/dev/md[1-128]:软件磁盘的文件名
/dev/hd[a-d]:IDE的磁盘的文件名
/dev/cdrom:当前CD/DVD ROM
/dev/fd[0-1]:软驱

磁盘管理命令

fdisk命令

针对MBR分区表类型使用fdisk,针对GPT分区表类型使用gdisk,因为fdisk不支持大于2T的磁盘进行分区。gdisk与fdisk使用方法一致。

常用参数
fdisk -l #查看系统的分区详细信息
在这里插入图片描述
fdisk /dev/sdb #对sdb磁盘进行分区
在这里插入图片描述
例1:给sdb磁盘填加一个主分区,选择默认分区号2,扇区为4096-40000

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (4001-209715199,默认为 4096):
将使用默认值 4096
Last 扇区, +扇区 or +size{K,M,G} (4096-209715199,默认为 209715199):40000
分区 2 已设置为 Linux 类型,大小设为 17.5 MiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

p:创建主分区
e:创建扩展分区
w:保存新建内容并退出

例2:删除分区

命令(输入 m 获取帮助):d
分区号 (1,2,默认 2):2
分区 2 已删除

例3:改变分区类型

命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):1
Hex 代码(输入 L 列出所有代码):8e
已将分区“未知”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# fdisk -l
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20971520    10484736+  8e  Linux LVM
/dev/sdb2        83886080   125829119    20971520   83  Linux
/dev/sdb3       125829120   146800639    10485760   83  Linux

parted命令

既可以对MBR类型分区表进行分区,也可对GPT类型进行分区

#给磁盘sdb增加xfs类型的主分区两个,分别占空间为40%-60%,60%-70%
[root@localhost ~]# parted /dev/sdb
GNU Parted 3.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mkpart primary xfs 40% 60%                                       
(parted) mkpart primary xfs 60% 70%                                      
(parted) quit                                                             
信息: You may need to update /etc/fstab.

[root@localhost ~]# fdisk -l
磁盘 /dev/sdb:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x00055848

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048       40000       18976+  83  Linux
/dev/sdb2        83886080   125829119    20971520   83  Linux
/dev/sdb3       125829120   146800639    10485760   83  Linux
###################################################
(parted) rm 1  #删除第一个分区

[root@localhost ~]# fdisk -l
   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb2        83886080   125829119    20971520   83  Linux
/dev/sdb3       125829120   146800639    10485760   83  Linux

交互式

[root@localhost ~]# parted
GNU Parted 3.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sdb  #选择磁盘
使用 /dev/sdb
(parted) mkpart   #创建分区                                                        
分区类型?  primary/主分区/extended/扩展分区? primary                   
文件系统类型?  [ext2]? xfs                                               
起始点? 0%                                                               
结束点? 20%                                                              
###################################################
(parted) print  #打印分区表                                                          
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  标志
 1      1049kB  21.5GB  21.5GB  primary
 2      42.9GB  64.4GB  21.5GB  primary
 3      64.4GB  75.2GB  10.7GB  primary
###################################################
(parted) resizepart   #修改分区大小                                                 
分区编号? 1                                                              
结束点?  [21.5GB]? 10%                                                   
警告: Shrinking a partition can cause data loss, are you sure you want to continue?
是/Yes//No? y                                                           
(parted) print

Number  Start   End     Size    Type     File system  标志
 1      1049kB  10.7GB  10.7GB  primary
 2      42.9GB  64.4GB  21.5GB  primary
 3      64.4GB  75.2GB  10.7GB  primary

文件系统管理命令

格式化

mkfs

#将sdb1分区格式化为ext4格式
#方法1:
[root@localhost ~]# mkfs -t ext4 /dev/sdb1
#方法2:
[root@localhost ~]# mkfs.ext4 /dev/sdb1

mke2fs

-t指明文件系统类型
-b指明文件系统的块大小
-L指明卷标
-i指明inode与字节比率
-m指明预留的空间,百分比

查看文件系统属性(ext4系列)

[root@localhost ~]# dumpe2fs /dev/sdb1 #显示文件系统的属性信息
[root@localhost ~]# tune2fs -l /dev/sdb1 #查看超级块的内容
[root@localhost ~]# e2label /dev/sdb1 rosier #设定卷标
[root@localhost ~]# e2label /dev/sdb1 #查看卷标
rosier
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="rosier" UUID="5c375fa6-dd5f-4efa-a6a9-0dc58f65d4d8" TYPE="ext4" 

文件系统修复

#检查partition,如有问题会自动修复,检查时先卸载
[root@localhost ~]# e2fsck -a /dev/sdb1
mimi: clean, 11/655360 files, 83137/2621184 blocks
#设定superblock位置
[root@localhost ~]# mke2fs -n /dev/sdb1 #先查看其它可用superblock位置
Superblock backups stored on blocks: 
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
 [root@localhost ~]# e2fsck -b 163840 /dev/sdb1 修改superblock位置到163840
#检查sdb1是否有坏轨
 [root@localhost ~]# e2fsck -c /dev/sdb1

挂载

根文件系统除外的其它文件系统要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为挂载点。

临时挂载

#指定文件系统类型,指定挂载选项
[root@localhost ~]# mount -t ext4 -o rw /dev/sdb1 /data
#使用卷标进行挂载
[root@localhost ~]# mount -L rosier /data

挂载时若没有指定挂载选项,则为默认选项
defaults:rw,suid,dev,exec,auto,nouser,async,relatime
常见挂载选项

选项含义
rw读写
ro只读
suid支持suid
dev支持设备文件
nodev不支持设备文件
noexec不允许执行二进制文件
exec允许执行二进制文件
automount -a 开机自动挂载
noautomount -a 开机不自动挂载
async异步写入
sync同步写入
acl支持acl功能
remount在线重新挂载
pri指定优先级

卸载

#可以带设备名,也可带挂载点
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# umount /data

永久挂载

挂载配置文件:/etc/fstab文件
磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。
系统开机时会主动读取/etc/fstab这个文件中的内容。
在这里插入图片描述
第一列:设备名(或UUID,卷标)

UUID查看:blkid命令

第二列:挂载点
第三列:文件系统类型
第四列:参数
第五列:备份策略,通常这个参数的值为0或1

0代表不要做dump备份
1代表每天进行dump操作
2代表不定日期的进行dump操作

第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。

0不要校验
1最早校验(一般根目录会选择使用2
21级别检验完成之后进行检验
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值