磁盘管理(二)

文件系统

      文件系统检测和修复
      mount挂载设备
      swap分区使用
      文件系统查看工具
      dd命令扩展

 

检测和修复

使用场景:常发生于死机或者非正常关机之后
挂载为文件系统标记为“no clean”
注意:一定不要在挂载状态下修复

fsck: File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
-p 自动修复错误
-r 交互式修复错误
FS_TYPE 一定要与分区上已经文件类型相同

e2fsck:ext系列文件专用的检测修复工具
-y 自动回答为yes
-f 强制修复常发生于死机或者非正常关机之后
挂载为文件系统标记为“no clean”
注意:一定不要在挂载状态下修复

fsck: File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
-p 自动修复错误
-r 交互式修复错误
FS_TYPE 一定要与分区上已经文件类型相同  

e2fsck:ext系列文件专用的检测修复工具
-y 自动回答为yes
-f 强制修复

挂载mount命令的使用

mount DEVICE MOUNT_POINT
挂载: 将额外文件系统与根文件系统现存的目录建立起关联关系,从而使得目录是文件访问入口行为
卸载: 解除次关联关系的过程
挂载后原有文件会被临时隐藏,挂载点一般为空
mount直接键入时,会通过查看/etc/mtab文件显示当前所有挂载的所有设备
  device: 挂载点设备
(1)设备文件,如/dev/sda3
(2)卷标: -L ‘LABEL’
(3)UUID,-U ‘UUID’
(4)伪文件系统: /proc/ /sysfs/ /devtmpfs/ /configfs/

注: 挂载点需要事先存在,使用中的挂载点无法卸载,建议使用空目录作为挂载点
常用选项

-t vsftype 指定要挂载的设备上的文件系统类型
-r readonly,只读挂载
-w read and write, 读写挂载
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)
-L 'LABEL' 以卷标指定挂载设备
-U 'UUID' 以UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上

查看内核追踪到的已挂载的所有设备
cat /proc/mounts  
-o options:(挂载文件系统的选项),多个选项使用逗号分隔

    async 异步模式 sync 同步模式,内存更改时,同时写磁盘
    atime/noatime 包含目录和文件
    diratime/nodiratime 目录的访问时间戳
    auto/noauto 是否支持自动挂载,是否支持-a选项
    exec/noexec 是否支持将文件系统上运行应用程序
    dev/nodev 是否支持在此文件系统上使用设备文件
    suid/nosuid 是否支持suid和sgid权限
    remount 重新挂载
    ro 只读 rw 读写
    user/nouser 是否允许普通用户挂载此设备,/etc/fstab使用
    acl 启用此文件系统上的acl功能
    loop 使用loop设备

defaults:相当于rw, suid, dev, exec, auto, nouser, async

卸载命令

查看挂载情况
findmnt MOUNT_POINT|device

查看正在访问指定文件系统的进程
lsof MOUNT_POINT
fuser -v MOUNT_POINT

例: lsof /dev
fuser -v /boot

终止所有在正访问指定的文件系统的进程
fuser -km MOUNT_POINT

卸载
umount DEVICE
umount MOUNT_POINT

 

文件挂载配置文件
/etc/fstab每行定义一个要挂载的文件系统

1、要挂载的设备或伪文件系统
设备文件
LABEL:LABEL=""
UUID:UUID=""
伪文件系统名称:proc, sysfs
2、挂载点
3、文件系统类型:ext4,xfs,iso9660,nfs,none
4、挂载选项:defaults ,acl,bind
5、转储频率:0:不做备份 1:每天转储 2:每隔一天转储
6、fsck检查的文件系统的顺序:允许的数字是0 1 2
      0:不自检
      1:首先自检;一般只有rootfs才用
      2:非rootfs使用

swap交换分区

swap分区支持虚拟内存,是系统RAM的补充,当没有RAM保持系统处理数据时会将数据写入swap分区。
swap空间建议使用大小

