Linux磁盘管理好坏管理直接关系到整个系统的性能问题。
Linux磁盘管理常用四个命令为df、du和fdisk,free,blkid。
• df:列出文件系统的整体磁盘使用量
• du:检查磁盘空间使用量
• fdisk:用于磁盘分区
•free:可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
• blkid:查看磁盘uuid,type
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
磁盘分区命令
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: 查询或查看磁盘设备的相关属性
UUID
TYPE
LABEL
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
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: 设备解密密码
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 设备
建立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:终止正在访问此挂载点的所有进程