swap与dd命令使用详解

处理交换文件和分区

    交换分区是系统RAM 的补充

基本设置包括:

    创建交换分区或者文件

    使用mkswap 写入特殊签名

    在/etc/fstab 文件中添加适当的条目

    使用swapon -a

挂载交换分区

启用:swapon

swapon [OPTION]… [DEVICE]

-a :激活所有的交换分区;

-p PRIORITY :指定优先级

/etc/fstab:pri=value

禁用:swapoff [OPTION]… [DEVICE]

SWAP 的优先级

可以指定swap 分区0 32767 的优先级,值越大优先级越高

如果用户没有指定,那么核心会自动给swap 指定一个优先级,这个优先级从-1 开始,每加入一个新的没有用户指定优先级的swap ,会给这个优先级减一。

先添加的swap 的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级( 是正数) 永远高于核心缺省指定的优先级( 是负数)

       优化性能:分布存放,高性能磁盘存放

 禁用swap

没有内存情况下添加文件swap

删除文件swap

移动介质

挂载意味着使外来的文件系统看起来如同是主目录树的一部分

访问前、介质必须被挂载

摘除时,介质必须被卸载

按照默认设置,非根用户只能挂载某些设备(光盘、DVD 、软盘、USB 等等)

挂载点通常在/media  /mnt

 

挂载USB 介质

查看USB 设备是否识别

lsusb

被内核探测为SCSI 设备

/dev/sdaX /dev/sdbX 、或类似的设备文件

在图形环境中自动挂载

图标在[ 计算机] 窗口中创建

挂载在/run/media/<user>/<label>

手动挂载

mount /dev/sdb1 /mnt

插入U

使用光盘

在图形环境下自动启动挂载/run/media/<user>/<label>

否则就必须被手工挂载

mount /dev/cdrom /mnt/

eject 命令卸载或弹出磁盘

创建ISO 文件

cp /dev/cdrom /root/centos7.iso

mkisofs -r -o /root/etc.iso /etc

刻录光盘

wodim v eject centos.iso

cdrecord  也可用作刻录光盘


生产iso镜像

可将镜像传至U

机房服务器过多,且有一台硬盘出现问题时,可用eject弹出光驱,以便查找故障机器

常见工具

内存空间使用状态:

free [OPTION]

-m:  MB 为单位

-g:  GB 为单位

文件系统空间占用等信息的查看工具:

df [OPTION]… [FILE]…

-H  1000 为单位 10次方

-T  文件系统类型

-h: human-readable 人类可读的方式 2次方

-i inodes instead of blocks

-P:  Posix 兼容的格式输出

查看某目录总体空间占用状态:每个子文件夹的大小

du [OPTION]… DIR

-h: human-readable

-s: summary 汇总

统计根下每个文件夹的大小

工具dd

dd 命令:convert and copy a file 转换和复制文件

用法:

dd if=/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 个记录

conv=conversion[,conversion…]  用指定的参数转换文件

转换参数:

ascii 换 转换 EBCDIC 为 为 ASCII

ebcdic 换 转换 ASCII 为 为 EBCDIC

block  转换一行数据为长度为 cbs  的记录,不足部分用空格填充。

unblock 替代cbs 长度的每一行尾的空格为新行

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

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

nocreat  不创建输出文件

noerror  出错时不停止

notrunc  不截短输出文件

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

 

备份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=1seek=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 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 指令输出中所显示的命令执行时间,即可确定系统最佳的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

通过上两个命令输出的执行时间,可以计算出测试硬盘的写//速度

 

修复硬盘

dd if=/dev/sda of=/dev/sda

当硬盘较长时间(比如1,2 年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O 错误。当这种情况影响到硬盘的第一个扇区时,

可能导致硬盘报废。上边的命令有可能使这些数据起死回生,且这个过程是安全高效的

原创文章,作者:Linux.rookie,如若转载,请注明出处:/74501

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达注册  测试  万达娱乐开户  万达娱乐  万达娱乐  guoqibee.com  万达娱乐直属  guoqibee.com  万达娱乐招商  万达主管QQ