系统RAMSWAP空间允许休眠的swap空间
低于2GBRAM量的倍数RAM三倍
2G-8G等于RAM量RAM量的倍数
8G-64G4G到RAM容量的0.5倍RAM1.5倍
超过64G独立负载(至少4G)不建议使用休眠

注: 过多的swap空间会造成分配空闲造成资源浪费以至于内存泄露;过少的SWAP会导致内存和swap都消耗后导致的服务的异常终止

挂载使用swap空间
步骤说明
创建交换分区或文件 --> mkswap写入签名 --> /etc/fstab添加条目 --> swapon -a 激活交换分区 --> swapoff禁用分区

启用swap
swapon [option]…[device]
-a:激活所有交换分区
-p PRIORITY:指定优先级
禁用swap
swapoff [option]…[device]

SWAP分区优先级
分区有限即0-32767,值越大优先级越高
添加swap分区时,如果没有指定默认值-1,随后再次添加的swap如果还是没有赋优先级,会在-1的基础上继续-1-1=-2,从而保证第一块swap分区优先级。用于指定的值恒定大于自动的默认优先级
swap性能优化: 分布式存放,高性能磁盘存放

文件系统查看工具集合

df [option]…[file]…

-H 以10为单位
-T 文件系统类型
-h human-readable 以已读的方式查看M|G
-i inodes instead of blocks 以indode号查看分区
-P 以Posix兼容的格式输出

查看某目录总体空间占用状态
du [OPTION]… DIR

-h human-readable  可读的方式展示
-s summary 简要信息
--max-depth=# 指定最大目录层级

dd命令:convert and copy a file

命令选项:

dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#

if=file 从所命名文件读取而不是从标准输入
of=file 写到所命名的文件而不是到标准输出
ibs=size 一次读size个byte
obs=size 一次写size个byte
bs=size block size, 指定块大小(既是是ibs也是obs)
cbs=size 一次转化size个byte
skip=blocks 从开头忽略blocks个ibs大小的块
seek=blocks 从开头忽略blocks个obs大小的块
count=n 复制n个bs
conv=conversion[,conversion...] 用指定的参数转换文件


转换参数:

ascii 转换 EBCDIC 为 ASCII
ebcdic 转换 ASCII 为 EBCDIC
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
nocreat 不创建输出文件
noerror 出错时不停止
notrunc 不截短输出文件
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
Fdatasync 写完成前,物理写入输出文件  

备份MBR
    dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1

破坏MBR中的bootloader
   dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446

有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,实现如下
  dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc 

备份:
  dd if=/dev/sdx of=/dev/sdy
将本地的/dev/sdx整盘备份到/dev/sdy
  dd if=/dev/sdx of=/path/to/image
将/dev/sdx全盘数据备份到指定路径的image文件
  dd if=/dev/sdx | gzip >/path/to/image.gz
备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径

恢复:
  dd if=/path/to/image of=/dev/sdx
将备份文件恢复到指定盘
  gzip -dc /path/to/image.gz | dd of=/dev/sdx
将压缩的备份文件恢复到指定盘  
拷贝内存资料到硬盘
  dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root目录下的mem.bin文件
从光盘拷贝iso镜像
  dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root文件夹下,并保存为cd.iso文件

销毁磁盘数据
  dd if=/dev/urandom of=/dev/sda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据,执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行 

得到最恰当的block size
  dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
  dd if=/dev/zero of=/root/1Gb.file bs=2048 count=500000
  dd if=/dev/zero of=/root/1Gb.file bs=4096 count=250000

通过比较dd指令输出中命令的执行时间,即可确定系统最佳的block size大小  
 测试硬盘写速度
  dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
测试硬盘读速度
  dd if=/root/1Gb.file bs=64k | dd of=/dev/null 
500000
  dd if=/dev/zero of=/root/1Gb.file bs=4096 count=250000

通过比较dd指令输出中命令的执行时间,即可确定系统最佳的block size大小  
 测试硬盘写速度
  dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
测试硬盘读速度
  dd if=/root/1Gb.file bs=64k | dd of=/dev/null 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值