磁盘管理(一)

分区 高级格式化

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
 
 PHWI2(Q)}[KH5LS7VFEW(1X
   
 标识分区的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,使操作系统启动
OBWMDV(7]JVS~PI($@DC)K5
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)

  超级块

~7XO]INTE}Y3ZG9S9%TRHMY
  查看文件系统的超级块

┌─[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

(1)
上一篇 2018-04-21 21:16
下一篇 2018-04-22 14:43

相关推荐

  • linux基础命令及文件管理

    linux基础和帮助 echo 命令扩展行:$()或` ` # echo $USER # root # echo “i am `whoami`” # i am root 括号扩展:{ } # echo file{1,3,5} # file1 file3 file5 # rm -f file{1,3,5} # echo {1..10} …

    Linux笔记 2018-04-08
  • Homework_week3

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。        who | cut -d’ ‘ -f1 | uniq 2、取出最后登录到当前系统的用户的相关信息。       who | tail -1 3、取出当前系统上被用户当作其默认shell的最多的那个shell。       cut …

    Linux笔记 2018-06-26
  • Linux基础和帮助

    多动手,勤思考

    2018-03-31
  • 第七周博客总结

    系统故障排错汇总

    Linux笔记 2018-05-13
  • liunx基础

    在shell中可执行的命令有两类: 执行外部命令hash 缓存表   hash 常见用法 :

    Linux笔记 2018-04-01
  • linux的基础命令

    基础命令

    2018-03-28