1、linux下设备文件在/dev目录下 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位“字符”,键盘 设备号码: 主设备号:major number, 标识设备类型 次设备号:minor number, 标识同一类型下的不同设备 ┌─[root@centos6]─[~] └──╼ #ll /dev/sd* brw-rw---- 1 root disk 8, 0 Apr 22 10:09 /dev/sda brw-rw---- 1 root disk 8, 1 Apr 22 10:09 /dev/sda1 brw-rw---- 1 root disk 8, 2 Apr 22 10:09 /dev/sda2 brw-rw---- 1 root disk 8, 3 Apr 22 10:09 /dev/sda3 brw-rw---- 1 root disk 8, 4 Apr 22 10:09 /dev/sda4 brw-rw---- 1 root disk 8, 5 Apr 22 10:09 /dev/sda5 8,0则是块是设备的主设备号,次设备号 我们也可以自己创建设备: ---->mknod /data/sdb b 8 6 ┌─[root@centos6]─[~] └──╼ #mknod /date/sdb b 8 6 ┌─[root@centos6]─[~] └──╼ #ll /date/ total 56 drwx------. 2 root root 16384 Mar 27 16:56 lost+found brw-r--r-- 1 root root 8, 6 Apr 22 10:32 sdb 新加一块次磁盘,使其生效 ┌─[root@centos6]─[~] └──╼ #echo "- - -" >/sys/class/scsi_host/host2/scan ┌─[root@centos6]─[~] └──╼ #lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 3.7G 0 rom /mnt/cdrom sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 48.8G 0 part / ├─sda3 8:3 0 29.3G 0 part /date ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 2G 0 part [SWAP] sdb 8:16 0 20G 0 disk 2、磁盘寻址大小 CHS和LBA CHS 采用24bit位寻址 其中前10位表示cylinder,中间8位表示head,后面6位表示sector 最大寻址空间8GB LBA(logical block addressing) LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址 LBA采用48个bit位寻址 最大寻址空间128PB 由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB时,可以使用CHS寻址方 式或是LBA寻址方式;在磁盘容量大于大概8GB时,则只能使用LBA寻址方式 3、磁盘分区 两种分区方式:MBR,GPT MBR: Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T 如何分区:按柱面 0磁道0扇区:512bytes 446bytes: boot loader 64bytes:分区表 16bytes: 标识一个分区 2bytes: 55AA 4个主分区;3主分区+1扩展(N个逻辑分区) 我们可以通过命令查看和备份MBR ┌─[root@centos6]─[~] └──╼ #hexdump -C /dev/sda -n512 00000000 eb 48 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0 |.H..............| 00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00 |...|.........!..| 00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75 |....8.u........u| 00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 03 02 |.........|...t..| 00000040 80 00 00 80 80 13 05 00 00 08 fa 90 90 f6 c2 80 |................| 00000050 75 02 b2 80 ea 59 7c 00 00 31 c0 8e d8 8e d0 bc |u....Y|..1......| 00000060 00 20 fb a0 40 7c 3c ff 74 02 88 c2 52 f6 c2 80 |. ..@|<.t...R...| 00000070 74 54 b4 41 bb aa 55 cd 13 5a 52 72 49 81 fb 55 |tT.A..U..ZRrI..U| 00000080 aa 75 43 a0 41 7c 84 c0 75 05 83 e1 01 74 37 66 |.uC.A|..u....t7f| 00000090 8b 4c 10 be 05 7c c6 44 ff 01 66 8b 1e 44 7c c7 |.L...|.D..f..D|.| 000000a0 04 10 00 c7 44 02 01 00 66 89 5c 08 c7 44 06 00 |....D...f.\..D..| 000000b0 70 66 31 c0 89 44 04 66 89 44 0c b4 42 cd 13 72 |pf1..D.f.D..B..r| 000000c0 05 bb 00 70 eb 7d b4 08 cd 13 73 0a f6 c2 80 0f |...p.}....s.....| 000000d0 84 f0 00 e9 8d 00 be 05 7c c6 44 ff 00 66 31 c0 |........|.D..f1.| 000000e0 88 f0 40 66 89 44 04 31 d2 88 ca c1 e2 02 88 e8 |..@f.D.1........| 000000f0 88 f4 40 89 44 08 31 c0 88 d0 c0 e8 02 66 89 04 |..@.D.1......f..| 00000100 66 a1 44 7c 66 31 d2 66 f7 34 88 54 0a 66 31 d2 |f.D|f1.f.4.T.f1.| 00000110 66 f7 74 04 88 54 0b 89 44 0c 3b 44 08 7d 3c 8a |f.t..T..D.;D.}<.| 00000120 54 0d c0 e2 06 8a 4c 0a fe c1 08 d1 8a 6c 0c 5a |T.....L......l.Z| 00000130 8a 74 0b bb 00 70 8e c3 31 db b8 01 02 cd 13 72 |.t...p..1......r| 00000140 2a 8c c3 8e 06 48 7c 60 1e b9 00 01 8e db 31 f6 |*....H|`......1.| 00000150 31 ff fc f3 a5 1f 61 ff 26 42 7c be 7f 7d e8 40 |1.....a.&B|..}.@| 00000160 00 eb 0e be 84 7d e8 38 00 eb 06 be 8e 7d e8 30 |.....}.8.....}.0| 00000170 00 be 93 7d e8 2a 00 eb fe 47 52 55 42 20 00 47 |...}.*...GRUB .G| 00000180 65 6f 6d 00 48 61 72 64 20 44 69 73 6b 00 52 65 |eom.Hard Disk.Re| 00000190 61 64 00 20 45 72 72 6f 72 00 bb 01 00 b4 0e cd |ad. Error.......| 000001a0 10 ac 3c 00 75 f4 c3 00 00 00 00 00 00 00 00 00 |..<.u...........| 000001b0 00 00 00 00 00 00 00 00 22 76 00 00 00 00 80 20 |........"v..... | 000001c0 21 00 83 aa 28 82 00 08 00 00 00 00 20 00 00 aa |!...(....... ...| 000001d0 29 82 83 fe ff ff 00 08 20 00 00 80 1a 06 00 fe |)....... .......| 000001e0 ff ff 83 fe ff ff 00 88 3a 06 00 80 a9 03 00 fe |........:.......| 000001f0 ff ff 05 fe ff ff 00 08 e4 09 00 f8 1b 0f 55 aa |..............U.| 00000200 ┌─[root@centos6]─[/misc/cd/Packages] └──╼ #dd if=/dev/sda of=/date/mbr.bak bs=512 count=1 1+0 records in 1+0 records out 512 bytes (512 B) copied, 0.000197586 s, 2.6 MB/s 主引导程序:Bootloader,地址从0000--0088 出错信息数据区,地址0089--00E1为出错信息,00E2--01BD全为0字节 分区表:64Bytes,每个分区用16Bytes标识,01BE--01FD 结束符:标识磁盘是否被分区,2Bytes,01FE--01FF 标识分区的16Bytes中每个Bytes含义? 第一个字节:8bit,引导标志,80表示活动分区,00表示非活动分区 第二个字节:8bit,磁头号,head,分区开始CHS位置 第三个字节:6bit,低六位表示扇区号,2bit,高二位表示柱面号,分区开始CHS位置 第四个字节:10bit,与第三个字节高二位表示柱面号,分区开始CHS位置 第五个字节:8bit,分区类型,0表示分区未使用 第六个字节:对应第二个字节,分区结束CHS位置 第七个字节:对应第三个字节,分区结束CHS位置 第八个字节:对应第五个字节,分区结束CHS位置 第9-12个字节:分区开始的LBA地址 第12-16个字节:分区结束的LBA地址 GPT GPT:GUID(Globals Unique Identifiers)partition table支持128个分区,使用64位,支持8Z (512Byte/block)64Z(4096Byte/block 使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾 两份,并有CRC校验位 UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动 5、查看磁盘分区情况 parted -l ;fdisk -l ; lsblk ; cat /proc/partitions ┌─[root@centos6]─[/misc/cd/Packages] └──╼ #parted -l Model: VMware, VMware Virtual S (scsi) Disk /dev/sda: 215GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 1075MB 1074MB primary ext4 boot 2 1075MB 53.5GB 52.4GB primary ext4 3 53.5GB 85.0GB 31.5GB primary ext4 4 85.0GB 215GB 130GB extended 5 85.0GB 87.1GB 2147MB logical linux-swap(v1) Error: /dev/sdb: unrecognised disk label Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only. Error: Invalid partition table - recursive partition on /dev/sr0. Ignore/Cancel?
┌─[root@centos6]─[/misc/cd/Packages]
└──╼ #fdisk -l
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00007622
Device Boot Start End Blocks Id System
/dev/sda1 * 1 131 1048576 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 131 6505 51200000 83 Linux
/dev/sda3 6505 10330 30720000 83 Linux
/dev/sda4 10330 26109 126745600 5 Extended
/dev/sda5 10330 10591 2097152 82 Linux swap / Solaris
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
┌─[root@centos6]─[/misc/cd/Packages]
└──╼ #lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 3.7G 0 rom /mnt/cdrom
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 48.8G 0 part /
├─sda3 8:3 0 29.3G 0 part /date
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 2G 0 part [SWAP]
sdb 8:16 0 20G 0 disk
┌─[root@centos6]─[/misc/cd/Packages] └──╼ #cat /proc/partitions major minor #blocks name 8 0 209715200 sda 8 1 1048576 sda1 8 2 51200000 sda2 8 3 30720000 sda3 8 4 1 sda4 8 5 2097152 sda5 8 16 20971520 sdb parted命令 parted的操作都是实时生效的,小心使用,生产环境较少使用 用法:parted [选项]... [设备 [命令 [参数]...]...] parted /dev/sdb mklabel gpt|msdos parted /dev/sdb print parted /dev/sdb mkpart primary 1 200 (默认M) parted /dev/sdb rm 1 parted –l 列出分区信息 fdisk /dev/sdb 管理分区 p 分区列表 t 更改分区类型 n 创建新分区 d 删除分区 v 校验分区 u 转换单位 w 保存并退出 q 不保存并退出 L 查看分区类型 注:lsblk命令查看是从本地查看分区表,其他查看命令则是查看从开机启动加载到内核中的分区表,本地 分区表和内核分区表必须相同,否则会出错 centos6通知内核重新读取硬盘分区表 新增分区用 partx -a /dev/DEVICE 删除分区用 partx -d --nr M-N /dev/DEVICE M,N表示分区数字编号,如/dev/sdb7,则M|N表示7,连续删除分区重读可用上述M-N,单个分区则一 个数字即可 CentOS 5,7: 使用partprobe partprobe [/dev/DEVICE] 4、创建文件系统和挂载 查看当前系统内核支持的文件系统 ┌─[root@centos6]─[~] └──╼ #ls /lib/modules/`uname -r`/kernel/fs autofs4 cifs dlm ext2 fat gfs2 jffs2 nfs nls udf btrfs configfs ecryptfs ext3 fscache jbd lockd nfs_common squashfs xfs cachefiles cramfs exportfs ext4 fuse jbd2 mbcache.ko nfsd ubifs 创建文件系统 mkfs (1) mkfs.FS_TYPE /dev/DEVICE ext4 xfs btrfs vfat (2) mkfs -t FS_TYPE /dev/DEVICE -L 'LABEL': 设定卷标 mke2fs:ext系列文件系统专用管理工具 -t {ext2|ext3|ext4} -b {1024|2048|4096} -L 'LABEL' -j: 相当于 -t ext3 mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3 -i #: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小 -N #:指定分区中创建多少个inode -I 一个inode记录占用的磁盘空间大小,128---4096 -m #: 默认5%,为管理人员预留空间占总空间的百分比 -O FEATURE[,...]:启用指定特性 -O ^FEATURE:关闭指定特性 注:mke2fs相当于mkfs -t ext#;所以mke2fs的选项对mkfs同样适用 比如:创建一个块大小为2k,预留比为1,命名为syslinux的ext2文件系统
┌─[root@centos6]─[~] └──╼ #mkfs -t ext2 -b 2048 -m 1 -L syslinux /dev/sdb1 mke2fs 1.41.12 (17-May-2010) Filesystem label=syslinux OS type: Linux Block size=2048 (log=1) Fragment size=2048 (log=1) Stride=0 blocks, Stripe width=0 blocks 1310720 inodes, 10482396 blocks 104823 blocks (1.00%) reserved for the super user First data block=0 Maximum filesystem blocks=547356672 640 block groups 16384 blocks per group, 16384 fragments per group 2048 inodes per group Superblock backups stored on blocks: 16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 2048000, 3981312, 5619712, 10240000 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 39 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
blkid:块设备属性信息查看 blkid [OPTION]... [DEVICE] -U UUID: 根据指定的UUID来查找对应的设备 -L LABEL:根据指定的LABEL来查找对应的设备 查看LABEL为syslinux的设备名 ┌─[root@centos6]─[~] └──╼ #blkid -L syslinux /dev/sdb1 e2label:管理ext系列文件系统的LABEL e2label DEVICE [LABEL] 修改卷名syslinux的ext设备为pxelinux ┌─[root@centos6]─[~] └──╼ #e2label /dev/sdb1 pxelinux ┌─[root@centos6]─[~] └──╼ #blkid /dev/sdb1 /dev/sdb1: LABEL="pxelinux" UUID="5a22eb1e-9de1-4fcd-959f-890622c55e30" TYPE="ext2" findfs :查找分区 findfs [options] LABEL=<label> findfs [options] UUID=<uuid> 查找UUID=5a22eb1e-9de1-4fcd-959f-890622c55e30的分区 ┌─[root@centos6]─[~] └──╼ #findfs UUID=5a22eb1e-9de1-4fcd-959f-890622c55e30 /dev/sdb1 tune2fs tune2fs:重新设定ext系列文件系统可调整参数的值 -l:查看指定文件系统超级块信息;super block -L 'LABEL':修改卷标 -m #:修预留给管理员的空间百分比 -j: 将ext2升级为ext3 -O: 文件系统属性启用或禁用, –O ^has_journal -o: 调整文件系统的默认挂载选项,–o ^acl -U UUID: 修改UUID号 将上述创建的ext2文件系统修改为ext3,预留比为2,默认启用acl,更换其UUID ┌─[root@centos6]─[~] └──╼ #tune2fs -O has_journal -o acl -U `uuidgen` -m 2 /dev/sdb1 tune2fs 1.41.12 (17-May-2010) Setting reserved blocks percentage to 2% (209647 blocks) 超级块
查看文件系统的超级块 ┌─[root@centos6]─[~] └──╼ #tune2fs -l /dev/sdb1 tune2fs 1.41.12 (17-May-2010) Filesystem volume name: pxelinux #卷名 Last mounted on: <not available> #最近挂载点 Filesystem UUID: f2be501e-971d-4597-83b6-179073270669 #设备UUID Filesystem magic number: 0xEF53 #文件系统魔术 Filesystem revision #: 1 (dynamic) Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super #文件系统特性 Filesystem flags: signed_directory_hash Default mount options: acl #挂载特性 Filesystem state: clean #是否需要修复 Errors behavior: Continue Filesystem OS type: Linux Inode count: 1310720 #inod个数 Block count: 10482396 #块个数 Reserved block count: 209647 #预留百分比的表现 Free blocks: 10277111 Free inodes: 1310709 First block: 0 Block size: 2048 #块大小,可人为设定 Fragment size: 2048 Reserved GDT blocks: 512 #预留百分比的表现 Blocks per group: 16384 Fragments per group: 16384 Inodes per group: 2048 Inode blocks per group: 256 Filesystem created: Tue Apr 24 09:44:10 2018 Last mount time: n/a Last write time: Tue Apr 24 10:07:07 2018 Mount count: 0 #当前的挂载次数,可用tune2fs -C更改 Maximum mount count: 39 #文件系统被挂载次数,达到设定值,触发文件系统检查,tune2fs -c 更改 Last checked: Tue Apr 24 09:44:10 2018 Check interval: 15552000 (6 months) Next check after: Sun Oct 21 09:44:10 2018 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 256 #inode大小,可创建文件系统时可用-I选项设定 Required extra isize: 28 Desired extra isize: 28 Journal inode: 8 Default directory hash: half_md4 Directory Hash Seed: 217a0183-9510-482e-9714-686d2aa36b8b Journal backup: inode blocks 文件系统检测和修复 常发生于死机或者非正常关机之后 挂载为文件系统标记为“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文件显示当前已挂载的所有设备 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' 注:一般的文件系统最好使用全局唯一标识UUID进行指定挂载,而文件(dd命令生成的文件)和文件夹只能 使用文件名挂载,否则会出错 (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: 绑定目录到另一个目录上 #mount -B olddir newdir 查看内核追踪到的已挂载的所有设备 cat /proc/mounts mount常用命令选项 -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 常见用法:mount -o rw,remount / mount -o acl /dev/sda /point mount -o _netdev /share/nfs /data2 注:文件挂载需要加-o loop选项f loop为本地回环设备,centos6中在/dev/目录下默认创建0-7,8个设备文件,存在两种方法增加此设 备 第一种: mknod /dev/loop# b 7 8+ (+表示8以上数字均可) 第二种:在/boot/grub/grub.conf要启动内核后加上max_loop=#,则内核启动是会默认生成指定个 数的loop设备文件 创建设备后如若映射对应关系,则可不加-o loop选项 losetup /dev/loop7 qemu.ing mount qemu.img /data 卸载 查看挂载情况 findmnt MOUNT_POINT|device 查看正在访问指定文件系统的进程 lsof MOUNT_POINT fuser -v MOUNT_POINT 终止所有在正访问指定的文件系统的进程 fuser -km MOUNT_POINT 卸载 umount DEVICE umount MOUNT_POINT /etc/fstab /etc/fstab每行定义一个要挂载的文件系统 1.要挂载的设备或伪文件系统 设备文件 LABEL:LABEL="" UUID:UUID="" 伪文件系统名称:proc, sysfs 2.挂载点 3.文件系统类型 4.挂载选项:defaults 5.转储频率: 0:不做备份;1:每天转储;2:每隔一天转储 6.自检次序: 0:不自检;1:首先自检,一般只有rootfs才用1 mount -a挂载/etc/fstab下所有挂载设备· 注:自定义挂载配置中挂载点出错,不影响系统启动 挂载设备出错,决定于自检次序 自检次序一般为0,否则挂载设备出错时系统不会跳过此错误,从而不能正确启动;设定为0,此错误 会被跳过 6、交换分区 交换分区是系统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的缺省优先级比较高,除非用户自己指定一个 优先级,而用户指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数) 优化性能:分布存放,高性能磁盘存放 7、使用光盘 在图形环境下自动启动挂载/run/media/<user>/<label>,否则就必须被手工挂载 mount /dev/cdrom /mnt/ eject 弹出光驱;eject -t 创建ISO文件 cp /dev/cdrom /root/centos7.iso mkisofs -r -o /root/etc.iso /etc 刻录光盘 wodim –v –eject centos.iso 挂载USB介质 查看USB设备是否识别 lsusb 8、常见工具 文件系统空间占用等信息的查看工具: df [OPTION]... [FILE]... -H 以1000为单位 -T 文件系统类型 -h: human-readable -i:inodes instead of blocks -P: 以Posix兼容的格式输出 常见用法:df -h ;df -T 查看某目录总体空间占用状态: du [OPTION]... DIR -h: human-readable -s: summary --max-depth 常见用法:du -sh 工具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 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 备份: 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大小 注:块大小为2K时为最佳 测试硬盘写速度 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错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这 些数据起死回生,且这个过程是安全高效的 注:dd命令可创建稀疏格式的文件 dd if=/dev/zero of=qemu.img bs=1M seek=1024 count=0
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96729