linux磁盘分区管理

Linux磁盘分区管理

磁盘管理


Linux磁盘管理好坏管理直接关系到整个系统的性能问题。
Linux磁盘管理常用四个命令为df、du和fdisk,free,blkid。
• df:列出文件系统的整体磁盘使用量
• du:检查磁盘空间使用量
• fdisk:用于磁盘分区
•free:可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
• blkid:查看磁盘uuid,type


命令介绍

df

df命令参数功能:检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:
    df [-ahikHTm] [目录或文件名]
选项与参数:
•   -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
•   -k :以 KBytes 的容量显示各文件系统;
•   -m :以 MBytes 的容量显示各文件系统;
•   -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
•   -H :以 M=1000K 取代 M=1024K 的进位方式;
•   -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
•   -i :不用硬盘容量,而以 inode 的数量来显示
1.用于显示磁盘分区上的可使用的磁盘空间
    df  -ah 

2.统计目录(或文件)所占磁盘空间的大小。
du –sh  file/directory


fdisk

磁盘分区命令
1.查看当前系统识别了几块硬盘:
fdisk -l 


2.fdisk  /dev/设备 新建分区

[root@localhost ~]# fdisk  /dev/sdb        划分/dev/sdb 
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
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):n
Partition type:p            指定划分设备的分区类型
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Partition number (1-4, default 1):1 指定使用的分区表号
First sector (1-530, default 530):enter 分区起始快,选择默认
Using default value 530

Command (m for help): p         显示分区表

Disk /dev/sdb: 4362 MB, 4362985472 bytes
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x7c2200a8

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1           1            530    4257193   83  Linux     ##被划分出来的分区

Command (m for help):  wq                       ##保存更改方式并退出


[root@diskctrl ~]# partprobe           同步分区表
[root@diskctrl ~]# cat /proc/partitions    查看系统能识别的分区
major minor  #blocks  name

8        0   10533536 sda
8        1   102400  sda1
8        2   10429440 sda2
8       16   4260728 sdb
8       17   4257193 sdb1

free
free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区

-b:以Byte为单位显示内存使用情况;
-k:以KB为单位显示内存使用情况;
-m:以MB为单位显示内存使用情况;
-o:不显示缓冲区调节列;
-s<间隔秒数>:持续观察内存使用状况;
-t:显示内存总和列;
-V:显示版本信息。

blkid

blkid: 查询或查看磁盘设备的相关属性
    UUID
    TYPE
    LABEL

dd

linux创建一定大小文件命令
if=数据来源
of=数据存储目标
bs=1
count=2
seek=#: 创建数据文件时,跳过的空间大小;

dd if=/dev/zero of=/var/swapfile bs=1M count=24

磁盘修复及基本信息查看命令


e2label: 用于查看或定义卷标
    e2label 设备文件 卷标: 设定卷标

tune2fs: 调整文件系统的相关属性
    -j: 不损害原有数据,将ext2升级为ext3;
    -L LABEL: 设定或修改卷标; 
    -m : 调整预留百分比;
    -r : 指定预留块数;
    -o: 设定默认挂载选项;acl
    -c :指定挂载次数达到#次之后进行自检,0或-1表关闭此功能;
    -i : 每挂载使用多少天后进行自检;0或-1表示关闭此功能;
    -l: 显示超级块中的信息;

dumpe2fs: 显示文件属性信息
    -h: 只显示超级块中的信息

fsck: 检查并修复Linux文件系统
    -t FSTYPE: 指定文件系统类型
    -a: 自动修复

e2fsck: 专用于修复ext2/ext3文件系统
    -f: 强制检查;
    -p: 自动修复;

分区管理
swap分区管理:
fdisk命令中,调整分区类型为82;

创建交换分区:
mkswap /dev/sdb1

swap分区的管理


swapon -s       查看系统中的swap分区
建立swap分区
mkswap  /dev/sdb1   把/dev/vdb1格式化成swap格式
swapon -a /dev/sdb1激活

编辑vim /etc/fstab        开机自动激活
/dev/sdb1   swap    swap    defautls    0 0

关闭swap分区,首先删除/etc/fstab中的swap自动激活条目
swapoff /dev/sdb1    关闭激活的swap分区

回环设备
loopback, 使用软件来模拟实现硬件

