磁盘管理(二)之swap、dd工具使用
一、挂载点和/etc/fstab
(1)配置文件/etc/fstab,当系统启动时,自动加载该文件,会把写在配置文件里面的所有挂载点全部自动挂载上去,只要按照格式写,就不会丢失。
(2)文件挂载配置文件,如下图:
/etc/fstab每行定义一个要挂载的文件系统;
要挂载的设备或伪文件系统(设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc, sysfs))
挂载点
文件系统类型(光盘:iso9660;文件挂文件的类型则为:none,选项为bind)
挂载选项 (defaults——相当于rw, suid, dev, exec, auto, nouser, async)
转储频率(0:不做备份;1:每天转储;2:每隔一天转储)
自检次序(0:不自检;1:首先自检;一般只有rootfs才用1)
(3) 使用mount -a 命令生效挂载在/etc/fstab中的所有文件系统
(4)使用文件来模拟分区,用来测试格式化等操作(当磁盘空间已经全部分完),则可以使用下面的命令来创建:
#dd if=/dev/zero of=/testdir/partfile bs=1M count=500
如上图,同样可以使用格式化命令mkfs.ext4都可以对该文件进行格式化。
当格式化完成后,使用命令blkid查看时是没有改文件系统的,则需要使用mount命令来进行挂载,如下图:
但在挂载的过程中会出现下图中错误,需要按照提示来添加相应的选项即可。
挂载完成后,使用命令#mount,可以看到,这文件的挂载是映射到了/dev/loop上。通过这样设置,可以通过文件来做“移动硬盘”使用。
(注:在CentOS6上,loop设备默认是8个;在CentOS7上,loop则是随机生成,没有数量上的限制。如果是使用loop设备来挂载,则使用命令#losetup /dev/loop3 /testdir/partfile;mount /dev/loop3 /mnt/partfile3)
通过在/etc/fstab上设置,让系统开机自检挂载(永久生效自动挂载)
二、swap交换分区:
1、swap交换分区是系统RAM的补充。
(如下图,命令#free显示的以k为单位;#free -m是以M为单位显示;#free -g是以G为单位显示)
2、如何知道系统中的swap是由谁提供的?
命令#cat /proc/swaps
3、由于分区的局限性(已经分好分区的swap是无法扩展的),因此如何进行swap的增加,如下图:
新分区做为swap,并修改分区编号保存后,如下图:
4、格式化swap:
mkswap -L swap_sba6 /dev/sda6
5、修改/etc/fstab:
6、激活所有的swap:
#swapon –a
(注:可以使用命令#swapon -s 查看激活的swap)
7、设置swap的优先级:
(pri的设置为0至32767)
#vim /etc/fstab
defaults的默认设置优先级是负数,所以需要手动去设置swap的优先级,如下图:
在/etc/fstab设置完优先级后,要使用命令#swapoff /dev/sda6禁用;再用命令#swapon -a 激活
8、swap的优先级了解:
如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap,会给这个优先级减一。
先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数)。
优化性能:分布存放,高性能磁盘存放
9、使用文件来做swap :
(当磁盘的分区把空间全部用完了,可以考虑使用文件来做swap分区)如下图:
生效:#swapon -a
10、swap的删除:
首先要禁用:#swapoff /dev/sda6 ;#swapoff /testdir/swapfile
然后到配置文件/etc/fstab上删除相应的添加记录,删除相应的分区和文件(rm -rf /testdir/swapfile)即可。
三、移动介质挂载使用:(移动硬盘因为格式为ntfs使用不了)
#mount /dev/sd? /mnt/usb
拔除U盘前需要做的动作是命令#sync(最好执行三次,以免数据没有写入到U盘上)
#umount /mnt/usb 然后拔除U盘
四、光盘的使用
mount /dev/cdrom/mnt/
eject命令卸载或弹出光驱磁盘;eject -t 弹入光驱
创建ISO文件:
cp /dev/cdrom /root/centos7.iso
mkisofs -r -o /root/etc.iso /etc (将目录打包成ISO,作为备份)
刻录光盘:wodim -v -eject centos.iso
五、常见工具:
内存空间使用状态:free
-m: 以MB为单位
-g: 以GB为单位
文件系统空间占用等信息的查看工具:df
-H 以1000为单位
-T 文件系统类型
-h: human-readable
-i:inode sinstead of blocks
-P: 以Posix兼容的格式输出(较多用于设备名称过长、显示不整齐时)
查看某目录总体空间占用状态:du
-h: human-readable
-s: summary
六、dd工具的使用:
1、dd命令:convert and copy a file
2、用法:
ddif=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 复制单元大小
count=#:复制多少个bs
of=file写到所命名的文件而不是到标准输出
if=file从所命名文件读取而不是从标准输入
bs=size指定块大小(既是是ibs也是obs)
ibs=size一次读size个byte
obs=size 一次写size个byte
cbs=size 一次转化size个byte
skip=blocks从开头忽略blocks个ibs大小的块
seek=blocks从开头忽略blocks个obs大小的块
count=n只拷贝n个记录
cbs=size 一次转换多少byte
3、conv=conversion[,conversion…] 用指定的参数转换文件。
转换参数:
ascii 转换EBCDIC 为ASCII
ebcdic 转换ASCII 为EBCDIC
block 转换为长度为cbs 的记录,不足部分用空格填充。
unblock 替代cbs长度的每一行尾的空格为新行
lcase 把大写字符转换为小写字符
ucase 把小写字符转换为大写字符
nocreate不创建输出文件
noerror 出错时不停止
notrunc 不截短输出文件。
sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐
4、磁盘拷贝:ddif=/dev/sdaof=/dev/sdb
备份MBR:ddif=/dev/sdaof=/tmp/mbr.bakbs=512 count=1
破坏MBR中的bootloader:ddif=/dev/zero of=/dev/sdabs=64 count=1 seek=446
5、备份:
将本地的/dev/sdx整盘备份到/dev/sdy:dd if=/dev/sdx of=/dev/sdy
将/dev/sdx全盘数据备份到指定路径的image文件:dd if=/dev/sdx of=/path/to/image
备份/dev/sdx全盘数据,并利用gzip工具进行压缩,保存到指定路径:dd if=/dev/sdx|gzip >/path/to/image.gz
6、恢复:
将备份文件恢复到指定盘:dd if=/path/to/image of=/dev/sdx
将压缩的备份文件恢复到指定盘:gzip -dc /path/to/image.gz | dd of=/dev/sdx
7、拷贝内存资料到硬盘
将内存里的数据拷贝到root目录下的mem.bin文件:dd if=/dev/mem of=/root/mem.bin bs=1024
从光盘拷贝iso镜像:dd if=/dev/cdrom of=/root/cd.iso
8、销毁磁盘数据
dd if=/dev/urandom of=/dev/sda1
注:利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行。
9、得到最恰当的block size
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小
10、测试硬盘读写速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度
11、修复硬盘
dd if=/dev/sda of=/dev/sda
当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。
1、创建一个2G的文件系统,块大小为2048byte,预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/testdir目录,且默认有acl挂载选项
2、写一个脚本,完成如下功能:
(1) 列出当前系统识别到的所有磁盘设备;
(2) 如磁盘数量为1,则显示其空间使用信息;
否则,则显示最后一个磁盘上的空间使用信息;
脚本代码:
脚本执行效果:
原创文章,作者:Aaron_wang,如若转载,请注明出处:http://www.178linux.com/41077
评论列表(1条)
文章结构层次清晰,内容完整,图文并貌,同时通过自己的实际操作,巩固了当天所学的知识。建议多加练习,熟练运用。