磁盘管理
会在linux中使用硬盘
-
分区
-
格式化(重新安装文件系统)
-
挂载
磁盘的硬件架构
-
扇区:一个扇区512字节,是磁盘的最小单位
-
磁道:同一盘片不同半径的同心圆
-
柱面:不同盘片相同半径构成的圆(柱面和磁道数量相同)
mbr
mbr分区(老技术)gpt(新技术)
mbr:2TB以下的硬盘 fdisk
GPT:2TB以上的硬盘 gdisk
mbr位于磁盘的第一个扇区,其中包含
-
主引导程序
-
分区表
主引导程序:
加电,主板bios,检测硬件是否故障,启动硬件,根据bios中的设置去找系统
默认的优先级 本地硬盘——>本地光驱——>外接设备——>网卡
找硬盘,先找到硬盘的第一扇区(mbr)
mbr中的主引导程序会协助硬件找到操作系统
mbr分区
只能分4个
分区类型:
-
主分区:可以直接使用,安装操作系统,存储文件等
-
扩展分区:不可以直接使用,需要再划分逻辑分区,让分区超过4个
-
逻辑分区:可以直接使用,存储文件
文件系统:用来管理(增删改查恢复)文件的程序
文件系统
文件系统的组成
-
内核中的模块:ext4,xfs,vfat
-
Linux的虚拟文件系统:VFS
-
用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
xfs centos7默认文件系统
ntfs win 默认文件系统
ext4
swap
-
硬盘接口刷新命令:
echo "- - -" >/sys/class/scsi_host/host0/scan
echo "- - -" >/sys/class/scsi_host/host1/scan
echo "- - -" >/sys/class/scsi_host/host2/scan
硬盘多就以下往下刷新,在市场环境中不允许服务器重启的情况下使用,一般都不允许重启服务器,常用命令
mkfs -t:指定文件系统类型
lsblk:显示块设备(磁盘)显示比较详细
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 99G 0 part ├─centos-root 253:0 0 50G 0 lvm /├─centos-swap 253:1 0 2G 0 lvm [SWAP]└─centos-home 253:4 0 47G 0 lvm /home sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 20G 0 part ├─vg01-lvol0 253:2 0 15G 0 lvm └─vg01-cxk 253:3 0 20G 0 lvm sdc 8:32 0 20G 0 disk └─sdc1 8:33 0 20G 0 part └─vg01-cxk 253:3 0 20G 0 lvm sr0 11:0 1 4.2G 0 rom
partprobe:分完区以后,系统未识别可是使用该命令刷新分区表
blkid:查看设备的唯一
[root@localhost ~]# blkid /dev/sda1: UUID="a70be810-5c71-48cb-a389-a4358ba97829" TYPE="xfs" /dev/sda2: UUID="fFpEHT-PN0A-Zo4h-Y93e-hMvc-KOMP-EoDI4j" TYPE="LVM2_member" /dev/sdb1: UUID="7P5Ypp-kVOc-WxEU-eyPa-Zz2X-sdDp-xuMHcT" TYPE="LVM2_member" /dev/sdc1: UUID="7CDYAo-aUVH-MFpF-C5RA-npyU-sbLL-c3tB18" TYPE="LVM2_member" /dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" /dev/mapper/centos-root: UUID="14a2fd8f-0233-499e-a65c-a05fd60ebd51" TYPE="xfs" /dev/mapper/centos-swap: UUID="a24fac42-07c1-4a59-a869-1ab8a0c8c36a" TYPE="swap" /dev/mapper/vg01-cxk: UUID="4d603c8b-4abb-4af2-88a4-7ed089060f83" TYPE="xfs" /dev/mapper/centos-home: UUID="18031c09-075d-4185-a966-9650b3f7be62" TYPE="xfs"
创建分区
普通分区fdisk /dev/sdb > n > p>w
[root@localhost ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x36c531ec 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n Partition type:p primary (0 primary, 0 extended, 4 free)e extended Select (default p): Using default response p 分区号 (1-4,默认 1): 起始 扇区 (2048-41943039,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G 分区 1 已设置为 Linux 类型,大小设为 10 GiB 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。
扩展分区fdisk /dev/sdb > n > e>w
[root@localhost ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助):n Partition type:p primary (1 primary, 0 extended, 3 free)e extended Select (default p): e 分区号 (2-4,默认 2): 起始 扇区 (20973568-41943039,默认为 20973568): 将使用默认值 20973568 Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039): 将使用默认值 41943039 分区 2 已设置为 Extended 类型,大小设为 10 GiB 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。
逻辑分区fdisk /dev/sdb > n > l>w
[root@localhost ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助):n Partition type:p primary (1 primary, 1 extended, 2 free)l logical (numbered from 5) Select (default p): l 添加逻辑分区 5 起始 扇区 (20975616-41943039,默认为 20975616): 将使用默认值 20975616 Last 扇区, +扇区 or +size{K,M,G} (20975616-41943039,默认为 41943039): 将使用默认值 41943039 分区 5 已设置为 Linux 类型,大小设为 10 GiB 命令(输入 m 获取帮助): 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。
格式化
mkfs.xfs /dev/sdb1
[root@localhost ~]# mkfs.xfs /dev/sdb1 meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=2621440, 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
挂载
mount:临时挂载
[root@localhost ~]# mount /dev/sdb1 /mnt [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 99G 0 part ├─centos-root 253:0 0 50G 0 lvm /├─centos-swap 253:1 0 2G 0 lvm [SWAP]└─centos-home 253:2 0 47G 0 lvm /home sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 10G 0 part /mnt ├─sdb2 8:18 0 1K 0 part └─sdb5 8:21 0 10G 0 part sdc 8:32 0 20G 0 disk sr0 11:0 1 1024M 0 rom
/etc/fstab:永久挂在
一定使用UUID绑定挂载:blkid查看块设备UUID
设备名 挂载点 文件系统类型 权限 0 0
fsck:修复文件系统
swap分区
当内存不足时将硬盘空间当成内存使用
分区
[root@localhost ~]# fdisk /dev/sdc 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x742e2b6e 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):n Partition type:p primary (0 primary, 0 extended, 4 free)e extended Select (default p): Using default response p 分区号 (1-4,默认 1): 起始 扇区 (2048-41943039,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039): 将使用默认值 41943039 分区 1 已设置为 Linux 类型,大小设为 20 GiB 命令(输入 m 获取帮助):t 已选择分区 1 Hex 代码(输入 L 列出所有代码):82 已将分区“Linux”的类型更改为“Linux swap / Solaris” 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。
格式化
mkfs.xfs /dev/sdc1
挂载 > 开启
-
关闭swap分区
-
swapoff -a 【设备名】
-
-
开启swap分区
-
swapon -a 【设备名】
-
逻辑卷
分区缺点
1.没有备份功能
2.无法扩容
3,性能取决于硬盘本身
逻辑卷原理:lvm分区(t要8e) 一整块磁盘
1.先确定可以使用的磁盘或分区
2.先将硬盘拆分成一个个小的块(块大小默认为4M)
3.然后将这些块组成一个集合
4.从这个集合中取块(去空间)
逻辑卷解决了分区无法扩容的问题
/boot分区用于存放引导文件,不能基于创建
图形界面管理工具
LVM的管理命令
主要命令
功能 | 物理卷管理(pv) | 卷组管理(vg) | 逻辑卷管理(lv) |
---|---|---|---|
scan | pvscan | vgscan | lvscan |
create | pvcreate | vgcreate | lvcreate |
display | pvdisplay | vgdisplay | lvdisplay |
remove | pvremove | vgremove | lvremove |
extend | vgextend | lvextend | |
reduce | vgreduce | lvreduce |
pvcreat 设备1 [设备2.....]
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
[root@localhost ~]# fdisk /dev/sdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助):n Partition type:p primary (0 primary, 0 extended, 4 free)e extended Select (default p): Using default response p 分区号 (1-4,默认 1): 起始 扇区 (2048-41943039,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039): 将使用默认值 41943039 分区 1 已设置为 Linux 类型,大小设为 20 GiB 命令(输入 m 获取帮助):t 已选择分区 1 Hex 代码(输入 L 列出所有代码):8e 已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x36c531ec 设备 Boot Start End Blocks Id System /dev/sdb1 2048 41943039 20970496 8e Linux LVM 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 [root@localhost ~]# fdisk /dev/sdc 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助):n Partition type:p primary (0 primary, 0 extended, 4 free)e extended Select (default p): Using default response p 分区号 (1-4,默认 1): 起始 扇区 (2048-41943039,默认为 2048): 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039): 将使用默认值 41943039 分区 1 已设置为 Linux 类型,大小设为 20 GiB 命令(输入 m 获取帮助):t 已选择分区 1 Hex 代码(输入 L 列出所有代码):8e 已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):w The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 [root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc1 WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: yWiping xfs signature on /dev/sdb1. WARNING: xfs signature detected on /dev/sdc1 at offset 0. Wipe it? [y/n]: yWiping xfs signature on /dev/sdc1.Physical volume "/dev/sdb1" successfully created.Physical volume "/dev/sdc1" successfully created. [root@localhost ~]# vgcreate vg01 /dev/sdb1 /dev/sdc1Volume group "vg01" successfully created [root@localhost ~]# lvcreate -L +10G -n cxk vg01Logical volume "cxk" created. [root@localhost ~]# mkfs.xfs /dev/vg01/cxk meta-data=/dev/vg01/cxk isize=512 agcount=4, agsize=655360 blks= sectsz=512 attr=2, projid32bit=1= crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=2621440, 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 [root@localhost ~]# mount /dev/vg01/cxk /mnt [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 99G 0 part ├─centos-root 253:0 0 50G 0 lvm /├─centos-swap 253:1 0 2G 0 lvm [SWAP]└─centos-home 253:2 0 47G 0 lvm /home sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 20G 0 part └─vg01-cxk 253:3 0 10G 0 lvm /mnt sdc 8:32 0 20G 0 disk └─sdc1 8:33 0 20G 0 part sr0 11:0 1 1024M 0 rom