分区加密


[root@localhost~]cryptsetup    luksFormat /dev/sdb1
WARNING!
This will overwrite data on /dev/sdb1 irrevocably.

Are you sure? (Type uppercase yes): YES         确定加密
Enter passphrase:                   密码大于8位,并且不能太简单
Verify passphrase:              确认密码

[root@localhost~]# cryptsetup open /dev/sdb1  file 解密
Enter passphrase for /dev/sdb1: 

[root@localhost~]# mkfs.xfs  /dev/mapper/file      用管理文件格式化设备
[root@localhost~]# mount /dev/mapper/file  /mnt/   使用设备
[root@localhost~]#umount   /mnt/     卸载设备
 [root@localhost mnt]# cryptsetup close file        关闭设备加密层

自动挂载加密设备
[root@localhost~]# vim /etc/crypttab           设定开机解密
解密后名称   设备  密码文件
[root@localhost~]# vim /etc/fstab      开机自动挂载加密设备
/dev/mapper/file    /mnt    xfs defaults    0 0
[root@localhost~]# vim /root/passwd            系统自动读取密码记录文件
解密密码
[root@localhost~]# cryptsetup luksAddKey /dev/sdb1  /root/passwd       ##把密码记录文件与设备关联
Enter any passphrase:                   设备解密密码

LVM逻辑卷


1.lvm名词
lvm 逻辑卷,可以让设备自由伸缩的一个设备管理软件
pv  物理卷
vg  物理卷组
pe  物理拓展,lvm最小的存储单元
lvm 逻辑卷,时最终我们使用的可以伸缩的设备

2.lvm的制作
首先划分lvm所用到的设备,这些设备的功能id必须时linux LVM


1)lvm建立
pvcreate /dev/sdb1      把物理分区做成物理卷
pvs|pvdisplay           查看物理卷

vgcreate vg0 /dev/sdb1      用制作好的/dev/sdb1这个物理卷制作一个物理卷组vg0
vgs|vgdisplay           查看物理卷组



lvcreate -L 200M -n lv0 vg0  在vg0这个组中建立出lv0设备 -L 指定设备大小 –n 指定设备名字
lvs|lvdisplay           对逻辑卷设备进行查看

3.lvm设备的扩大
###############针对xfs文件系统######################
xfs文件系统只能扩大不能缩减
1)lvm扩大
lvextend —L 500M /dev/vg0/lv0       扩大lvm设备到500M
xfs_growfs  /dev/vg0/lv0        扩大xfs文件系统到设备大小
2)vg扩大
pvcreate /dev/vdb2          在pv中增加一块设备/dev/vdb2
vgextend vg0 /dev/vdb2          ##把新建立的/dev/vdb2添加到vg0中 

##############针对ext文件系统####################
ext文件系统可以扩大也可以缩减
1)lvm扩大
lvextend —L 2G /dev/vg0/lv0         扩大lvm设备到2G
resize2fs /dev/vg0/lv0              设定文件系统大小和设备同步
2)vg扩大
     pvcreate /dev/vdb3                      在pv中增加一块设备/dev/vdb3
     vgextend vg0 /dev/vdb3                  把新建立的/dev/vdb2添加到vg0中      
3)lvm缩减
umount /dev/vg0/lv0             卸载设备,因为文件系统缩减不支持在线操作
e2fsck -f /dev/vg0/lv0              测文件系统,确定文件系统中已有数据大小防止过度缩减
resize2fs  /dev/vg0/lv0  1G         把文件系统缩减到1G
lvreduce  -L 1G /dev/vg0/lv0            设备缩减到1G
4)vg缩减
在vg缩减时只能缩减没有被占用的设备
pvmove  设备1 设备2             设备1上的所有数据移动到设备2上
vgreduce    vg0 /dev/vdb1       把vg0中的/dev/vdb1删除
pvremove    /dev/vdb1           把/dev/vdb1上的lvm管理信息删除

lvm快照
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0       给/dev/vg0/lv0建立快照,-L 指定快照大小,-n指定快照名字 -s指定快照模板设备
mount /dev/vg0/lv0-backup   /userdate
当快照设备里的数据被更改,如果想还原,删除快照设备,在重新建立快照即可



