磁盘管理

  • 硬盘介绍

  • 磁盘分区工具和挂载

硬盘介绍

常见磁盘类型:

  • SAS硬盘

  • SATA硬盘

  • SSD硬盘

  • SCSI硬盘

  • IDE硬盘

SAS硬盘:

  • SAS(串行连接SCSI接口)

  • SAS(Serial Attached SCSI),串行连接SCSI接口,串行连接小型计算机系统接口。

  • SAS是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结线改善内部空间等。

  • SAS的接口技术可以向下兼容SATA。

磁盘尺寸:

  • 3.5英寸设计

  • 2.5英寸设计

此前主流的桌面磁盘和服务器磁盘都是采用3.5英寸设计,而SAS硬盘除了具有传统的3.5英寸规格之外,还采用了2.5英寸的缩小版,这样可以在机架式服务器有限的空间内安装更多的磁盘以扩充存储系统的容量,也能够为其他配件腾出更大的空间,以便通风散热,在2U高度内使用8个2.5英寸的SAS硬盘位已经成为大多数服务器厂商的选择。

数据线和电源接口,串型和并型哪个快?

  • 串口形容一下就是 一条车道,而并口就是有8个车道。同一时刻能传送8位(一个字节)数据。

  • 但是并不是并口快,由于8位通道之间的互相干扰。传输受速度就受到了限制。当传输出错时,要同时重新传8个位的数据,而且传输速度越快,干扰越严重。串口没有干扰,传输出错后重发一位就可以了。而且串口传输的时钟频率要比并口高。

当下流行的磁盘种类;常见硬盘品牌:希捷 西数 日立 HP DELL EMC IBM

硬盘分几种?

A.从工作原理来说:

  • 固态:价格相对贵,寿命长,读取速度

  • 机械:怕摔、怕磁,(单位换下来的坏盘会做消磁处理),读取速度---》磁道寻址时间,潜伏时间

B.从硬盘的接口来说

  • STAT:用在低端服务器多

  • SAS、SCSI:用在中高服务器

  • PCIE M.2

对Linux来说,在内核中,不同的接口对应有不同的命名方式:

| 操作系统 | IDE | STAT.SCSI | SAS |

|-------|----------|-----------|----------|

| RHEL5 | /dev/hda | /dev/sda | /dev/sda |

| RHEL6 | /dev/sda | /dev/sda | /dev/sda |

| KVM | /dev/vda |

磁盘分区工具和挂载

硬盘分区符认识

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的分区方式,那么它没有限制主分区个数

命名方式: /dev/sd[a-z]n;其中:a-z 表示设备的序号,如sda表示第一块scsi硬盘,sdb就是第二块......,n 表示每块磁盘上划分的磁盘分区编号

使用fdisk管理分区

fdisk:磁盘分区,是Linux发行版本中最常用的分区工具

用法:fdisk [选项] device

常用选项:-l 查看硬盘分区表

例:对sdb这块盘划分一个100M的分区出来


[root@love ~]# 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 # 保存退出



[root@love ~]# ls /dev/sdb*

/dev/sdb /dev/sdb1

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


[root@love ~]# 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)

# 解决:让新生成的分区生效:

[root@love ~]#reboot # 这个是最好的方法

# 或

[root@love ~]# partx -a /dev/sda # 获得新分区表

使用sdb1新分区:


[root@love ~]# mkfs.ext4 /dev/sdb1

[root@love ~]# mkfs.xfs /dev/sdb1 # 格式化,-f 对已经存在文件系统的分区,强制格式化

[root@love ~]# mkdir /sdb1 # 创建挂载点

[root@love ~]# mount /dev/sdb1 /sdb1/ # 挂载

[root@love ~]# 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



[root@love ~]# cd /sdb1/ # 使用新分区

[root@love sdb1]# ls

[root@love sdb1]# cp /etc/passwd ./

解决卸载不了的问题


root@xuegod63 ~]# cd /sdb1/

[root@love sdb1]# umount /sdb1

# umount: /sdb1:目标忙。

# (有些情况下通过 lsof(8) 或 fuser(1) 可以找到有关使用该设备的进程的有用信息)

[root@love sdb1]# lsof /sdb1

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

bash 2823 root cwd DIR 8,17 20 64 /sdb1

lsof 2952 root cwd DIR 8,17 20 64 /sdb1

lsof 2953 root cwd DIR 8,17 20 64 /sdb1

[root@love sdb1]# kill -9 2823 # 方法1

[root@love sdb1]# cd # 方法2 退出目录,这个最合适

[root@love ~]# umount /dev/sdb1

# 注:umount 挂载点 或 umount 设备路径

写入配置文件,让它开机自动挂载


[root@love /]# vim /etc/fstab # 在文件最后写入

/dev/sdb1 /sdb1 xfs defaults 0 0

# 要挂载的分区设备 挂载点 文件系统类型 挂载选项 是否备份 是否检测



[root@love ~]# mount -a # 自动挂载/etc/fstab中没有挂载上的文件

[root@love ~]# 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

使用UUID挂载


[root@love ~]# blkid

/dev/sda1: UUID="a635d4d2-a21e-4d9b-b199-4c8d5cfed808" TYPE="xfs"

/dev/sda2: UUID="46f139f8-fd5c-4e51-8d5c-b33f6c7aa38e" TYPE="swap"

/dev/sda3: UUID="4bcb433e-10e6-464d-a40b-00d018950149" TYPE="xfs"

/dev/sdb1: UUID="5e3a580a-e5b4-448c-88bf-d22fb3d1d9e2" TYPE="xfs"

[root@love /]# echo "UUID=5e3a580a-e5b4-448c-88bf-d22fb3d1d9e2 /sdb1 xfs defaults 0 0" >> /etc/fstab