我是靠谱客的博主 幸福汽车,最近开发中收集的这篇文章主要介绍6、磁盘与文件系统管理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本篇主要讲述:

mount挂载;

磁盘管理;

格式化文件系统;

LVM逻辑卷的使用;

swap交换分区


1、mount挂载操作

(1) 含义:

将光盘,U盘,分区,网络存储等设备装到某个Linux目录。

各种命令工具通过访问Linux目录来操作这些设备。

(2) 访问光盘的内容

Windows:

光盘文件------->光驱设备------->CD驱动器(图标)

访问点(挂载点): 访问设备内容需要通过访问点  

Linux:

光盘文件------->光驱设备-------------->目录(/dvd)

/dev/sr0

/dev/hdc

[root@A ~]# ls /dev/cdrom                       #光驱设备的快捷方式

[root@A ~]# ls -l /dev/cdrom

[root@A ~]# mkdir /dvd

[root@A ~]# mount /dev/cdrom  /dvd      #提供设备的访问点

mount: /dev/sr0 写保护,将以只读方式挂载

[root@A ~]# ls /dvd/

[root@A ~]# ls /dvd/Packages/

[root@A ~]# mkdir /abc

[root@A ~]# mount /dev/cdrom  /abc     #挂载

[root@A ~]# ls /abc

[root@A ~]# umount /abc                       #卸载

[root@A ~]# ls /abc 


(3) 实现开机自挂载

在/etc/fstab文件内设置

image.png

设备/UUID   挂载点   挂载的文件系统类型    设置挂载的参数   dump是否备份   fsck磁盘检查


文件系统类型:ext2,ext3,ext4,xfs...


挂载的参数分类如下:

auto: 系统自动挂载,fstab默认就是这个选项
defaults: rw, suid, dev, exec, auto, nouser, and async.
noauto 开机不自动挂载
nouser 只有超级用户可以挂载
ro 按只读权限挂载
rw 按可读可写权限挂载
user 任何用户都可以挂载
请注意光驱和软驱只有在装有介质时才可以进行挂载,因此它是noauto


dump备份设置:

其值设置为1时,允许备份;设置为0时,忽略备份


开机是否fsck磁盘检查:

其值设置为1时,开机进行检查;设置为0时,不进行检查。



2、磁盘管理

磁道:track

扇区:sector  每个扇区,512字节

磁头:head

柱面:cylinde

 

2.1 MBR/msdos 分区模式

– 1~4个主分区,或者 0~3个主分区+1个扩展分区(n个逻辑分区)

– 最大支持容量为 2.2TB 的磁盘

– 扩展分区不能格式化

识别硬盘 => 分区规划 => 格式化 => 挂载使用

2.2 查看磁盘lsblk

[root@server0 ~]# lsblk

image.png

2.3 修改硬盘的分区表

使用fdisk 命令(分区格式为MBR)

使用gdisk命令(分区格式为GPT)

常用交互指令:

m 列出指令帮助

p 查看现有的分区表

n 新建分区

d 删除分区

q 放弃更改并退出

w 保存更改并退出

[root@server0 ~]# fdisk   /dev/vdb

n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G

p 查看分区表

n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G

d 删除分区

w 保存并退出

 

[root@server0 ~]# ls /dev/vdb[1-2]

 /dev/vdb1  /dev/vdb2

[root@server0 ~]# lsblk


2.4 格式化文件系统

mkfd工具集

mkfs.ext3  分区设备路径

mkfs.ext4  分区设备路径

mkfs.xfs   分区设备路径

mkfs.vfat  分区设备路径

 

[root@server0 ~]# mkfs.xfs /dev/vdb1

[root@server0 ~]# mkfs.ext4 /dev/vdb2


2.5 查看分区文件系统

blkid 

image.png 


[root@server0 ~]# blkid /dev/vdb1

[root@server0 ~]# blkid /dev/vdb2

挂载使用

[root@server0 ~]# mkdir /part1

[root@server0 ~]# mkdir /part2

[root@server0 ~]# mount /dev/vdb1 /part1

[root@server0 ~]# mount /dev/vdb2 /part2

 

2.6 查看正在挂载使用的设备信息

[root@server0 ~]# df  -h