lvm删除
lvremove---->vgremove----->pvremove

磁盘配额


1.磁盘配额时限制用户向设备中写入数据的大小,或者个数
2.此这定针对与设备的,
3.做法
mount -o usrquota,grpquota /dev/sdb1  /pub  激活配额功能参数
quotaon -ugv /pub               开启配额
edquota -u li                   设定lee的配额
repquota -a                 root可以执行,查看用户配额信息
quota                       配额限制用户查看自己配额信息命令
4.开机自动激活配额
vim /etc/fstab
/dev/sdb1   /pub        xfs defaults,usrquota,grpquota  0 0

5.关闭配额
删除vim /etc/fstab中的配额参数
quotaoff -ugv 设备

raid 磁盘阵列


建立3个分区,并设定3个分区的功能标签位raid
mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}

-C  建立
-a  文件不存在建立文件
-l  raid级别
-n  设备个数
-x  闲置设备个数

cat /proc/mdstat    设备信息
mdadm -D /dev/md0   设备配置信息
mdadm /dev/md0  -f /dev/vdb1    损坏设备1
mdadm /dev/md0 -r /dev/vdb1     移除设备1
mdadm /dev/md0 -a /dev/vdb1 复设备1
mdadm -S /dev/md0       停止设备

分区格式化文件类型


mkfs: make file system
    -t FSTYPE 
mkfs -t ext2 = mkfs.ext2
mkfs -t ext3 = mkfs.ext3

专门管理ext系列文件:
mke2fs
    -j: 创建ext3类型文件系统
    -b BLOCK_SIZE: 指定块大小,默认为4096;可用取值为1024、2048或4096;
    -L LABEL:指定分区卷标;
    -m : 指定预留给超级用户的块数百分比
-i : 用于指定为多少字节的空间创建一个inode,默认为8192;这里给出的数值应该为块大小的2^n倍;
    -N : 指定inode个数;
    -F: 强制创建文件系统;
    -E: 用户指定额外文件系统属性; 

分区的挂载


挂载:将新的文件系统关联至当前根文件系统
卸载:将某文件系统与当前根文件系统的关联关系预以移除;

mount:挂载
mount 设备 挂载点
设备:
    设备文件:/dev/sda5
    卷标:LABEL=“”
    UUID: UUID=“”
挂载点:目录
    要求:
        1、此目录没有被其它进程使用;
        2、目录得事先存在;
        3、目录中的原有的文件将会暂时隐藏;

可以挂载iso镜像;目录;以及磁盘文件


文件系统的配置文件/etc/fstab,OS在初始时,会自动挂载此文件中定义的每个文件系统

要挂载的设备  挂载点     文件系统类型      挂载选项        转储频率(每多少天做一次完全备份)       文件系统检测次序(只有根可以为1)       
/dev/sr0        /mnt/yum    iso9660     defaults        0 0

mount -a:挂载/etc/fstab文件中定义的所有文件系统


mount: 显示当前系统已经挂载的设备及挂载点
mount [options] [-o options] DEVICE MOUNT_POINT
    -a: 表示挂载/etc/fstab文件中定义的所有文件系统
    -n: 默认情况下,mount命令每挂载一个设备,都会把挂载的设备信息保存至/etc/mtab文件;使用—n选项意味着挂载设备时,不把信息写入此文件;
    -t FSTYPE: 指定正在挂载设备上的文件系统的类型;不使用此选项时,mount会调用blkid命令获取对应文件系统的类型;
    -r: 只读挂载,挂载光盘时常用此选项
    -w: 读写挂载
    -o: 指定额外的挂载选项,也即指定文件系统启用的属性;
        remount: 重新挂载当前文件系统
        ro: 挂载为只读
        rw: 读写挂载

挂载完成后,要通过挂载点访问对应文件系统上的文件;

umount: 卸载某文件系统
    umount 设备
    umount 挂载点  

卸载注意事项:
    挂载的设备没有进程使用;

fuser: 验正进程正在使用的文件或套接字文件
    -v: 查看某文件上正在运行的进程
    -k:kill杀掉此进程
    -m:关于此进程的信息

fuser -km MOUNT_POINT:终止正在访问此挂载点的所有进程


你可能感兴趣的:(linux基础,磁盘,linux,文件系统,管理,内存)