磁盤管理(一)

分區 高級格式化

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指定塊大?。仁鞘莍bs也是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?,F在想從第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.www58058.com/96729

(1)
parrotparrot
上一篇 2018-04-21
下一篇 2018-04-22

相關推薦

  • 軟件包管理

    本章重點介紹rpm包管理器和rpm的使用

    Linux筆記 2018-04-19
  • Linux的學習之旅

    Linux的文件系統層級結構標準FHS image.png /etc=====和主機相關的系統配置文件 edit the configure /home===== 用戶家目錄 /usr======二層分層的目錄。默認是最大的。 /dev=====設備文件 /media======掛載點和可移動的設備, /mnt=====臨時掛載點 /var=======可變…

    Linux筆記 2018-04-01
  • 第三周,一些練習例題以及用戶與組管理命令

    一、練習 1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 ● 實現命令 who | cut -d ” ” -f1 | sort –u ● 命令分解 who:顯示已經登錄的用戶信息; |:管道,連接程序,用于實現將前一個命令的輸出直接定向后一個程序當作輸入數據流; cut:截取who命令顯示結…

    2018-05-26
  • MySQL之SQL語法介紹

    結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統;同時也是數據庫腳本文件的擴展名

    2018-06-07
  • 請使用命令行展開功能來完成以下練習

    (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
    (2)、創建/tmp/mylinux目錄下的:

    Linux筆記 2018-05-18
  • 認證基礎及DNS服務基礎

    認證基礎及DNS服務基礎

    Linux筆記 2018-04-27
欧美性久久久久