Linux 磁盘管理,挂载分区管理,磁盘分区扩容缩容管理,详细教程
今天小编给各位分享低格硬盘怎么操作的知识,文中也会对其通过Linux 磁盘管理,挂载分区管理,磁盘分区扩容缩容管理,详细教程和磁盘管理等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!
内容导航:
一、Linux 磁盘管理,挂载分区管理,磁盘分区扩容缩容管理,详细教程
一、Linux磁盘基本信息查看命令df -h 查看已经在使用或挂载的磁盘信息。查看的是文件系统的大小
ubuntu@ubuntu:~$ df -hFilesystem Size Used Avail Use% Mounted onudev 1.9G 0 1.9G 0% /devtmpfs 391M 1.5M 390M 1% /run/dev/mapper/ubuntu--vg-ubuntu--lv 19G 6.8G 11G 39% /tmpfs 2.0G 0 2.0G 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup/dev/loop1 71M 71M 0 100% /snap/lxd/21029/dev/sda2 976M 107M 803M 12% /boot/dev/loop0 62M 62M 0 100% /snap/core20/1242/dev/loop2 56M 56M 0 100% /snap/core18/2253/dev/loop4 33M 33M 0 100% /snap/snapd/12704/dev/loop3 56M 56M 0 100% /snap/core18/2128/dev/loop5 43M 43M 0 100% /snap/snapd/14066/dev/loop6 68M 68M 0 100% /snap/lxd/21835tmpfs 391M 0 391M 0% /run/user/1000/dev/sdb2 1.8G 5.6M 1.7G 1% /mnt
关键是重要的系统分区挂载:
/dev/mapper/ubuntu--vg-ubuntu--lv 19G 6.8G 11G 39% //dev/sda2 976M 107M 803M 12% /boot
lsblk 查看所有存在的磁盘及分区(不管使用挂载是否),查看的是磁盘的大小
在此sda为默认磁盘,系统也在这块磁盘之中,操作需谨慎在谨慎,尤其是sda3分区。
ubuntu@ubuntu:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTloop0 7:0 0 61.9M 1 loop /snap/core20/1242loop1 7:1 0 70.3M 1 loop /snap/lxd/21029loop2 7:2 0 55.5M 1 loop /snap/core18/2253loop3 7:3 0 55.4M 1 loop /snap/core18/2128loop4 7:4 0 32.3M 1 loop /snap/snapd/12704loop5 7:5 0 42.2M 1 loop /snap/snapd/14066loop6 7:6 0 67.2M 1 loop /snap/lxd/21835sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 19G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 99M 0 part └─sdb2 8:18 0 1.9G 0 part /mnt
lsblk -f 查看磁盘分区格式,有格式才能挂载成功。
ubuntu@ubuntu:~$ lsblk -fNAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINTloop0 squashfs 0 100% /snap/core20/1242loop1 squashfs 0 100% /snap/lxd/21029loop2 squashfs 0 100% /snap/core18/2253loop3 squashfs 0 100% /snap/core18/2128loop4 squashfs 0 100% /snap/snapd/12704loop5 squashfs 0 100% /snap/snapd/14066loop6 squashfs 0 100% /snap/lxd/21835sda ├─sda1 ├─sda2 ext4 d5001b8f-61a9-4256-a0b9-a80655679a94 802.7M 11% /boot└─sda3 LVM2_member AHD2gO-JnY7-HtBk-fazX-yTYH-9oBh-venh4n └─ubuntu--vg-ubuntu--lv ext4 e5f6d371-d930-4ff3-a798-b01e0ba04d9a 10.9G 36% /sdb ├─sdb1 ext4 ae939992-ca1f-4acc-878e-500f6ce2371b └─sdb2 ext4 e9278c58-39b8-4825-99f6-d055ca818ad0 1.7G 0% /mnt
分区无格式的,通过以下命令格式化分区格式。
#格式化/dev/sdb2为ext4格式。sudo mkfs.ext4 /dev/sdb2#或者sudo mkfs -t ext4 /dev/sdb2
二、添加新硬盘直接挂载,或分区后挂载1:直接挂载整个硬盘
添加一块新硬盘,注:是添加一块新硬盘,不是扩容硬盘。
添加后的硬盘名字信息为:sdb,sbc,sdd....以此类推。
如这里添加一块sdb,没有任何操作,是没法挂载。
ubuntu@ubuntu:~$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTloop0 7:0 0 61.9M 1 loop /snap/core20/1242loop1 7:1 0 70.3M 1 loop /snap/lxd/21029loop2 7:2 0 55.5M 1 loop /snap/core18/2253loop3 7:3 0 55.4M 1 loop /snap/core18/2128loop4 7:4 0 32.3M 1 loop /snap/snapd/12704loop5 7:5 0 42.2M 1 loop /snap/snapd/14066loop6 7:6 0 67.2M 1 loop /snap/lxd/21835sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 19G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /sdb 8:16 0 20G 0 disk
格式化,挂载。
#格式化硬盘sudo mkfs.ext4 /dev/sdb#挂载硬盘sudo mount /dev/sdb /mnt/#查看挂载信息df -h
ubuntu@ubuntu:~$ df -hFilesystem Size Used Avail Use% Mounted onudev 1.9G 0 1.9G 0% /devtmpfs 391M 1.5M 390M 1% /run/dev/mapper/ubuntu--vg-ubuntu--lv 19G 6.8G 11G 39% /tmpfs 2.0G 0 2.0G 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup/dev/loop1 71M 71M 0 100% /snap/lxd/21029/dev/sda2 976M 107M 803M 12% /boot/dev/loop0 62M 62M 0 100% /snap/core20/1242/dev/loop2 56M 56M 0 100% /snap/core18/2253/dev/loop4 33M 33M 0 100% /snap/snapd/12704/dev/loop3 56M 56M 0 100% /snap/core18/2128/dev/loop5 43M 43M 0 100% /snap/snapd/14066/dev/loop6 68M 68M 0 100% /snap/lxd/21835tmpfs 391M 0 391M 0% /run/user/1000/dev/sdb 20G 45M 19G 1% /mnt
最简单的方式,挂载成功,完成。
2:硬盘分区后挂载分区
注:分区前,确保此硬盘没有重要数据,或者数据已备份。
先取消挂载,取消挂载后再分区。不取消挂载,也可以分区,但是一旦分区保存完成,此硬盘格式为无格式状态,虽然你还可以在原来挂载目录操作,但机器重启后,挂载自动取消,无法在挂载整个硬盘上去,原整个硬盘数据也全部没有了。分区也只有硬盘取消挂载的情况下,格式化分区才能生效,同时才能挂载上去。
sudo umount /mnt/
分区命令为 fdisk , fdisk -l 可查看所有已分区
#对sdb硬盘分区sudo fdisk /dev/sdb
相关操作参数输入:
#输入m查看命令操作Command (m for help): m#输入n添加新分区Command (m for help): nPartition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions)#输入P,类型主分区,只能4个主分区,扩展分区一般作用多为创建逻辑分区。扩展分区无法直接被使用的。Select (default p): p#主分区号码,默认即可,从1到4的顺序Partition number (1-4, default 1): #分区开始扇区,默认2048,不要小于2048,否则有些功能异常,不支持2048以下First sector (2048-41943039, default 2048): 2048#接受扇区,即多大空间的分区,自己换算,这里20000000大概为9.5G左右。Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 20000000Created a new partition 1 of type 'Linux' and of size 9.5 GiB.#w保存分区Command (m for help): wThe partition table has been altered.Syncing disks.#p打印显示已存在分区Command (m for help): pDisk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectorsDisk model: VMware Virtual SUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0xfc5ea7ecDevice Boot Start End Sectors Size Id Type/dev/sdb1 2048 20000000 19997953 9.5G 83 Linux#q退出
有些系统需要重启生效,可以不重启生效的命令
#更新内核分区表sudo partprobe
分区后的名称,以此类推为sdb1,sdb2,sdb3,sdb4.......
格式化,挂载分区
sudo mkfs.ext4 /dev/sdb1sudo mount /dev/sdb1 /mnt/
分区挂载完成,可以操作写入数据了
3:注意事项(扩展)
注:请不要在分区下(如sdb1,sdb2),在创建子分区。虽然创建出来分区有名称类似sdb2p1,sdb2p2,sdb2p3,sdb2p4的名称,保存也成功,但是系统不识别sudo fdisk -l,或者lsblk,都查看不到,没有生效。唯一的作用就是将此分区,格式变成无格式状态,需重新格式化挂载。数据也完了。
本人曾经小白失败经历分享:
一次查看硬盘,觉得sda(主硬盘,系统分区都在这里)下面分区挺大的,尤其是sda3,如下:
sda 8:0 0 500G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 499G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 499G 0 lvm /
觉得可以从sda3中在分区出来一点空间挂载, sudo fdisk /dev/sda3 然后一顿操作。
重启后,玩完,进不了系统,因为ubuntu--vg-ubuntu--lv根目录 / 被分区后,无法识别了,只能格式化此分区。如果格式化此分区,数据也全没了,关键还进不去系统了。当时一身冷汗,还好此服务器没部署服务。所以重装系统了。
这次经历注意两点:
1:不要轻易操作sda主硬盘下的分区。 2:不要在分区下,在创建子分区。 三、扩展分区与逻辑分区分区的时候有主分区(primary)和扩展分区(extended),主分区都知道,那扩展分区什么时候用呢?
主分区只能存在4个,无法再创建了,如果想创建多于4个主分区,这时候就需要创建扩展分区,通过扩展分区创建逻辑分区就可以使用了,和主分区使用没啥区别。注:extended无法直接使用,不可格式化,不可挂载,必须创建逻辑分区后才能使用。扩展分区下可创建多个逻辑分区。
创建扩展分区和逻辑分区
#分区sudo fdisk /dev/sdb
创建扩展分区,Partition type选择e即可,其他步骤一致。
Command (m for help): nPartition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions)Select (default p): ePartition number (2-4, default 2): First sector (20000001-41943039, default 20000768): Last sector, +/-sectors or +/-size{K,M,G,T,P} (20000768-41943039, default 41943039): 30000000Created a new partition 2 of type 'Extended' and of size 4.8 GiB.#p查看扩展分区sdb2完成。Command (m for help): pDisk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectorsDisk model: VMware Virtual SUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0xfc5ea7ecDevice Boot Start End Sectors Size Id Type/dev/sdb1 2048 20000000 19997953 9.5G 83 Linux/dev/sdb2 20000768 30000000 9999233 4.8G 5 Extended
创建逻辑分区,Partition type选择这时只有p和l选择,选择l(逻辑分区),其他步骤一致
Command (m for help): nPartition type p primary (1 primary, 1 extended, 2 free) l logical (numbered from 5)Select (default p): lAdding logical partition 5First sector (20002816-30000000, default 20002816): Last sector, +/-sectors or +/-size{K,M,G,T,P} (20002816-30000000, default 30000000): Created a new partition 5 of type 'Linux' and of size 4.8 GiB.#p查看逻辑分区sdb5完成。Command (m for help): pDisk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectorsDisk model: VMware Virtual SUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0xfc5ea7ecDevice Boot Start End Sectors Size Id Type/dev/sdb1 2048 20000000 19997953 9.5G 83 Linux/dev/sdb2 20000768 30000000 9999233 4.8G 5 Extended/dev/sdb5 20002816 30000000 9997185 4.8G 83 Linux
扩展分区默认sdb5开始命名,表示在4个主分区以后。逻辑分区好后,可以格式化挂载了。
sudo mkfs.ext4 /dev/sdb5sudo mount /dev/sdb5 /mnt/df -h
查看结果如下,挂载成功,可以使用了。
sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 9.5G 0 part ├─sdb2 8:18 0 1K 0 part └─sdb5 8:21 0 4.8G 0 part /mnt
四、标准分区扩容(非LVM)在同一块硬盘下的标准扩容,相对比较简单。步骤为删除需要扩容的分区编号,重新分区编号,重新挂载即可。
这里以sdb1为例,已挂载至/mysql路径,总共有20G,还有将近10G空闲,将空闲的分配给sdb1。
sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 9.8G 0 part /mysql
为了测试数据完整性,在sdb1创建一个文件test.txt,
cd /mysql/sudo vim test.txt
内容为test,mysql,12345678。
ubuntu@ubuntu:/$ cat /mysql/test.txttest,mysql,12345678
取消挂载
sudo umount /mysql
重新分区
sudo fdisk /dev/sdb
删除分区,再重新分区
#删除分区,选择所要扩展分区的编号,这里只有1个,默认删除第一个sdb1.Command (m for help): dSelected partition 1Partition 1 has been deleted.#重新分区Command (m for help): nPartition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions)#选择主分区Select (default p): p#编号1,还是原来的sdb1.Partition number (1-4, default 1): First sector (2048-41943039, default 2048): #结束大小不要小于原来的大小,否则容易造成数据改变或丢失,原来时10G,这里改为大概15GLast sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): 30780000Created a new partition 1 of type 'Linux' and of size 14.7 GiB.Partition #1 contains a ext4 signature.#按 N 保留 xfs 签名,移除的话分区的 UUID 会变更。Do you want to remove the signature? [Y]es/[N]o: nCommand (m for help): wThe partition table has been altered.Calling ioctl() to re-read partition table.Syncing disks.
扩容完成,注:不需要重新格式化,否则数据丢失,直接挂载使用即可。
挂载查看原来数据是否还在,原来数据还在,没有改变。至于为什么,涉及到磁盘的构成,有柱面,扇区,簇,编号之类的,有兴趣自己可以研究。
ubuntu@ubuntu:/$ sudo mount /dev/sdb1 /mysql/ubuntu@ubuntu:/mysql$ cat mysql/test.txt test,mysql,12345678
lsblk查看大小,sdb1由原来的10G左右,扩容为15G左右。扩容完成
sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 14.7G 0 part /mysql
五、系统根分区(LVM)扩容主要扩容系统根分区。如以下的系统的sda3,ubuntu--vg-ubuntu--lv根分区。
需谨慎操作,涉及到系统相关磁盘分区。
sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 19G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /
1:物理卷,卷组,逻辑卷
扩展之前。需要了解的三个概率:物理卷,卷组,逻辑卷。引入这个概念,可以解除物理隔离的限制。
物理卷:Physical volume 简称 PV物理卷在逻辑卷管理器中属于最底层的,任何的逻辑卷和卷组都必需依靠物理卷来建立,物理卷可以是一个完整的硬盘,也可以是硬盘中的某一个分区。
卷组 - Volume group 简称 VG卷组是建立在物理卷之上,一个卷组中可以包含一个或者多个物理卷。
逻辑卷 - Logical volume 简称 LV逻辑卷类似于非 LVM 系统中的硬盘分区,在逻辑卷之上可以建立文件系统 (比如 /home 或者 /usr 等)。
加上还有其他元素(有兴趣自己深究),一起构成LVM(Logical Volume Manager)逻辑卷管理。
总结:多个磁盘/分区/raid-->多个物理卷PV-->合成卷组VG-->从VG划分出逻辑卷LV-->格式化LV,挂载使用。
功能
PV管理命令
VG管理命令
LV管理命令
scan 扫描
pvscan
vgscan
lvscan
create 创建
pvcreate
vgcreate
vcreate
display 显示
pvdisplay
vgdisplay
lvdisplay
remove 移除
pvremove
vgremove
lvremove
extend 扩展
vgextend
lvextend
reduce 减少
vgreduce
lvreduc
举个通俗例子:多个磁盘/分区就是多袋小麦,创建物理卷(PV)就是分别磨成面粉,合成卷组(VG)就是把面粉和成一大团面团,逻辑卷(LV)就是分出去的一个个小坨小面团分别做包子饺子之类其他功能的。想要扩容给小面团(LV),就需要从大面条(VG)里面取出来补。需要扩容的根分区就是那一坨小面团。
2:同一块硬盘扩容根分区
如下:总磁盘30G大小,根分区20G,有10G空闲需要分配给ubuntu--vg-ubuntu--lv根分区。
sda 8:0 0 30G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot└─sda3 8:3 0 19G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 19G 0 lvm /
从根分区的逻辑卷管理(lvm)的名称可以看出,已存在的卷组(VG)为ubuntu--vg,和逻辑卷(LV)为ubuntu--lv,所有想要扩容,只要增加卷组(VG)的空间,然后分配给逻辑卷(LV)即可。
2.1:查看卷组(VG)和逻辑卷(LV)信息
也可以自行查看存在的卷组(VG)和逻辑卷(LV)。
#查看卷组,Free PE 为空闲可分配的空间。ubuntu@ubuntu:~$ sudo vgdisplay [sudo] password for ubuntu: --- Volume group --- VG Name ubuntu-vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size <19.00 GiB PE Size 4.00 MiB Total PE 4863 Alloc PE / Size 4863 / <19.00 GiB Free PE / Size 0 / 0 VG UUID Gvpatz-SSYp-qfrV-5AGf-BXAD-aVC7-XZlewX#查看逻辑卷 ubuntu@ubuntu:~$ sudo lvdisplay --- Logical volume --- LV Path /dev/ubuntu-vg/ubuntu-lv LV Name ubuntu-lv VG Name ubuntu-vg LV UUID XND7LS-kWJL-LISf-HmrN-eK7S-X8ea-2Lazo7 LV Write Access read/write LV Creation host, time ubuntu-server, 2021-11-27 09:39:38 +0000 LV Status available # open 1 LV Size <19.00 GiB Current LE 4863 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0
2.2:创建分配分区(获取小麦原材料)
为了给增加卷组(VG)的空闲可用空间,先创建一个分区,将剩下的分配给分区。
sudo fdisk /dev/sda
n分区,全部默认回车即可,记住主分区为4,即sda4。
Command (m for help): nPartition number (4-128, default 4): First sector (41940992-62914526, default 41940992): Last sector, +/-sectors or +/-size{K,M,G,T,P} (41940992-62914526, default 62914526): Created a new partition 4 of type 'Linux filesystem' and of size 10 GiB.Command (m for help): pDisk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectorsDisk model: VMware Virtual SUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: gptDisk identifier: 0EC75B7E-5AD4-4971-B452-57826F74E4FDDevice Start End Sectors Size Type/dev/sda1 2048 4095 2048 1M BIOS boot/dev/sda2 4096 2101247 2097152 1G Linux filesystem/dev/sda3 2101248 41940991 39839744 19G Linux filesystem/dev/sda4 41940992 62914526 20973535 10G Linux filesystemCommand (m for help): wThe partition table has been altered.Syncing disks.
2.3:创建物理卷PV(磨成面粉)
sudo pvcreate /dev/sda4
显示如下:
ubuntu@ubuntu:~$ sudo pvcreate /dev/sda4 Physical volume "/dev/sda4" successfully created.
注意:老的Linux在创建PV时,需要将分区类型改为Linux
LVM(8e)。但新的系统已经非常智能,即使默认的Linux分区(83),也可以创建PV。具体过程是fdisk 过程中,选择参数
l:查看所有分区类型代码,及 t:修改分区类型代码,选择代码8e类型即可。
2.4:添加到卷组VG中(大面团)
将物理卷PV添加到卷组VG中(面粉加到大面团中),卷组VG这里已有,上面查询得知名称为ubuntu-vg
sudo vgextend ubuntu-vg /dev/sda4
显示如下:
ubuntu@ubuntu:~$ sudo vgextend ubuntu-vg /dev/sda4Volume group "ubuntu-vg" successfully extended
再次查看卷组VG,Free PE / Size 已经有了10G的空闲空间可分配了。
ubuntu@ubuntu:~$ sudo vgdisplay --- Volume group --- VG Name ubuntu-vg System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 28.99 GiB PE Size 4.00 MiB Total PE 7422 Alloc PE / Size 4863 / <19.00 GiB Free PE / Size 2559 / <10.00 GiB VG UUID Gvpatz-SSYp-qfrV-5AGf-BXAD-aVC7-XZlewX
2.5:分配空间给逻辑卷根LV(小面团)
从卷组VG分配空间给逻辑卷根LV目录(从大面团取出可用的给需要的小面团),上面可查询可知,LV名称为ubuntu-lv,扩容命令及参数参考如下:
#分配10G ,-L指定逻辑卷的大小,单位为“kKmMgGtT”字节sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv#或者100%空闲分配, -l指定逻辑卷的大小(LE数)sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv#或者逻辑卷扩展至30Gsudo lvextend -L 30G /dev/ubuntu-vg/ubuntu-lv #以上都可以加上参数-r ,将逻辑卷的文件系统扩展(如:房子建好了,需要装修,不需要指定大小)
刚开始不够10G,多少有点误差,所有分配9.9G就可以了。显示successfully成功,显示如下:
ubuntu@ubuntu:~$ sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv Insufficient free space: 2560 extents needed, but only 2559 availableubuntu@ubuntu:~$ sudo lvextend -L +9.9G /dev/ubuntu-vg/ubuntu-lv Rounding size to boundary between physical extents: 9.90 GiB. Size of logical volume ubuntu-vg/ubuntu-lv changed from <19.00 GiB (4863 extents) to <28.90 GiB (7398 extents). Logical volume ubuntu-vg/ubuntu-lv successfully resized.
2.6:resize2fs重新计算磁盘大小
执行之后并不会立马生效需要执行,需要重新计算磁盘大小。这时候只能查看lsblk磁盘已增大,但是df -h里面文件系统没有变化,所以需要操作这一步生效。
resize2fs命令是用来增大或者收缩未加载的“ext2/ext3/ext4”文件系统的大小。
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
显示如下成功:
ubuntu@ubuntu:~$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv resize2fs 1.45.5 (07-Jan-2020)Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing requiredold_desc_blocks = 3, new_desc_blocks = 4The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 7575552 (4k) blocks long.
2.7:查看磁盘大小
df -h或者lsblk可查看,已经扩容成功为30G.
df -h/dev/mapper/ubuntu--vg-ubuntu--lv 29G 6.8G 21G 26% /lsblksda 8:0 0 30G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot├─sda3 8:3 0 19G 0 part │ └─ubuntu--vg-ubuntu--lv 253:0 0 28.9G 0 lvm /└─sda4 8:4 0 10G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 28.9G 0 lvm /
3:添加硬盘扩容根分区
3.1:添加新硬盘sdb
lsblk查看已显示磁盘
sdb 8:16 0 20G 0 disk
3.2:创建物理卷PV
你可以分区后创建物理卷,也可以整块硬盘创建物理卷PV,这里直接将整块创建PV,将所有空间给系统根分区扩容。
sudo pvcreate /dev/sdb
下面步骤与上面添加类似
3.3:添加到卷组VG
sudo vgextend ubuntu-vg /dev/sdb#查看free PE时候添加成功。sudo vgdisplay
3.4:分配空间给逻辑卷根LV
sudo lvextend -L +10G /dev/ubuntu-vg/ubuntu-lv
3.5:重新计算磁盘,分配给系统文件
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
3.6:查看磁盘大小
df -h 和 lsblk 查看大小
ubuntu@ubuntu:~$ df -hFilesystem Size Used Avail Use% Mounted onudev 1.9G 0 1.9G 0% /devtmpfs 391M 1.5M 390M 1% /run/dev/mapper/ubuntu--vg-ubuntu--lv 39G 6.9G 30G 19% /tmpfs 2.0G 0 2.0G 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup/dev/loop0 56M 56M 0 100% /snap/core18/2128/dev/loop2 71M 71M 0 100% /snap/lxd/21029/dev/loop1 62M 62M 0 100% /snap/core20/1242/dev/sda2 976M 107M 803M 12% /boot/dev/loop3 43M 43M 0 100% /snap/snapd/14066/dev/loop4 68M 68M 0 100% /snap/lxd/21835/dev/loop5 56M 56M 0 100% /snap/core18/2253/dev/loop6 33M 33M 0 100% /snap/snapd/12704tmpfs 391M 0 391M 0% /run/user/1000ubuntu@ubuntu:~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTloop0 7:0 0 55.4M 1 loop /snap/core18/2128loop1 7:1 0 61.9M 1 loop /snap/core20/1242loop2 7:2 0 70.3M 1 loop /snap/lxd/21029loop3 7:3 0 42.2M 1 loop /snap/snapd/14066loop4 7:4 0 67.2M 1 loop /snap/lxd/21835loop5 7:5 0 55.5M 1 loop /snap/core18/2253loop6 7:6 0 32.3M 1 loop /snap/snapd/12704sda 8:0 0 30G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot├─sda3 8:3 0 19G 0 part │ └─ubuntu--vg-ubuntu--lv 253:0 0 39G 0 lvm /└─sda4 8:4 0 10G 0 part └─ubuntu--vg-ubuntu--lv 253:0 0 39G 0 lvm /sdb 8:16 0 20G 0 disk └─ubuntu--vg-ubuntu--lv 253:0 0 39G 0 lvm /
六、缩减LVM空间重要事情说三遍:
正式环境,非必要情况或者不熟悉的情况下,请勿操作,宁愿空着,也别冒险
正式环境,非必要情况或者不熟悉的情况下,请勿操作,宁愿空着,也别冒险
正式环境,非必要情况或者不熟悉的情况下,请勿操作,宁愿空着,也别冒险
xfs类型不可以直接缩减,只扩不减。如果是ext2,ext3,ext4可以在线缩减,如果xfs盘要缩小就要删除后重新添加
1:非系统根分区LVM缩容
四步,这里以名称为 lv 为例子,这里是缩减至多少大小,不是缩减了多少。
1、取消挂载
系统根分区无法在线取消挂载,所以这时请勿对系统根分区执行任何缩容操作
系统根分区无法在线取消挂载,所以这时请勿对系统根分区执行任何缩容操作
系统根分区无法在线取消挂载,所以这时请勿对系统根分区执行任何缩容操作
umount /lv/ #取消挂载目录
2、e2fsck检查修复磁盘完整性
e2fsck -f /dev/vg0/lv0
3、缩小系统文件空间,即df -h查看的空间
不取消挂载,这步会报错,注:一定先减文件系统,再减逻辑卷
resize2fs /dev/vg0/lv0 10G
4、缩小磁盘空间,即lsblk查看的空间
不执行上面的操作,直接执行这步,虽然成功,但是会操作数据丢失,系统无法启动。
lvreduce -L 10G /dev/vg0/lv0
5、重新挂载
mount -a
最后查看lvs空间
lvs
扩展:
加上参数-r 可以一步到位,即将上面的3和4步骤一起执行。
lvreduce命令使用-L选项减少空间,-r选项减少文件系统空间,实现动态调整(这是ext4文件系统)
lvreduce -L 10G -r /dev/vg0/lv0
2:系统根分区LVM缩容
跟上面步骤一致,唯一的区别是没法在线取消挂载,所以需要进入救援模式(单用户模式)
救援模式分两种,一种是正常启动系统进入,另一种是加载镜像是进入。
缩容系统根分区必须是挂载镜像时的救援模式才可以操作。
1、正常启动系统进入救援模式
启动按shift键,出现选择系统界面,按e。找到以单词 linux 开头的行,并在该行的末尾添加以下内容(要到达末尾,只需按下 CTRL+e 或使用 END 键或左右箭头键):
systemd.unit=rescue.target
添加完成后,只需按下 CTRL+x 或 F10 即可继续启动救援模式。几秒钟后,你将以 root 用户身份进入救援模式(单用户模式)
2、挂载iso或者启动盘进入救援模式
系统不同,进入也不同,本人ubuntu20.04,没有找到合适的方式,其他的系统自行研究
一、磁盘管理
磁盘管理一、磁盘分区工具和挂载
硬盘分区符认识 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的分区方式,那么它没有限制主分区个数
注意:使用分区工具fdisk对磁盘进行操作,分区,格式化(重点)
命名方式: /dev/sd[a-z]n
其中:a-z 表示设备的序号,如sda表示第一块scsi硬盘,sdb就是第二块...... n 表示每块磁盘上划分的磁盘分区编号
二、 使用fdisk管理分区
fdisk:磁盘分区,是Linux发行版本中最常用的分区工具
用法:fdisk [选项] device
常用的选项 :
-l 查看硬盘分区表
案例:在sdb盘上建一个分区,大小为100M 在虚拟机上添加一块硬盘
例:对sdb这块盘划分一个100M的分区出来 [root@localhost ~]
# ls /dev/sd*
... Command (m for help): m
Command action
d delete a partition 删除分区
l list known partition types 显示分区类型
m print this menu 打印帮助菜单
n add a new partition 添加新的分区
p print the partition table 显示分区表
q quit without saving changes 不保存,退出
t change a partition's system id 改变分区类型
w write table to disk and exit 写分区表信息到硬盘,保存操作并退出
Command (m for help):
/dev/sdb /dev/sdb1
如果出现下面这两种情况
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@localhost ~]#reboot #这个是最好的方法
使用sdb1新分区:
[root@localhost ~]# mkfs.ext4 /dev/sdb1 #格式化
[root@localhost ~]# mkfs.xfs -f /dev/sdb1 #格式化,-f 对已经存在文件系统的分区,强制格式化
[root@localhost ~]# mkdir /sdb1 #创建挂载点
[root@localhost ~]# mount /dev/sdb1 /sdb1/ #挂载
[root@localhost ~]# df -h #查看
使用新分区
[root@localhost ~]# cd /sdb1 / #使用新分区
[root@localhost sdb1]# ls
[root@localhost sdb1]# cp /etc/passwd ./
[root@localhost sdb1]# ls 显示 passwd
案例:解决卸载不了的问题
[root@localhost ]# mount /dev/sdb1 /sdb1/ #挂载
[root@localhost ~]# cd /sdb1/
[root@localhost ~]# umount /sdb1 umount: /sdb1:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以 找到有关使用该设备的进程的有用信息) [root@localhost ~]# lsof /sdb1 # 查看谁使用了这个目录
方法1:
[root@xuegod63 sdb1]# kill -9 3322
方法2:[root@localhost sdb1]# cd #退出目录,这个最合适
[root@localhost ~]# umount /dev/sdb1
注:umount 挂载点 //卸载方式1 或 umount 设备路径 //卸载方式2
案例:写入配置文件,让它开机自动挂载
[root@localhost ~]#vim /etc/fstab #在文件最后写入 /dev/sdb1 /sdb1 xfs defaults 0 0
如果报错解决方案: 修改fstab重启系统后,系统报错: 重启后报错: 输入root密码: 123456 把fstab中新添加开机自动加载项目删除: 然后reboot重启:
注释: /dev/sdb1 /sdb1 xfs defaults 0 0
要挂载的分区设备 挂载点 文件系统类型 挂载选项 是否备份 是否检测
[root@localhost ~]# df -h
[root@localhost ~]# mount -a #自动挂载/etc/fstab中没有挂载上的文件
[root@localhost ~]# df -h
/dev/sdb1 1014M 33M 982M 4% /sdb1 #发现已经挂载上, 说明配置没有问题。
tmpfs 183M 0 183M 0% /run/user/0 #发现已经挂载上,说明配置没有问题。
然后再重启,看看挂载
方法2:
使用UUID挂载
[root@localhost ~]# blkid
/dev/sda1: UUID="bac2ebef-26d2-4a61-9c27-bad2d7290120" TYPE="xfs" /dev/sda2: UUID="QCYxLM-ukM3-wQq1-rTdS-1RJ3-YO0e-R7qdtT" TYPE="LVM2_member"
[root@localhost ~]# echo "UUID=6ff67883-8e92-4d57-8743-1293611b9a0e /sdb1 xfs defaults 0 0" >> /etc/fstab
通常这个参数的值为0或者1 0:代表不要做备份 1:代表要每天进行操作 第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整 0:不要检验 1:最早检验(一般根目录会选择)
三、gdisk 磁盘分区工具
gdisk 主要是用来划分容量大于2T的硬盘,大于2T fdisk搞不定
两种类型的分区表:GPT和MBR ; MBR不支持2T以上
GPT分区:GPT,全局唯一标识分区表(GUID Partition Table),它使用128位GUID来唯一标识每个磁盘和分区,与MBR存在单一故障点不同,GPT提供分区表信息的冗余,一个在磁盘头部一个在磁盘尾部;它通过CRC校验和来检测GPT头和分区表中的错误与损坏;默认一个硬盘支持128个分区
例:对sdb做gpt分区,创建一个sdb1
[root@localhost ~]# gdisk /dev/sdb
Command (? for help): ? # 查看帮助
d delete a partition #删除分区
n add a new partition # 添加一个分区
[root@localhost ~]# mkfs.xfs /dev/sdb1 #格式化 完毕!!!
Linux网络管理技术
OSI七层模型和TCP/IP四层模型
OSI七层参考模型,TCP/IP四层参考模型
OSI七层模型:OSI(Open System Interconnection)开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。
TCP/IP四层模型:TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。
分层作用:方便管理
七层模型优点:
1、把复杂的网络划分成为更容易管理的层(将整个庞大而复杂的问题划分为若干个容易处理的小问题)
2、没有一个厂家能完整的提供整套解决方案和所有的设备,协议.
3、独立完成各自该做的任务,互不影响,分工明确,上层不关心下层具体细节,分层同样有益于网络排错
功能与代表设备
7 应用层 提供用户界面 QQ,IE 。应用程序
6 表示层 表示数据,进行加密等处理
5 会话层 将不同应用程序的数据分离
4 传输层 提供可靠或不可靠的传输,在重传前执行纠错 防火墙
3 网络层 提供逻辑地址,路由器使用它们来选择路径 三层交换机、路由器
2 数据链路层 将分组拆分为字节,并讲字节组合成帧,使用MAC
地址提供介质访问,执行错误检测,但不纠错 二层交换机,网卡
1 物理层 在设备之间传输比特,指定电平,电缆速度和电缆针脚 集线器
互动:为什么现代网络通信过程中用TCP/IP四层模型,而不是用OSI七层模型呢?
OSI七层模型是理论模型,一般用于理论研究,他的分层有些冗余,实际应用,选择TCP/IP的四层模型。而且 OSI 自身也有缺陷,大多数人都认为 OSI 模型的层次数量与内容可能是最佳的选择,其实并非如此,其中会话层和表示层几乎是空的,而数据链路层和网络层包含内容太多,有很多的子层插入,每个子层都有不同的功能。
常见网络相关的协议
DNS:域名解析协议
SNMP(Simple Network Management Protocol) :网络管理协议
DHCP(Dynamic Host Configuration Protocol) :动态主机配置协议,它是在TCP/IP网络上使客户机获得配置信息的协议
FTP(File Transfer Protocol) :文件传输协议,它是一个标准协议,是在计算机和网络之间交换文件的最简单的方法。
TFTP(Trivial File Transfer Protocol):小文件传输协议
HTTP(Hypertext Transfer Protocol ):超文本传输协议
HTTPS(Secure Hypertext Transfer Protocol):安全超文本传输协议,它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作.
ICMP(Internet Control Message Protocol):Internet控制信息协议,互联网控制报文协议 ping ip定义消息类型有:TTL超时、地址的请求与应答、信息的请求与应答、目的地不可到达
SMTP(Simple Mail Transfer Protocol):简单邮件传送协议
TELNET Protocol:虚拟终端协议
UDP(User Datagram Protocol):用户数据报协议,它是定义用来在互连网络环境中提供包交换的计算机通信的协议
TCP(Transmission Control Protocol): 传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议 log转发:开启一个协议:tcp(三次握手和四次挥手)
TCP协议和UDP协议的区别
(1)TCP协议:TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,在收发数据前,必须和对方建立可靠的连接。
(2)UDP协议:UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务 总结:
TCP与UDP的区别:
1.基于连接与无连接;
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。所以传输速度可更快
4.TCP保证数据正确性,UDP可能丢包;TCP保证数据顺序,UDP不保证。
场景: 视频,语音通讯使用udp,或网络环境很好,比如局域网中通讯可以使用udp。 udp数据传输完整性,可以通过应用层的软件来校对就可以了。
tcp传文件,数据完整性要求高。
TCP和UDP 常用端口号名称
(1)TCP 端口分配
21 ftp 文件传输服务
22 ssh 安全远程连接服务
23 telnet 远程连接服务
25 smtp 电子邮件服务
53 DNS 域名解析服务,有tcp53也有用udp53端口传输
80 http web服务
443 https 安全web服务
互动:如果你不知道哪个端口对应哪个服务怎么办?如873端口是哪个服务的? [root@localhost ~]# vim /etc/services #此文件中,包含所有常见端口号及服务名称
二、linux系统磁盘分区及把磁盘挂载到系统中的方法
fdisk分区
fdisk
/dev/sdb
-p查看当前分区
-t
改分区号
-w将分区表写进磁盘
-n创建分区
-p主分区
-e拓展分区
partprobe
让内核更新分区信息
cat
/proc/partitions
查看磁盘分区
创建文件系统(格式化文件系统)
mke2fs
-t
ext4
/dev/sda3
-b
blocksize
指定文件系统大小
-c
建立文件系统时检查坏损块
-L
label
指定标
-j
建立文件系统日志
ext3
ext4
默认是带日志
mkfs.ext3
/dev/sdb1
mkfs.evfat
/dev/sda3
查看分区信息
dumpe2fs
/dev/sda2
journal日志
ext3
ext4
拥有较强的稳定性,出错可以恢复
磁盘的挂载和卸载
mount
显示所挂载的分区
挂载一个新的磁盘分区
eg:
mount
/dev/sda3
/mnt/
附加参数:
-t
文件系统类型
-o
[选项]指定加载文件系统时的选项。有些选项也可在/etc/fstab中使用。这些选项包括:
ro以只读方式挂载
rw以读写方式挂载
async使用缓存方式挂载
sync
不使用缓存方式挂载
noatime不更新文件的访问时间
atime
更新文件的访问时间
remount重新挂载
eg:
mount
-o
remount,rw
/dev/mnt/
umount
卸装分区,相当于windows系统中的弹出
eg:
umount
/dev/sda3
或者写挂载点
umount
/mnt/
查看文件系统被哪些进程占用
fuser
-m
/mnt
查看具体的进程信息
ps
-ef
|egrep
'(进程id|进程id)'
|grep
-v
grep
查看哪些文件被打开使用
lsof
/mnt/
自动挂载的设置
(通过修改配置项来实现自动挂载)
/etc/fstab
中定义了哪些磁盘被自动挂载
eg:
/dev/sda3
/mnt
ext4
defaults
0
0
说明:设置路径与写卷标的标签名称等同
eg:
/dev/sda3
《=》label=soft_config
以上内容是小编给大家分享的linux系统磁盘分区及把磁盘挂载到系统中的方法,希望大家喜欢。
三、linux之lvm分区扩容
以下步骤的前提为磁盘lvm分区1、加入新硬盘
2、分区
PV(physical volume)即物理卷,就是物理磁盘,可以通过fdisk -l 查看操作系统有几块硬盘
VG(volume group)即卷组,就是一组物理磁盘的组合,里面可以有一块硬盘也可以有多块硬盘
LV(logical volume)及逻辑卷,就是在VG(指定的物理磁盘组)里面划分出来的
可以说成是PV就是硬盘,而VG就是管理硬盘的操作系统,而LV就是操作系统分出来的各个分区.
PV->VG->LV-> 文件系统使用(挂载到某个目录)
对新磁盘/dev/sdb进行分区
[root@xt-prod-mydb02 ~]# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel
New disk label type? gpt
(parted) mkpart
Partition name? []?
File system type? [ext2]? xfs
Start? 1
End? 10G
(parted) q
Information: You may need to update /etc/fstab.
创建物理卷 pvcreate /dev/sdb1
创建卷组 并将物理卷加入其中 vgcreate data /dev/sdb1 (data为卷组名)
创建逻辑卷组并分配大小 lvcreate -l +100%FREE -n lvdata data
格式化 mkfs.xfs /dev/mappper/data-lvdata
开机挂载新硬盘 vi /etc/fstab
挂载 mount -a (先建data目录 mkdir /data)
查看 df -lh
卸载挂点 umount /dev/mapper/data-lvdata
3、扩容
磁盘/dev/sdb只分10个G。。还有10G没有分配。。所以继续进行分区
parted /dev/sdb
打印分区信息表可以看到有两个分区了。
创建物理卷 pvcreat /dev/sdb2
查看将要扩容的卷组信息 vgdisplay 可见可扩容大小为0
将物理卷扩展到卷组 #vgextend data /dev/sdb2 (此处‘cl’是卷组名称)
再次查看卷组信息 vgdisplay 可扩容空间变成10G
将卷组中空闲空间扩展到 /data #lvextend -l +100%FREE /dev/mapper/data-lvdata
.刷新文件系统是扩容生效 #xfs_growfs /dev/mapper/data-lvdata
查看结果 :df -lh 扩容成功
关于低格硬盘怎么操作的问题,通过《linux系统磁盘分区及把磁盘挂载到系统中的方法》、《linux之lvm分区扩容》等文章的解答希望已经帮助到您了!如您想了解更多关于低格硬盘怎么操作的相关信息,请到本站进行查找!
爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。