linux查阅大小为1g的文件,linux环回文件

我们通常在设备上(比如磁盘分区)上创建文件系统,这些存储设备能够以设备文件的形式来使用,如/dev/device_name。为了使用存储设备上的文件系统,我们将其挂载到挂载点。

环回文件系统是指那些在文件中而非物理设备中创建的文件系统。我们也可以将这些文件作为文件系统挂载到挂载点上。

dd的帮助已经非常详细

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

[root@future ~]# dd --help

用法:dd[操作数] ...

或:dd选项

Copy afile, converting and formatting according to the operands.

bs=BYTES read and write BYTES bytes at a time (also see ibs=,obs=)

cbs=BYTES convert BYTES bytes at a timeconv=CONVS convert the fileas per the comma separated symbol list

count=N copy only N input blocks

ibs=BYTES read BYTES bytes at a time (default: 512)if=FILE read from FILE instead of stdin

iflag=FLAGS read as per the comma separated symbol list

obs=BYTES write BYTES bytes at a time (default: 512)

of=FILE writeto FILE instead of stdout

oflag=FLAGS writeas per the comma separated symbol list

seek=BLOCKS skip BLOCKS obs-sized blocks at start of output

skip=BLOCKS skip BLOCKS ibs-sized blocks at start of input

status=WHICH WHICH infoto suppress outputting to stderr;'noxfer' suppresses transfer stats, 'none'suppresses all

块和字节数后可能带有以下的一个或多个后缀:

c=1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024, xM =M

GB=1000*1000*1000, G =1024*1024*1024, and so on forT, P, E, Z, Y.

每个 CONV 符号可能为:

ascii 由EBCDIC 码转换至ASCII 码

ebcdic 由ASCII 码转换至EBCDIC 码

ibm 由ASCII 码转换至替换的EBCDIC 码

block 将结束字符块里的换行替换成等长的空格

unblock 将cbs 大小的块中尾部的空格替换为一个换行符

lcase 将大写字符转换为小写

nocreatdo not create the output fileexcl failif the output filealready exists

notruncdo not truncate the output fileucase change lowercase to upper casesparse try to seek rather thanwrite the output forNUL input blocks

swab swap every pair of input bytes

noerror 读取数据发生错误后仍然继续sync把每个输入的块以 NUL 填充至 ibs 的大小

如果配合 block 或 unblock 使用, 则以空格代替 NUL 填充

fdatasync 结束前将输出文件数据写入磁盘

fsync 类似上面,但是元数据也一同写入

FLAG 符号可以是:

append 追加模式(仅对输出有意义;隐含了conv=notrunc)

direct 使用直接I/O 存取模式

directory 除非是目录,否则 directory 失败

dsync 使用同步I/O 存取模式sync与上者类似,但同时也对元数据生效

fullblock 为输入积累完整块(仅iflag)

nonblock 使用无阻塞I/O 存取模式

noatime 不更新存取时间

noctty 不根据文件指派控制终端

nofollow 不跟随链接文件

count_bytes treat'count=N' as a bytecount (iflag only)

对运行中的"dd"进程发送一个USR1 信号会使得

I/O 的统计信息被打印到标准错误设备然后恢复复制操作。

$dd if=/dev/zero of=/dev/null& pid=$!$kill -USR1 $pid; sleep 1; kill$pid18335302+0 records in

18335302+0records out9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s

可用选项有:--help 显示此帮助信息并退出--version 显示版本信息并退出

请向bug-coreutils@gnu.org 报告dd 的错误

GNU coreutils 项目主页:

GNU 软件一般性帮助:

请向 报告dd 的翻译错误

要获取完整文档,请运行:info coreutils 'dd invocation'

View Code

实例:

问题1:在大小为1GB的文件中创建ext4文件系统、

解答:

1.创建一个1G大小的文件,命名为lookbackfile.img

[root@future ~]# dd if=/dev/zero of=lookbackfile.img bs=1G count=1记录了1+0的读入

记录了1+0的写出

1073741824字节(1.1 GB)已复制,33.9402 秒,31.6 MB/秒

之所以创建的文件是1.1G,是因为硬盘作为块设备,其分配存储空间时是按照块大小的整数倍进行的。

2.使用mkfs命令将1GB文件格式化问ext4文件

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

[root@future ~]# mkfs.ext4 lookbackfile.img

mke2fs1.41.12 (17-May-2010)

lookbackfile.img is not a block special device.

无论如何也要继续?(y,n) y

文件系统标签=操作系统:Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0blocks65536 inodes, 262144blocks13107 blocks (5.00%) reserved forthe super user

第一个数据块=0Maximum filesystem blocks=268435456

8 block groups

32768 blocks per group, 32768fragments per group8192inodes per group

Superblock backups stored on blocks:32768, 98304, 163840, 229376正在写入inode表: 完成

Creating journal (8192blocks): 完成

Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every24mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.

View Code

3.检查文件系统

[root@future ~]# filelookbackfile.img

lookbackfile.img: Linux rev1.0 ext4 filesystem data (extents) (large files) (huge files)

4.挂载环回文件

[root@future ~]# mount -o loop lookbackfile.img /mnt/loopback/

在内部,这个环回文件挂载到了/dev/loop1设备上。

或者使用

[root@future ~]# losetup /dev/loop1 lookbackfile.img

[root@future~]# mount /dev/loop1 /mnt/loopback/

5.查看是否挂载上了

[root@future dev]# df -h

Filesystem Size Used Avail Use%Mounted on/dev/mapper/vg_future-lv_root

18G4.6G 12G 29% /tmpfs 491M 80K 491M1% /dev/shm/dev/sda1 477M 29M 424M 7% /boot/dev/sr0 4.4G 4.4G 0 100% /media/CentOS_6.6_Final/root/lookbackfile.img

976M1.3M 924M 1% /mnt/loopback

原理:

dd命令创建了一个文件,准备将其做为环回文件使用。dd是一个用于复制原始数据的通用命令。它将数据从if参数指定的文件复制到of参数指定的文件中。另外,我们指定的dd以大小为1GB的块为单位进行复制,共复制了1块,这样就创建了一个1GB的文件。/dev/zero是一个特殊的文件,如果读取这个文件,读出来的内容都是0。

当mount知道它使用的是环回文件时,它会自动在/dev中建立一个对应该环回文件的设备,并进行挂载。如果想手动挂载,可以使用losetup命令建立设备,然后使用mount命令进行挂载。

参考资料:《linux shell脚本攻略》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值