Linux学习之路-Linux-挂载【6】---20171213
2017-12-18 13:27
211 查看
#mount命令 : 挂载
将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为
卸载:为解除此关联关系的过程
把设备关联挂载点:mount Point mount
卸载时:可使用设备,也可以使用挂载点 umount
挂载点下原有文件在挂载完成后会被临时隐藏
挂载点目录一般为空
一个挂载分区(或文件系统)可以挂载到多个挂载点,但一个挂载点只能挂载一个挂载分区,否则会出现之前挂载分区的文件系统内容被后挂载分区内容所隐藏,会导致管理错乱。
如果挂载点是非空的,挂在后之前的文件将消失
取消挂载的时候,如果有人在挂载点中,这样就会出现无法取消挂载,在取消挂载前时最好提前发消息,然后在取消挂载
用mount命令挂载文件系统
挂载方法 : mount DEVICE MOUNT_POINT
mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
mount [-fnrsvw] [-t vfstype] [-o options] device dir
>device:指明要挂载的设备;
>(1) 设备文件:例如/dev/sda5
>(2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
>(3) UUID, -U 'UUID':例如 -U '0c50523c-43f1- 45e7-85c0-a126711d406e'
>(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
>dir:挂载点
>>事先存在;建议使用空目录
>>进程正在使用中的设备无法被卸载
mount常用命令选项
-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
mount 命令 -o 选项
-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
终止所有正在访问指定的文件系统的进程
> fuser -km MOUNT_POINT
卸载命令
>umount DEVICE
>umount MOUNT_POINT
挂载点和/etc/fstab
配置文件系统体系
被mount、fsck和其它程序使用
系统重启时保留文件系统体系
可以在设备栏使用文件系统卷标
使用mount -a 命令挂载/etc/fstab中的所有文件系统
文件挂载配置文件
/etc/fstab 每行定义一个要挂载的文件系统
要挂载的设备或伪文件系统
>设备文件
>LABEL:LABEL=""
>UUID:UUID=""
>伪文件系统名称:proc,sysfs
挂载点
文件系统类型
挂载选项:defaults
转储频率:0:不做备份 1:每天转储 2:每隔一天转储
自检次序:
>0:不自检
>1:首先自检;一般只有rootfs采用1
其他挂载程序最好不要自检,因为如果有问题,会导致系统无法正常启动
SWAP 交换分区
交换分区是系统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,会给这个优先级减1
先添加的swap的缺省优先级比较高,除非用户自己指定一个 优先级,而用户指定的优先级(是正数)永远高于核心缺省指定 的优先级(是负数)
优化性能:分布存放,高性能磁盘存放
移动介质
挂载意味着使外来的文件系统看起来如同是主目录树的一部分
访问前、介质必须被挂载
摘除时,介质必须被卸载
按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软 盘、USB等等)
挂载点通常在/media 或/mnt下
用法free [-b|-k|-m|-g|-h] [-l] [-o] [-t] [-s delay] [-c count] [-V]
>-k:以kB为单位
>-m: 以MB为单位
>-g: 以GB为单位
>-h: 所有输出字段自动缩放到包括单位在内的最短(三位数)表示,以人类易读格式显示
>-l显示详细的低和高内存统计信息
df 命令:文件系统空间占用等信息的查看工具
df [OPTION]... [FILE]... -H 以1000为单位
-a, - 都包括虚拟文件系统
-B,--block-size = SIZE使用SIZE字节块
>直接显示文件而不是挂载点的统计信息
>总计产生总计
-h, - 人类可读的打印尺寸(例如,1K 234M 2G)
-H, - 同样,但是使用1000而不是1024的幂
-i:列出inode信息
-P:以Posix兼容的格式输出
-t, --type=类型 只显示指定文件系统为指定类型的信息
-T, --print-type 显示文件系统类型
-x, --exclude-type=类型 只显示文件系统不是指定类型信息
SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:KB 1000,K 1024,MB 10001000,M 10241024,还有 G、T、P、E、Z、Y。
du 命令:查看某目录总体空间占用状态
计算每个文件的磁盘用量,目录则取总用量
用法:du [选项]... [文件]...或:du [选项]... --files0-from=F
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --all 输出所有文件的磁盘用量,不仅仅是目录
> --apparent-size 显示表面用量,而并非是磁盘用量;虽然表面用量通常会小一些,但有时它会因为稀疏文件间的"洞"、内部碎片、非直接引用的块等原因而变大。
-B, --block-size=大小 使用指定字节数的块
-b, --bytes 等于--apparent-size --block-size=1
-c, --total 显示总计信息
-D, --dereference-args 解除命令行中列出的符号连接
>--files0-from=F 计算文件F 中以NUL 结尾的文件名对应占用的磁盘空间
>如果F 的值是"-",则从标准输入读入文件名
-H 等于--dereference-args (-D)
-h, --human-readable 以可读性较好的方式显示尺寸(例如:1K 234M 2G)
>--si 类似-h,但在计算时使用1000 为基底而非1024
-k 等于--block-size=1K
-l, --count-links 如果是硬连接,就多次计算其尺寸
-m 等于--block-size=1M
-L, --dereference 找出任何符号链接指示的真正目的地
-P, --no-dereference 不跟随任何符号链接(默认)
-0, --null 将每个空行视作0 字节而非换行符
-S, --separate-dirs 不包括子目录的占用量
-s, --summarize 只分别计算命令列中每个参数所占的总用量
-x, --one-file-system 跳过处于不同文件系统之上的目录
-X, --exclude-from=文件 排除与指定文件中描述的模式相符的文件
--exclude=PATTERN 排除与PATTERN 中描述的模式相符的文件
--max-depth=N 显示目录总计(与--all 一起使用计算文件)
当N 为指定数值时计算深度为N;
--max-depth=0 等于--summarize
--time 显示目录或该目录子目录下所有文件的最后修改时间
--time=WORD 显示WORD 时间,而非修改时间:
atime,access,use,ctime 或status
--time-style=样式 按照指定样式显示时间(样式解释规则同"date"命令):
full-iso,long-iso,iso,+FORMAT
--help 显示此帮助信息并退出
--version 显示版本信息并退出
losetup 命令:设置和控制回路设备
常用选项
-a, --all 显示所有回路设备的状态
-c, --set-capacity 强制循环驱动程序重新读取与指定循环设备关联的文件的大小
-d, --detach loopdev 分离与指定的循环设备相关联的文件或设备
-e, -E, --encryption 使用指定的名称或号码启用数据加密
-f, --find 找到第一个未使用的回路设备。 如果存在文件参数,请使用此设备。 否则,打印它的名字
-h, --help 打印帮助
-j, --associated file 显示与给定文件关联的所有循环设备的状态
-r, --read-only 设置只读循环设备
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
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=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
备份:
将本地的/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
恢复:
将备份文件恢复到指定盘
>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错误。当这种情况影响到硬盘的第一个扇区时, 可能导致硬盘报废。上边的命令有可能使这些数据起死回 生,且这个过程是安全高效的
将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为
卸载:为解除此关联关系的过程
把设备关联挂载点:mount Point mount
卸载时:可使用设备,也可以使用挂载点 umount
挂载点下原有文件在挂载完成后会被临时隐藏
挂载点目录一般为空
一个挂载分区(或文件系统)可以挂载到多个挂载点,但一个挂载点只能挂载一个挂载分区,否则会出现之前挂载分区的文件系统内容被后挂载分区内容所隐藏,会导致管理错乱。
如果挂载点是非空的,挂在后之前的文件将消失
取消挂载的时候,如果有人在挂载点中,这样就会出现无法取消挂载,在取消挂载前时最好提前发消息,然后在取消挂载
用mount命令挂载文件系统
挂载方法 : mount DEVICE MOUNT_POINT
mount:通过查看/etc/mtab文件显示当前已挂载的所有设备
mount [-fnrsvw] [-t vfstype] [-o options] device dir
>device:指明要挂载的设备;
>(1) 设备文件:例如/dev/sda5
>(2) 卷标:-L 'LABEL', 例如 -L 'MYDATA'
>(3) UUID, -U 'UUID':例如 -U '0c50523c-43f1- 45e7-85c0-a126711d406e'
>(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
>dir:挂载点
>>事先存在;建议使用空目录
>>进程正在使用中的设备无法被卸载
mount常用命令选项
-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
mount 命令 -o 选项
-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
终止所有正在访问指定的文件系统的进程
> fuser -km MOUNT_POINT
卸载命令
>umount DEVICE
>umount MOUNT_POINT
[root@Centos6~]# lsof /mnt COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 3196 root cwd DIR 8,17 4096 2 /mnt [root@Centos6~]#fuser -v /mnt 用户 进程号 权限 命令 /mnt: root 3196 ..c.. bash [root@Centos6~]#w 07:39:29 up 14:29, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - Sat17 9.00s 0.13s 0.13s -bash root pts/0 192.168.245.1 22:12 0.00s 0.93s 0.01s w [root@Centos6~]#echo Please get out > /dev/tty1
挂载点和/etc/fstab
配置文件系统体系
被mount、fsck和其它程序使用
系统重启时保留文件系统体系
可以在设备栏使用文件系统卷标
使用mount -a 命令挂载/etc/fstab中的所有文件系统
文件挂载配置文件
/etc/fstab 每行定义一个要挂载的文件系统
要挂载的设备或伪文件系统
>设备文件
>LABEL:LABEL=""
>UUID:UUID=""
>伪文件系统名称:proc,sysfs
挂载点
文件系统类型
挂载选项:defaults
转储频率:0:不做备份 1:每天转储 2:每隔一天转储
自检次序:
>0:不自检
>1:首先自检;一般只有rootfs采用1
其他挂载程序最好不要自检,因为如果有问题,会导致系统无法正常启动
[root@Centos6app]#mkfs.ext4 /app/f1 mke2fs 1.41.12 (17-May-2010) /app/f1 is not a block special device. 无论如何也要继续? (y,n) y ....... [root@Centos6app]#blkid f1 f1: UUID="23a4efe2-aae8-4dd6-961e-c547896e9079" TYPE="ext4" [root@Centos6app]#ls /dev/loop* /dev/loop0 /dev/loop2 /dev/loop4 /dev/loop6 /dev/loop1 /dev/loop3 /dev/loop5 /dev/loop7 [root@Centos6app]#mknod /dev/loop8 b 7 8 [root@Centos6app]#ls /dev/loop* /dev/loop0 /dev/loop2 /dev/loop4 /dev/loop6 /dev/loop8 /dev/loop1 /dev/loop3 /dev/loop5 /dev/loop7 [root@Centos6app]#dd if=/dev/zero of=f2 bs=1M count=1024 记录了1024+0 的读入 记录了1024+0 的写出 1073741824字节(1.1 GB)已复制,9.59967 秒,112 MB/秒 [root@Centos6app]#losetup /dev/loop8 /app/f2 [root@Centos6app]#losetup -a /dev/loop0: [0803]:11 (/app/f1) [root@Centos6app]#cat /boot/grub/grub.conf ......... kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=2dee0f68-6e60-4852-a9f6-f12ff27dd0da rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet 如果想创建多个loop,这行最后加上**max_loop=100** initrd /initramfs-2.6.32-696.el6.x86_64. [root@Centos6app]#vim /etc/fstab ....... UUID=88dfb867-e9d9-4bb1-b835-dcfae33f475e /mnt/sdb1 ext4 defaults 0 0 UUID=fef33d27-205d-4625-96fe-80b4edc488a1 /mnt/sdc1 ext4 defaults 0 0 /app/f1 /mnt/f1 ext4 defaults,loop 0 0 /app/f2 /mnt/f2 ext4 defaults,loop 0 0 /etc/sysconfig /mnt/sysconfig none bind 0 0 [root@Centos6~]#df -T Filesystem Type 1K-blocks Used Available Use% Mounted on ....... /dev/sdb1 ext4 5029504 10232 4757128 1% /mnt/sdb1 /dev/sdc1 ext4 5029504 10232 4757128 1% /mnt/sdc1 /app/f1 ext4 999320 1284 945608 1% /mnt/f1 /app/f2 ext4 999320 1284 945608 1% /mnt/f2
SWAP 交换分区
交换分区是系统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,会给这个优先级减1
先添加的swap的缺省优先级比较高,除非用户自己指定一个 优先级,而用户指定的优先级(是正数)永远高于核心缺省指定 的优先级(是负数)
优化性能:分布存放,高性能磁盘存放
[root@Centos6~]#swapon -s Filename Type Size Used Priority /dev/sda5 partition 2097148 0 -1 [root@Centos6~]#cat /proc/swaps Filename Type Size Used Priority /dev/sda5 partition 2097148 0 -1 [root@Centos6~]#vim /etc/fstab UUID=26003261-5cc9-47e2-8a5a-808d7289f66b swap swap pri=10 0 0 [root@Centos6~]#dd if=/dev/zero of=/app/swapfile bs=1M count=1024 记录了1024+0 的读入 记录了1024+0 的写出 1073741824字节(1.1 GB)已复制,7.48621 秒,143 MB/秒 [root@Centos6~]#mkswap /app/swapfile mkswap: /app/swapfile: warning: don't erase bootbits sectors on whole disk. Use -f to force. Setting up swapspace version 1, size = 1048572 KiB no label, UUID=f1ae20e0-36a7-41c6-b811-a474cfb0dcc2 [root@Centos6~]#blkid /app/swapfile /app/swapfile: UUID="f1ae20e0-36a7-41c6-b811-a474cfb0dcc2" TYPE="swap" [root@Centos6~]#vim /etc/fstab /app/swapfile swap swap defaults 0 0 [root@Centos6~]#swapon -a [root@Centos6~]#swapon -s Filename Type Size Used Priority /dev/sda5 partition 2097148 0 -1 /app/swapfile file 1048572 0 -2 [root@Centos6~]#free total used free shared buffers cached Mem: 1204812 1129464 75348 352 43732 899064 -/+ buffers/cache: 186668 1018144 Swap: 3145720 0 3145720
移动介质
挂载意味着使外来的文件系统看起来如同是主目录树的一部分
访问前、介质必须被挂载
摘除时,介质必须被卸载
按照默认设置,非根用户只能挂载某些设备(光盘、DVD、软 盘、USB等等)
挂载点通常在/media 或/mnt下
常见工具
free 命令:内存空间使用状态用法free [-b|-k|-m|-g|-h] [-l] [-o] [-t] [-s delay] [-c count] [-V]
>-k:以kB为单位
>-m: 以MB为单位
>-g: 以GB为单位
>-h: 所有输出字段自动缩放到包括单位在内的最短(三位数)表示,以人类易读格式显示
>-l显示详细的低和高内存统计信息
df 命令:文件系统空间占用等信息的查看工具
df [OPTION]... [FILE]... -H 以1000为单位
-a, - 都包括虚拟文件系统
-B,--block-size = SIZE使用SIZE字节块
>直接显示文件而不是挂载点的统计信息
>总计产生总计
-h, - 人类可读的打印尺寸(例如,1K 234M 2G)
-H, - 同样,但是使用1000而不是1024的幂
-i:列出inode信息
-P:以Posix兼容的格式输出
-t, --type=类型 只显示指定文件系统为指定类型的信息
-T, --print-type 显示文件系统类型
-x, --exclude-type=类型 只显示文件系统不是指定类型信息
SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:KB 1000,K 1024,MB 10001000,M 10241024,还有 G、T、P、E、Z、Y。
du 命令:查看某目录总体空间占用状态
计算每个文件的磁盘用量,目录则取总用量
用法:du [选项]... [文件]...或:du [选项]... --files0-from=F
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --all 输出所有文件的磁盘用量,不仅仅是目录
> --apparent-size 显示表面用量,而并非是磁盘用量;虽然表面用量通常会小一些,但有时它会因为稀疏文件间的"洞"、内部碎片、非直接引用的块等原因而变大。
-B, --block-size=大小 使用指定字节数的块
-b, --bytes 等于--apparent-size --block-size=1
-c, --total 显示总计信息
-D, --dereference-args 解除命令行中列出的符号连接
>--files0-from=F 计算文件F 中以NUL 结尾的文件名对应占用的磁盘空间
>如果F 的值是"-",则从标准输入读入文件名
-H 等于--dereference-args (-D)
-h, --human-readable 以可读性较好的方式显示尺寸(例如:1K 234M 2G)
>--si 类似-h,但在计算时使用1000 为基底而非1024
-k 等于--block-size=1K
-l, --count-links 如果是硬连接,就多次计算其尺寸
-m 等于--block-size=1M
-L, --dereference 找出任何符号链接指示的真正目的地
-P, --no-dereference 不跟随任何符号链接(默认)
-0, --null 将每个空行视作0 字节而非换行符
-S, --separate-dirs 不包括子目录的占用量
-s, --summarize 只分别计算命令列中每个参数所占的总用量
-x, --one-file-system 跳过处于不同文件系统之上的目录
-X, --exclude-from=文件 排除与指定文件中描述的模式相符的文件
--exclude=PATTERN 排除与PATTERN 中描述的模式相符的文件
--max-depth=N 显示目录总计(与--all 一起使用计算文件)
当N 为指定数值时计算深度为N;
--max-depth=0 等于--summarize
--time 显示目录或该目录子目录下所有文件的最后修改时间
--time=WORD 显示WORD 时间,而非修改时间:
atime,access,use,ctime 或status
--time-style=样式 按照指定样式显示时间(样式解释规则同"date"命令):
full-iso,long-iso,iso,+FORMAT
--help 显示此帮助信息并退出
--version 显示版本信息并退出
losetup 命令:设置和控制回路设备
常用选项
-a, --all 显示所有回路设备的状态
-c, --set-capacity 强制循环驱动程序重新读取与指定循环设备关联的文件的大小
-d, --detach loopdev 分离与指定的循环设备相关联的文件或设备
-e, -E, --encryption 使用指定的名称或号码启用数据加密
-f, --find 找到第一个未使用的回路设备。 如果存在文件参数,请使用此设备。 否则,打印它的名字
-h, --help 打印帮助
-j, --associated file 显示与给定文件关联的所有循环设备的状态
-r, --read-only 设置只读循环设备
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
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=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
备份:
将本地的/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
恢复:
将备份文件恢复到指定盘
>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 0-2 挂载iso及设定yum 源为iso镜像
- Linux 系统挂载数据盘
- Linux中如何挂载windows共享文件以实现文件传输
- linux挂载文件
- Linux开机自动挂载Windows分区的两种方法
- linux 分区 挂载点之间的关系
- Linux挂载NTFS的方法
- Linux挂载磁盘
- 在Linux PC上挂载JFFS2文件系统
- Linux系统开机自动挂载windows分区
- Linux(挂载)--笔记
- Linux挂载Windows文件系统
- Linux手动挂载硬盘且添加到文件
- linux开机自动挂载Windows文件
- linux 下添加新硬盘设备和硬盘分区格式化挂载使用磁盘配额限制
- linux挂载新硬盘
- 富士康主板的LINUX系统网卡驱动挂载
- linux常用命令---设备挂载与卸载类
- mini6410基于linux2.6.36内核通过NFS启动根文件系统总结(四制作根文件系统及通过NFS挂载文件系统)
- linux挂载ntfs格式硬盘,怎么办?