缓解根分区的压力

[root@server0 ~]# find  -size  查找较大的目录有哪些

[root@server0 ~]#  还分新的分区 /dev/vdc1

[root@server0 ~]#  mount /dev/vdc1   /mnt

[root@server0 ~]#  cp -r /home/*    /mnt

[root@server0 ~]#  rm -rf /home/*

[root@server0 ~]#  umount /mnt

[root@server0 ~]#  mount /dev/vdc1   /home

 

将虚拟机server重起

[root@server0 ~]# reboot



总结:

1.查看硬盘     lsblk

2.划分分区     fdisk

3.刷新分区表    partprobe

4.格式化文件系统  mkfs.xfs  mkfs.ext4

5.挂载        mount

6.开机自动挂载   /etc/fstab


3、LVM逻辑卷的使用(logicl volume)

1)整合分散的空间

2)实现分区的动态扩大与缩减

 

在“分区 --> 格式化”中间增加的一个逻辑层

–零散空闲存储 ---- 整合的虚拟磁盘 ---- 虚拟的分区----- 格式化------ 挂载

物理卷:Physical Volume

卷组:Volume Group

逻辑卷:Logical Volume

将众多的物理卷,组成卷组,再从卷组中划分逻辑卷

综合分区

将/dev/vdc划分6个分区,3个主分区,一个扩展分区,2个逻辑分区

[root@server0 ~]# fdisk   /dev/vdc

n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G

n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G

n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G

p 查看分区表

n 创建新的分区

 ----->回车---->起始回车----->结束回车  将所有空间给扩展分区

p 查看分区表

n 创建新的分区----->起始回车------>结束+10G

n 创建新的分区----->起始回车------>结束+10G

wq 保存并退出

[root@server0 ~]# partprobe         #刷新分区表

[root@server0 ~]# ls /dev/vdc[1-6]

[root@server0 ~]# lsblk

[root@server0 ~]# ls /dev/vdc*

 

3.1 新建逻辑卷

1)新建卷组

命令格式:vgcreate  卷组名称   分区路径

[root@server0 ~]# vgcreate  myvg  /dev/vdc1  /dev/vdc2

[root@server0 ~]# vgs

[root@server0 ~]# pvs    #查看卷组

2)创建逻辑卷

命令格式:lvcreate  -n  逻辑卷名称  -L 大小  基于卷组

[root@server0 ~]# lvcreate  -n  mylv  -L 16G   myvg

[root@server0 ~]# lvs    #查看逻辑卷

3)使用LVM逻辑卷

[root@server0 ~]# mkfs.ext4 /dev/myvg/mylv   #格式化

[root@server0 ~]# mkdir /lvm

vim /etc/fstab                                    #开机自挂载

路径   挂载点 格式  defaults  0  0

[root@server0 ~]# mount -a

[root@server0 ~]# df -h

 

3.2 LVM逻辑卷的扩展

(1)卷组有足够的剩余空间

a.直接扩展逻辑卷的空间

[root@server0 ~]# vgs

[root@server0 ~]# lvextend  -L  19G  /dev/myvg/mylv

[root@server0 ~]# lvs

[root@server0 ~]# vgs

b.扩展文件系统的大小

扩展ext4文件系统:使用resize2fs进行格式化

扩展xfs文件系统: 使用xfs_growfs进行格式化

[root@server0 ~]# df  -h | tail -1

[root@server0 ~]# blkid /dev/myvg/mylv

[root@server0 ~]# resize2fs /dev/myvg/mylv   #格式化

[root@server0 ~]# df  -h | tail -1

(2)卷组没有足够的剩余空间

a.扩展卷组空间

[root@server0 ~]# vgextend myvg /dev/vdc3

[root@server0 ~]# vgs

b.直接扩展逻辑卷的空间

[root@server0 ~]# vgs

[root@server0 ~]# lvextend  -L  25G  /dev/myvg/mylv

[root@server0 ~]# lvs

[root@server0 ~]# vgs

c.扩展文件系统的大小

[root@server0 ~]# df  -h | tail -1

[root@server0 ~]# resize2fs /dev/myvg/mylv

[root@server0 ~]# df  -h | tail -1

以下作为了解:

