
目录磁盘管理磁盘分区类型查看磁盘命令fdiskgdiskparted问题文件系统创建 mkfs挂载文件系统 mount永久挂载配置卸载文件系统 umountswap 交换分区制作swap顺序卸载永久挂载swap的格式 /etc/fstab文件文件系统检查和修复ext文件系统修复工具xfs文件系统修复工具LVM逻辑卷LVM三层架构创建LV空间顺序创建物理卷 pvcreate查看物理卷 pvs创建卷组 vgcreate查看vgs创建逻辑卷 lvcreate查看 lvs挂载文件系统删除挂载umountLV删除顺序LV扩缩容 lvextend卷组的扩容和缩容操作LV数据迁移 pvmove不同主机上数据迁移逻辑卷保护机制1.快照技术2.备份文件说明实践磁盘管理分区将多个物理存储空间划分为多个逻辑上的存储空间分区互不干扰分区后不影响另外的分区数据不同的分区创建不同的文件系统文件系统文件存储的方式和组织结构文件只能存储到文件系统上文件系统是在分区或磁盘上创建的文件系统类型XFS、SWAP、EXT4挂载文件系统挂载到某个目录----挂载点 挂载点访问的文件系统入口磁盘分区类型MBR传统老牌分区逐渐被GPT替代MBR分区方案特点1.分区数量限制最多支持4个主分区其实是3个主分区1个逻辑分区2.分区类型划分主分区、扩展分区、逻辑分区逻辑驱动器逻辑分区是在扩展分区里面划分的3.单个分区大小不能超过2TB4.如果系统盘采用MBR分区方案那么在磁盘的前446字节是它的引导程序5.磁盘的前512字节是特殊的存在前446字节是给引导程序代码留下的后64字节是分区表信息最后2字节是保留部分GPT相对于MBR是较新的1.分区数量限制是128个分区2.没有分区类型划分你可以理解为所有的分区全部都是主分区3.单个分区大小可以超过2TB4.分区表在磁盘的头部和尾部都有所以GPT有备份操作系统的系统盘来说Linux系统中一定会划分/分区和/boot分区那么它是采用哪种分区方案和系统的启动模式相关选择的是Legacy BIOS默认采用的分区方案是MBRLegacy BIOS模式的话只需要划分一个/boot分区选择的是UEFI BIOS的话默认采用的分区方案是GPTUEFI BIOS模式的话需要划分/boot分区和/boot/efi分区生产环境上怎么使用能用GPT就使用GPT不能使用GPT再使用MBR查看磁盘命令lsblk 树状型fuser 查看文件系统进程fuser -km 结束文件系统进程fdisk进入磁盘进行分区工作交互式分区没保存不生效重启后消失fdisk -l d delete a partition删除一个分区 n add a new partition创建一个分区 p print the partition table打印分区表信息打印分区 t change a partition type修改分区类型 ID type m print this menu查看有哪些命令 w write table to disk and exit保存操作并且退出 q quit without saving changes不保存直接退出 g create a new empty GPT partition table指定GPT分区方案 o create a new empty DOS partition table指定MBR分区方案针对于/dev/sda磁盘使用MBR分区方案划分2个主分区大小分别是1G和5G[rootrouter ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.37.4). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xbc9d6813. # 采用MBR分区方案 Command (m for help): n #创建一个分区 Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): # 直接回车指定的是主分区 Using default response p. Partition number (1-4, default 1): # 指定分区号 First sector (2048-41943039, default 2048): # 开始扇区一律不要写 Last sector, /-sectors or /-size{K,M,G,T,P} (2048-41943039, default 41943039): 1G # 结束扇区划分的分区大小 Created a new partition 1 of type Linux and of size 1 GiB. Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (2-4, default 2): First sector (2099200-41943039, default 2099200): Last sector, /-sectors or /-size{K,M,G,T,P} (2099200-41943039, default 41943039): 5G Created a new partition 2 of type Linux and of size 5 GiB.gdiskgdisk工具的命令和fdisk一样以前它是专门划分GPT分区的现在fdisk也会划分了partedfdisk和gdisk属于交互式分区工具只要没有保存都不会生效支持交互非交互执行立即生效#交互式分区 (parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? Start? 1M End? 1024M (parted) print Model: VMware, VMware Virtual S (scsi) Disk /dev/sda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 1024MB 1023MB primary ext2#非交互式 [rootrouter ~]# parted /dev/sda mklabel msdos mkpart primary ext2 1MiB 1024MiB问题[rootrouter ~]# parted /dev/sda mklabel msdos mkpart primary ext2 1024MiB 2048MiB Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? Yes Information: You may need to update /etc/fstab.出现这种问题是因为磁盘已经有了分区方案你这里又指定一次如果输入了Yes那么会直接覆盖。如果出现了把mklabel msdos去掉就可以了你别指定分区方案文件系统创建 mkfsmkfs -t 文件系统类型 设备路径mkfs.文件系统类型 设备路径挂载文件系统 mountmount -o-a将fstab文件中没有挂载的条目实现自动挂载 -r只读挂载 -w读写挂载 -t指定文件系统类型 -L基于标签挂载 标签就相当于文件系统的名字 不同的文件系统打标签命令不一样 xfs xfs_admin -L rhcsa /dev/sda1 xfs_admin -L -- /dev/sda1 ext: e2label /dev/sda2 rhce e2label /dev/sda2 -U基于UUID挂载文件系统的UUID -o支持额外的挂载选项 remount重新挂载 rw读写挂载 suid文件系统是否支持suid权限 exec文件系统是否支持可执行文件 async异步模式先写内存再同步刷到磁盘 sync同步模式直接写到磁盘中 atime/noatime是否更新atime包含目录和文件 auto/noauto是否支持自动挂载 mount -a exec/noexec是否支持文件系统上的可执行文件运行 dev/nodev是否支持在此文件系统上使用设备文件 suid/nosuid是否支持suid的权限 remount重新挂载 ro/rw只读或者读写挂载 user/nouser是否允许普通用户挂载此设备但是你还要将文件系统条目写到/etc/fstab文件中普通用户才可以挂载鸡肋因为挂载都是root操作的 defaults默认挂载选项是rw, suid, dev, exec, auto, nouser, and async的组合永久挂载配置/dev/sda1 /data1 ext4 defaults,rw,nouser,exec 0 0 /dev/sda2 /data2 xfs defaults 0 0卸载文件系统 umountumount 挂载点/文件系统swap 交换分区把磁盘空间当作内存使用运行操作系统运行更多的软件制作swap1. 分区常见的2. 磁盘3. 文件特殊情况比如系统没有多余的磁盘和分区但是某个程序运行又必须要swap这个时候可以创建一个指定大小的文件将其格式化为swap进行使用[rootrouter ~]# swapon -s Filename Type Size Used Priority /dev/nvme0n1p2 partition 2097148 0 -2顺序1. 将分区或者文件或者磁盘通过mkfs命令格式化为swap文件系统2. 通过mount命令将其实现挂载3. 如果要永久挂载swap的话需要写入到/etc/fstab文件[rootrouter ~]# mkswap /dev/sda3 Setting up swapspace version 1, size 3 GiB (3221221376 bytes) no label, UUID5189fcb3-7d3f-4529-8c0c-b2d3dcfd510e [rootrouter ~]# swapon -s Filename Type Size Used Priority /dev/nvme0n1p2 partition 2097148 0 -2 /dev/sda3 partition 3145724 0 -3 [rootrouter ~]# free -m total used free shared buff/cache available Mem: 3872 1427 2013 14 671 2444 Swap: 5119 0 5119卸载如果swap空间已经使用了卸载swap的话里面的数据不会丢失的它会重新返回到内存空间中swapoff /dev/sda3永久挂载swap的格式 /etc/fstab文件/dev/sda3 swap swap defaults 0 0文件系统检查和修复文件系统创建之后文件系统本身也具备元数据和数据元数据文件系统的类型inode数量block数量单个block的大小...数据superblock 超级块 block 块如果今天文件系统的超级块故障了那么就无法识别文件系统类型... 你就无法实现挂载上backup superblock 备份的超级块目的是为了恢复超级块的数据如果文件系统的超级块故障了则文件系统无法挂载但是数据不会丢失哦ext文件系统修复工具fsck 文件系统 e2fsck 文件系统xfs文件系统修复工具xfs_repair 文件系统LVM逻辑卷LVM是 Logical Volume Manager英文缩写中文是 逻辑卷管理器。它是linux系统中磁盘管理工具其思想是将物理磁盘和分区进行虚拟化创建虚拟的磁盘空间从虚拟的磁盘空间中按需分配使用起来更灵活更易于管理。LVM三层架构PVPhysical Volume 物理卷初始物理存储设备创建物理卷才能添加LVM卷组中VGVolume Group 卷组将多个物理卷合成一个统一的存储结构多个物理磁盘虚拟成一个虚拟盘可以灵活对虚拟盘进行划分分成多个逻辑卷LVLogical Volume 逻辑卷对卷组进行划分分配出来的虚拟灵活空间格式化和挂载提供给操作系统使用LE 逻辑卷最小的寻址单元默认和PE是1对1关系PE 组成卷组的单元默认单个PE大小4MB再创建组指定PE大小创建LV空间顺序将磁盘或分区等创建PV物理卷将多个PV物理卷加入到一个VG卷组中将VG卷组里面划分多个LV逻辑卷对LV逻辑卷格式化文件系统挂载文件系统将/dev/sdb、/dev/sdc、/dev/sdd三个盘制作为PV物理卷全部加入到vgdemo这个卷组中卷组单个PE大小是4MB在卷组上创建2个逻辑卷分别是大小为5G的lv1和大小为10G的lv2将lv1格式化为xfs将lv2格式化为ext4实现永久挂载创建物理卷 pvcreaterootrouter ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd Physical volume /dev/sdb successfully created. Physical volume /dev/sdc successfully created. Physical volume /dev/sdd successfully created. Creating devices file /etc/lvm/devices/system.devices查看物理卷 pvspvdisplay 以详细格式展示物理卷的完整属性创建卷组 vgcreate[rootrouter ~]# vgcreate vgdemo /dev/sdb /dev/sdc /dev/sdd Volume group vgdemo successfully created -s 选项指定单个PE的大小查看vgscgdisplay 以详细格式展示物理卷的完整属性创建逻辑卷 lvcreate[rootrouter ~]# lvcreate -n lv1 -L 5G vgdemo Logical volume lv1 created. [rootrouter ~]# lvcreate -n lv2 -l 2560 vgdemo Logical volume lv2 created. -L 直接指定lv大小 -l 指定PE数量查看 lvslvdisplay 以详细格式展示物理卷的完整属性创建文件系统注意文件系统类型XFS、SWAP、EXT4[rootrouter ~]# mkfs.xfs /dev/vgdemo/lv1 [rootrouter ~]# mkfs.ext4 /dev/vgdemo/lv2挂载文件系统挂载mount删除挂载umount[rootrouter ~]# mkdir /lv1 [rootrouter ~]# mkdir /lv2 [rootrouter ~]# mount /dev/vgdemo/lv1 /lv1 [rootrouter ~]# mount /dev/vgdemo/lv2 /lv2 [rootrouter ~]# df -Th | grep lv /dev/mapper/vgdemo-lv1 xfs 5.0G 68M 4.9G 2% /lv1 /dev/mapper/vgdemo-lv2 ext4 9.8G 24K 9.3G 1% /lv2LV删除顺序1.如果有文件系统挂载一定要先卸载2. 删除LV逻辑卷 lvremove3. 删除VG卷组 vgremove4. 删除PV物理卷 pvremove[rootrouter ~]# umount /lv1 [rootrouter ~]# umount /lv2 [rootrouter ~]# lvremove /dev/vgdemo/lv1 //逻辑卷卸载 Do you really want to remove active logical volume vgdemo/lv1? [y/n]: y Logical volume lv1 successfully removed. [rootrouter ~]# lvremove /dev/vgdemo/lv2 /dev/vgdemo/lv3 -y Logical volume lv2 successfully removed. Logical volume lv3 successfully removed. [rootrouter ~]# vgremove vgdemo //卷组卸载 Volume group vgdemo successfully removed [rootrouter ~]# pvremove /dev/sdb /dev/sdc /dev/sdd //物理卷卸载 Labels on physical volume /dev/sdb successfully wiped. Labels on physical volume /dev/sdc successfully wiped. Labels on physical volume /dev/sdd successfully wiped.LV扩缩容 lvextend为了存储更多的数据需要对已有的LV进行扩容扩容LV之后还需要拉升文件系统的大小逻辑卷扩容只要所在的卷组空间足够就可以直接扩卷组空间不够需要先给卷组扩容再给逻辑卷扩容。所以逻辑卷扩容分为俩个场景1. 卷组空间足够2. 卷组空间不够[rootrouter ~]# lvextend -L 10G /dev/vg0/lv1 Size of logical volume vg0/lv1 changed from 5.00 GiB (1280 extents) to 10.00 GiB (2560 extents). Logical volume vg0/lv1 successfully resized.不同的文件系统拉升命令不一样xfsxfs_growfsextresize2fs卷组的扩容和缩容操作vgextend 卷组名 物理卷vgreduce 卷组名 物理卷LV数据迁移 pvmove[rootrouter ~]# pvmove /dev/sdb /dev/sda4不同主机上数据迁移a 禁用卷组b 将整个卷组信息导出来c 从服务器设备上拔出来插入其他服务器设备上d 导入卷组信息e 扫描卷组和逻辑卷[rootrouter ~]# vgchange -an vg0 0 logical volume(s) in volume group vg0 now active [rootrouter ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv1 vg0 -wi------- 15.00g lv2 vg0 -wi------- 10.00g [rootrouter ~]# lvscan inactive /dev/vg0/lv1 [15.00 GiB] inherit inactive /dev/vg0/lv2 [10.00 GiB] inherit逻辑卷保护机制1.快照技术COW写时复制写前复制LVM的快照是基于COW的lvm的cow快照其实是一种特殊的lv逻辑卷类型是snap类型#创建COW快照 [rootrouter ~]# lvcreate -n lv1-snap -s -L 64M /dev/vg0/lv1 #还原快照 [rootrouter ~]# lvconvert --merge /dev/vg0/lv1-snap Merging of volume vg0/lv1-snap started. vg0/lv1: Merged: 100.00%ROW写时重定向虚拟机的快照2.备份文件我们对卷组的所有的操作都会记录到一个文件中对卷组上面的逻辑卷操作也是一样的/etc/lvm/archive vgcfgrestore -l vg0 vgcfgrestore -f /etc/lvm/archive/vg0_00017-871139501.vg/vg0_00017-871139501.vg vg0说明n创建分区p选择创建分区1分区编号2048起始扇区设置分区大小 5Gw保存并退出e扩展分区 分区时不指定分区大小直接默认实践1.调整逻辑卷大小将名为zahngsan的逻辑卷调整512M确保文件系统的内容保持不变调整后的逻辑卷大小范围498M~511M的范围内都可以接受vextend -r -L 512 /dev/exam/zhangsan2.swap交换分区配置向serverb.lab.example.com添加一个额外的交换分区512MiB。交换分区应在系统启动时自动挂载。不要删除或以任何方式改动系统上的任何现有交换分区创建分区 [rootserverb ~]# fdisk /dev/vdb 分一个512M的分区类型设置为82 swap Command (m for help): n 新建分区 Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): 直接回车 创建主分区 Using default response p. Partition number (2-4, default 2): 直接回车设置分区号为2 First sector (1173504-10485759, default 1173504): Last sector, /-sectors or /-size{K,M,G,T,P} (1173504-10485759, default 10485759): 512M Created a new partition 2 of type Linux and of size 512 MiB.512M设置分区大小 Command (m for help): t 转换分区类型 Partition number (1,2, default 2): 直接回车默认转换最后一个分区即第二个分区 Hex code or alias (type L to list all): 82 设置swap类型为82 Changed type of partition Linux to Linux swap / Solaris. Command (m for help): p 查看分区情况 Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 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 Disklabel type: dos Disk identifier: 0x870a45f4 Device Boot Start End Sectors Size Id Type /dev/vdb1 2048 1173503 1171456 572M 83 Linux /dev/vdb2 1173504 2222079 1048576 512M 82 Linux swap / Solaris Command (m for help): w 保存并退出 格式化为swap并配置开机自动挂载 [rootserverb ~]# mkswap /dev/vdb2 [rootserverb ~]# echo /dev/vdb2 swap swap defaults 0 0 /etc/fstab [rootserverb ~]# swapon -a 验证效果 [rootserverb ~]# free -m total used free shared buff/cache available Mem: 1774 194 1376 12 204 1423 Swap: 511 0 511 注意 swap为511M 是符合题目需求的swap文件系统自身有一定占用3.启动VMmare,在需要打开的虚拟机编辑中重新添加一块磁盘实践磁盘管理命令删除分区二种情况挂载好了的分区没有挂载的分区使用fdisk /dev/nvme0n1进入分区p查看分区信息输入d输入1......先使用lsblk查看磁盘信息Fdisk /dev/nvme0n1 //进入磁盘分区中进行分区n创建分区根据提示选择p或者ee是扩展分区p是创建普通的分区重复步骤n创建分区根据提示选择p或者ee是扩展分区p是创建普通的分区创建扩展分区e的时候不用设置都是G自动默认进行下一步扩展分区设置好后再次分的区是逻辑分区根据命令的提示输入5后再设设置1G红色提示表示以及没有可用的分区了w保存并退出先格式化再挂载格式化命令mkfsEXT4是文件的系统类型Mount 临时挂载挂载的源路径挂载到哪里的路径用lsblk查看挂载成没成功--森bright