缩减:不要做, 先缩减文件系统的大小,在缩减空间大小

[root@server0 ~]# resize2fs /dev/myvg/mylv 10G

[root@server0 ~]# umount /lvm

[root@server0 ~]# resize2fs /dev/myvg/mylv 10G

resize2fs 1.42.9 (28-Dec-2013)

请先运行 'e2fsck -f /dev/myvg/mylv'.

[root@server0 ~]# e2fsck -f /dev/myvg/mylv

[root@server0 ~]# resize2fs /dev/myvg/mylv 10G

[root@server0 ~]# lvreduce -L 10G /dev/myvg/mylv

[root@server0 ~]# lvreduce -L 10G /dev/myvg/mylv

WARNING: Reducing active logical volume to 10.00 GiB

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce mylv? [y/n]: y


3.3 创建卷组的时候设置PE大小

– vgcreate -s  PE大小   卷组名    空闲分区...

– vgchange -s  PE大小   卷组名

PE:卷组划分空间的单位   4M

[root@server0 ~]# vgdisplay myvg

[root@server0 ~]# vgchange -s 2M  myvg

[root@server0 ~]# vgdisplay myvg

 

3.4 创建逻辑卷的时候指定PE个数

lvcreate   -l   PE个数  -n   逻辑卷名 卷组名

[root@server0 ~]# lvcreate  -l  102  -n  lvtest02  myvg

Logical volume "lvtest02" created

[root@server0 ~]# lvs


4、交换分区swap(虚拟内存)

• 相当于虚拟内存,

– 当物理内存不够用时,使用磁盘空间来模拟内存

– 在一定程度上缓解内存不足的问题

[root@server0 ~]# swapon -s    #查看交换空间,组成 成员信息

[root@server0 ~]# mkswap /dev/vdc5    #格式化,交换文件系统

[root@server0 ~]# swapon /dev/vdc5    #启用交换分区

 

[root@server0 ~]# mkswap /dev/vdc6   #格式化,交换文件系统

[root@server0 ~]# swapon /dev/vdc6   #启用交换分区

[root@server0 ~]# swapon -s

 

开机自动启用交换分区 /etc/fstab

[root@server0 ~]# vim /etc/fstab           #开机自挂载

/dev/vdc5  swap  swap   defaults  0 0

/dev/vdc6  swap  swap   defaults  0 0

 

[root@server0 ~]# swapoff /dev/vdc[5-6]   #停用交换分区

[root@server0 ~]# swapon -s

[root@server0 ~]# swapon -a     #检测/etc/fstab交换分区

[root@server0 ~]# swapon -s

 

大容量的使用gpt分区模式:gdisk

交换分区的优先级:-1

 

逻辑卷的扩展:扩展之后lsblk 显示的是扩展之后的总容量

而df -h显示的还是原来的大小

磁盘情况刷新:partprobe

 

功能                物理卷管理      卷组管理      逻辑卷管理

scan/扫描        pvscan            vgscan           lvscan

create/创建     pvcreate          vgcreate         lvcreate

display            pvdisplay         vgdisplay       lvdisplay

remove           pvremove        vgremove       lvremove

extend                                    vgextend        lvextend


5、关于dd命令的使用

dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2

dd if="input_file" of="out_file"  bs="block_size"  count="number"

参数注释:

1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >

2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >

3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。

   obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。

   bs=bytes:同时设置读入/输出的块大小为bytes个字节。

4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。

5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。

6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。

注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。

7. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

8. conv=conversion:用指定的参数转换文件。

    ascii:转换ebcdic为ascii

    ebcdic:转换ascii为ebcdic

    ibm:转换ascii为alternate ebcdic

    block:把每一行转换为长度为cbs,不足部分用空格填充

    unblock:使每一行的长度都为cbs,不足部分用空格填充

    lcase:把大写字符转换为小写字符

    ucase:把小写字符转换为大写字符

    swab:交换输入的每对字节

    noerror:出错时不停止

    notrunc:不截短输出文件

    sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。


转载于:https://blog.51cto.com/13452945/2071633

最后

以上就是幸福汽车为你收集整理的6、磁盘与文件系统管理的全部内容,希望文章能够帮你解决6、磁盘与文件系统管理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部