swap與dd命令使用詳解

處理交換文件和分區

    交換分區是系統RAM 的補充

基本設置包括:

    創建交換分區或者文件

    使用mkswap 寫入特殊簽名

    在/etc/fstab 文件中添加適當的條目

    使用swapon -a

掛載交換分區

啟用:swapon

swapon [OPTION]… [DEVICE]

-a :激活所有的交換分區;

-p PRIORITY :指定優先級

/etc/fstab:pri=value

禁用:swapoff [OPTION]… [DEVICE]

[root@station29 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop1    7:1    0   200M  0 loop
loop7    7:7    0   200M  0 loop
sr0     11:0    1   3.7G  0 rom  
sda      8:0    0   200G  0 disk
├─sda1   8:1    0   200M  0 part /boot
├─sda2   8:2    0    20G  0 part /data
├─sda3   8:3    0    10G  0 part /home
├─sda4   8:4    0     1K  0 part
├─sda5   8:5    0     2G  0 part [SWAP]
└─sda6   8:6    0 167.8G  0 part /
sdb      8:16   0    30G  0 disk
sdc      8:32   0    20G  0 disk
├─sdc1   8:33   0     1G  0 part
├─sdc2   8:34   0     2G  0 part
├─sdc3   8:35   0     3G  0 part
└─sdc4   8:36   0 109.8M  0 part
[root@station29 ~]# free
             total       used       free     shared    buffers     cached
Mem:       1906252     365240    1541012       1176      24060     126452
-/+ buffers/cache:     214728    1691524
Swap:      2097148          0    2097148
[root@station29 ~]# fdisk /dev/sdb (分區)
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xdd4e370a.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
 
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
 
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
 
Command (m for help): n
Command action
   e   extended (邏輯分區)
   p   primary partition (1-4)  (主分區)
p
Partition number (1-4): 1
First cylinder (1-3916, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-3916, default 3916): +2G
 
Command (m for help): p
 
Disk /dev/sdb: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 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: 0xdd4e370a
 
Device Boot      Start       End      Blocks        Id     System
/dev/sdb1        1         262     2104483+      83     Linux
 
Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel 編輯BSD磁盤標簽
   c   toggle the dos compatibility flag 切換DOS兼容性標志
   d   delete a partition   刪除分區
   l   list known partition types   列出已知分區類型
   m   print this menu  打印此菜單
   n   add a new partition  添加一個新分區
   o   create a new empty DOS partition table 創建一個新的空DOS分區表
   p   print the partition table    打印分區表
   q   quit without saving changes  退出不保存更改
   s   create a new empty Sun disklabel 創建一個新的標識
   t   change a partition's system id 更改分區的系統標識
   u   change display/entry units 更改顯示/輸入單位
   v   verify the partition table   驗證分區表
   w   write table to disk and exit 將表寫入磁盤并退出
   x   extra functionality (experts only)   額外的功能
 
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): l
 
 0  Empty 24  NEC DOS 81  Minix / old Lin bf  Solaris        
 1  FAT12   39  Plan 9 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root  3c  PartitionMagic  83  Linux         c4  DRDOS/sec (FAT-
 3  XENIX usr   40  Venix 80286 84  OS/2 hidden C:  c6 DRDOS/sec (FAT-
 4  FAT16 <32M   41  PPC PReP Boot   85  Linux extended  c7  Syrinx         
 5  Extended    42  SFS 86  NTFS volume set da  Non-FS data    
 6  FAT16   4d  QNX4.x  87  NTFS volume set db  CP/M / CTOS / .
 7  HPFS/NTFS       4e  QNX4.x 2nd part 88  Linux plaintext de  Dell Utility   
 8  AIX             4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         
 9  AIX bootable    50  OnTrack DM  93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32   52  CP/M            9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        
 e  W95 FAT16 (LBA)  54  OnTrackDM6      a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS    56  Golden Bow      a7  NeXTSTEP      f0  Linux/PA-RISC b
11  Hidden FAT12    5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      
12  Compaq diagnost 61  SpeedStor       a9  NetBSD          f4  SpeedStor      
14  Hidden FAT16 <3 63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  
16  Hidden FAT16    64  Novell Netware  af  HFS / HFS+      fb  VMware VMFS    
17  Hidden HPFS/NTF 65  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE
18  AST SmartSleep  70  DiskSecure Mult b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 75  PC/IX           bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 80  Old Minix       be  Solaris boot    ff  BBT            
1e  Hidden W95 FAT1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap / Solaris)
 
Command (m for help): p
 
Disk /dev/sdb: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 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: 0xdd4e370a
 
Device Boot      Start         End      Blocks       Id     System
/dev/sdb1          1         262     2104483+     82     Linux swap / Solaris
 
Command (m for help): w
The partition table has been altered!   分區表已更改
 
Calling ioctl() to re-read partition table.
Syncing disks.  同步磁盤

SWAP 的優先級

可以指定swap 分區0 32767 的優先級,值越大優先級越高

如果用戶沒有指定,那么核心會自動給swap 指定一個優先級,這個優先級從-1 開始,每加入一個新的沒有用戶指定優先級的swap ,會給這個優先級減一。

先添加的swap 的缺省優先級比較高,除非用戶自己指定一個優先級,而用戶指定的優先級( 是正數) 永遠高于核心缺省指定的優先級( 是負數)

       優化性能:分布存放,高性能磁盤存放

[root@station29 ~]# mkswap /dev/sdb1 -L swap2  (格式化文件系統)
Setting up swapspace version 1, size = 2104476 KiB
LABEL=swap2, UUID=0c53f5bd-a767-4c19-8962-260758d1c4f8
[root@station29 ~]# blkid
/dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"
/dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4"
/dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4"
/dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4"
/dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap"
/dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4"
/dev/sdc2: UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdc4: UUID="5f4df3af-f8a8-42cb-a391-79974b5c1aa2" TYPE="ext4"
/dev/loop1: SEC_TYPE="msdos" UUID="5926-C9E7" TYPE="vfat"
/dev/loop7: SEC_TYPE="msdos" UUID="5926-C9E7" TYPE="vfat"
/dev/sdb1: LABEL="swap2" UUID="0c53f5bd-a767-4c19-8962-260758d1c4f8" TYPE="swap"
 
[root@station29 ~]# vim /etc/fstab
UUID=53e082c2-f1fc-4b96-aa31-d9071dc6355c /home                   ext4    defaults        1 2
UUID=7a8216c5-6781-4494-b2da-fda672f117ad swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults          0 0
proc                    /proc                   proc    defaults        0 0
UUID="0c53f5bd-a767-4c19-8962-260758d1c4f8" swap swap   defaults        0 0  (加優先級)
 
[root@station29 ~]# swapon -a   (激活交換空間)
[root@station29 ~]# free
             total       used       free     shared    buffers     cached
Mem:       1906252     368604    1537648       1180      24888     126628
-/+ buffers/cache:     217088    1689164
Swap:      4201624          0    4201624
[root@station29 ~]# swapon -s           (查看)
Filename    Type    Size    Used    Priority
/dev/sda5                               partition   2097148 0   -1  (優先級高)
 
/dev/sdb1                               partition   2104476 0   -2
 
[root@station29 ~]# vim /etc/fstab                                                                                                       
輸入   :r!blkid /dev/sda1
proc                    /proc                   proc    defaults        0 0
UUID="0c53f5bd-a767-4c19-8962-260758d1c4f8" swap swap   defaults,pri=100        0 0
 
[root@station29 ~]# vim /etc/fstab
[root@station29 ~]# swapon -s
Filename    Type    Size    Used    Priority
/dev/sda5                               partition   2097148 0   -1
/dev/sdb1                               partition   2104476 0   -2
[root@station29 ~]# swapoff /dev/sdb1 (禁用/dev/sdb1)
[root@station29 ~]# swapon -a
[root@station29 ~]# swapon -s
Filename    Type    Size    Used    Priority
/dev/sda5                               partition   2097148 0   -1
/dev/sdb1                               partition 2104476 0 100

 禁用swap

[root@station29 ~]# swapoff /dev/sdb1
[root@station29 ~]# free
             total       used       free     shared    buffers     cached
Mem:       1906252     367332    1538920       1180      25188     126624
-/+ buffers/cache:     215520    1690732
Swap:      2097148          0    2097148
 
[root@station29 ~]# vim /etc/fstab
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
 
[root@station29 ~]# fdisk /dev/sdb
 
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
 
Command (m for help): d
Selected partition 1
 
Command (m for help): w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
Syncing disks.
 
[root@station29 ~]# free
             total       used       free     shared    buffers     cached
Mem:       1906252     368000    1538252       1176      25624     127168
-/+ buffers/cache:     215208    1691044
Swap:      2097148          0    2097148
 
root@station29 ~]# blkid
/dev/sda6: UUID="1fd1710f-ff1a-4eba-94f8-c57ecc05d6c6" TYPE="ext4"
/dev/sda1: UUID="34e5ffbe-c2b3-4745-89bc-1811245ae758" TYPE="ext4"
/dev/sda2: UUID="abf30893-850f-4a50-9a0c-e5e153873eb4" TYPE="ext4"
/dev/sda3: UUID="53e082c2-f1fc-4b96-aa31-d9071dc6355c" TYPE="ext4"
/dev/sda5: UUID="7a8216c5-6781-4494-b2da-fda672f117ad" TYPE="swap"
/dev/sdc1: UUID="868e4945-13c6-41c9-8b4b-62e6180e3838" TYPE="ext4"
/dev/sdc2: UUID="79690db4-ae07-4c5d-8a8c-667c60b58e49" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdc4: UUID="5f4df3af-f8a8-42cb-a391-79974b5c1aa2" TYPE="ext4"
/dev/loop1: SEC_TYPE="msdos" UUID="5926-C9E7" TYPE="vfat"
/dev/loop7: SEC_TYPE="msdos" UUID="5926-C9E7" TYPE="vfat"

沒有內存情況下添加文件swap

[root@station29 ~]# dd if=/dev/zero of=/swapfile bs=1M count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB) copied, 58.5699 s, 36.7 MB/s
[root@station29 ~]# mkswap /swapfile
mkswap: /swapfile: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=3af09d92-ec2d-4052-b000-6057b81a6ff8
[root@station29 ~]# blkid /swapfile
/swapfile: UUID="3af09d92-ec2d-4052-b000-6057b81a6ff8" TYPE="swap"
[root@station29 ~]# vim /etc/fstab
proc                    /proc                   proc    defaults        0 0
/swapfile               swap                    swap    defaults        0 0
[root@station29 ~]# swapon -a
[root@station29 ~]# swapon -s   查看
Filename    Type    Size    Used    Priority
/dev/sda5                               partition   2097148 0   -1
/swapfile                               file 2097148 0 -2

刪除文件swap

[root@station29 ~]# swapoff /swapfile
[root@station29 ~]# swapon -s
Filename    Type    Size    Used    Priority
/dev/sda5                               partition   2097148 0   -1
[root@station29 ~]# vim /etc/fstab
proc                    /proc                   proc    defaults        0 0
 
[root@station29 ~]# rm -f /swapfile

移動介質

掛載意味著使外來的文件系統看起來如同是主目錄樹的一部分

訪問前、介質必須被掛載

摘除時,介質必須被卸載

按照默認設置,非根用戶只能掛載某些設備(光盤、DVD 、軟盤、USB 等等)

掛載點通常在/media  /mnt

 

掛載USB 介質

查看USB 設備是否識別

lsusb

被內核探測為SCSI 設備

/dev/sdaX 、/dev/sdbX 、或類似的設備文件

在圖形環境中自動掛載

圖標在[ 計算機] 窗口中創建

掛載在/run/media/<user>/<label>

手動掛載

mount /dev/sdb1 /mnt

插入U

[root@station29 ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sdc      8:32   0    20G  0 disk
├─sdc1   8:33   0     1G  0 part
├─sdc2   8:34   0     2G  0 part
├─sdc3   8:35   0     3G  0 part
└─sdc4   8:36   0 109.8M  0 part
sdd      8:48   1  28.9G  0 disk
└─sdd1   8:49   1  28.9G  0 part
 
[root@station29 ~]# tail /var/log/messages  或從日志中查看
Apr 25 11:53:28 station29 kernel: USB Mass Storage support registered.
Apr 25 11:53:29 station29 kernel: scsi 3:0:0:0: Direct-Access     Kingston DataTraveler 3.0 PMAP PQ: 0 ANSI: 6
Apr 25 11:53:29 station29 kernel: sd 3:0:0:0: Attached scsi generic sg4 type 0
Apr 25 11:53:29 station29 kernel: sd 3:0:0:0: [sdd] 60632064 512-byte logical blocks: (31.0 GB/28.9 GiB)
Apr 25 11:53:29 station29 kernel: sd 3:0:0:0: [sdd] Write Protect is off
[root@station29 ~]# lsusb 查看USB設備是否識別
Bus 001 Device 002: ID 0951:1666 Kingston Technology DataTraveler G4
 
[root@station29 mnt]# mount /dev/sdd1 /mnt/file
[root@station29 mnt]# cd /mnt/file
[root@station29 file]# ls
01??????.pdf  3.22  3.24  3.27  summary  System Volume Information  ??vmware?3?????.pdf
[root@station29 file]# cd
[root@station29 ~]# sync       (強制寫磁盤)
[root@station29 ~]# sync
[root@station29 ~]# sync
[root@station29 ~]# umount /mnt/file (取消掛載)

使用光盤

在圖形環境下自動啟動掛載/run/media/<user>/<label>

否則就必須被手工掛載

mount /dev/cdrom /mnt/

eject 命令卸載或彈出磁盤

創建ISO 文件

cp /dev/cdrom /root/centos7.iso

mkisofs -r -o /root/etc.iso /etc

刻錄光盤

wodim v eject centos.iso

cdrecord  也可用作刻錄光盤


生產iso鏡像

[root@station29 ~]# cp /dev/sr0 /root/centos6.iso

可將鏡像傳至U

[root@station29 ~]# dd if=centos6.iso of=/dev/sdd

機房服務器過多,且有一臺硬盤出現問題時,可用eject彈出光驅,以便查找故障機器

[root@station29 ~]# eject  /dev/  sr0          (彈出光驅)
[root@station29 ~]# eject  -t  /dev/  sr0   (彈入光驅)

常見工具

內存空間使用狀態:

free [OPTION]

[root@station29 ~]# free 以K為單位
             total       used       free     shared    buffers     cached
Mem:       1906252     371860    1534392       1172      32788     125292
-/+ buffers/cache:     213780    1692472
Swap:      2097148          0    2097148

-m:  MB 為單位

[root@station29 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:       1861        362        1499       1        31        122
-/+ buffers/cache:         208        1653
Swap:       2047         0        2047

-g:  GB 為單位

[root@station29 ~]# free -g
             total       used       free     shared    buffers     cached
Mem:          1         0          1        0          0          0
-/+ buffers/cache:          0          1
Swap:          1        0          1

文件系統空間占用等信息的查看工具:

df [OPTION]… [FILE]…

-H  1000 為單位 10次方

[root@station29 ~]# df -H
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6       178G  4.2G  165G   3% /
tmpfs           976M   74k  976M   1% /dev/shm
/dev/sda1       199M   37M  153M  20% /boot
/dev/sda2        22G   47M   20G   1% /data
/dev/sda3        11G   42M  9.9G   1% /home

-T  文件系統類型

[root@station29 ~]# df -T
Filesystem     Type  1K-blocks    Used Available Use% Mounted on
/dev/sda6      ext4  173059896 4064916 160197336   3% /
tmpfs          tmpfs    953124      72    953052   1% /dev/shm
/dev/sda1      ext4     194241   35220    148781  20% /boot
/dev/sda2      ext4   20511356   45032  19417748   1% /data
/dev/sda3      ext4   10190136   40540   9625308   1% /home

-h: human-readable 人類可讀的方式 2次方

[root@station29 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda6       166G  3.9G  153G   3% /
tmpfs           931M   72K  931M   1% /dev/shm
/dev/sda1       190M   35M  146M  20% /boot
/dev/sda2        20G   44M   19G   1% /data
/dev/sda3       9.8G   40M  9.2G   1% /home

-i inodes instead of blocks

[root@station29 ~]# df -i 查看inode節點使用
Filesystem       Inodes  IUsed    IFree IUse% Mounted on
/dev/sda6      11001856 103315 10898541    1% /
tmpfs            238281      3   238278    1% /dev/shm
/dev/sda1         51200     39    51161    1% /boot
/dev/sda2       1310720     21  1310699    1% /data
/dev/sda3        655360   1063   654297    1% /home
[root@station29 ~]# df -ih
Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/sda6         11M  101K   11M    1% /
tmpfs            233K     3  233K    1% /dev/shm
/dev/sda1         50K    39   50K    1% /boot
/dev/sda2        1.3M    21  1.3M    1% /data
/dev/sda3        640K  1.1K  639K    1% /home

-P:  Posix 兼容的格式輸出

[root@station29 ~]# df -P
Filesystem     1024-blocks    Used Available Capacity Mounted on
/dev/sda6        173059896 4064916 160197336       3% /
tmpfs               953124      72    953052       1% /dev/shm
/dev/sda1           194241   35220    148781      20% /boot
/dev/sda2         20511356   45032  19417748       1% /data
/dev/sda3         10190136   40540   9625308       1% /home

查看某目錄總體空間占用狀態:每個子文件夾的大小

du [OPTION]… DIR

-h: human-readable

-s: summary 匯總

[root@station29 ~]# du -sh 統計整個目錄大小
401M    .

統計根下每個文件夾的大小

[root@station29 ~]# du  -sh  /*
11M /apps
7.7M    /bin
33M /boot
60K /data
336K    /dev
41M /etc
18M /home

工具dd

dd 命令:convert and copy a file 轉換和復制文件

用法:

dd if=/PATH/FROM/SRC of=/PATH/TO/DEST

[root@station29 ~]# dd if=/etc/issue of=f1
0+1 records in
0+1 records out
47 bytes (47 B) copied, 0.000178632 s, 263 kB/s
[root@station29 ~]# cat f1
CentOS release 6.8 (Final)
Kernel \r on an \m

bs=# block size,  復制單元大小

count=# :復制多少個bs

of=file 寫到所命名的文件而不是到標準輸出

if=file 從所命名文件讀取而不是從標準輸入

[root@station29 ~]# cat a1
abcdef
[root@station29 ~]# cat a2
123456789
[root@station29 ~]# dd if=a1 of=a2  a1中的內容將把a2內容全覆蓋
0+1 records in
0+1 records out
7 bytes (7 B) copied, 0.000252869 s, 27.7 kB/s
[root@station29 ~]# cat a2
abcdef

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 個記錄

[root@station29 ~]# cat a1
abcdef
[root@station29 ~]# cat a2
123456789
[root@station29 ~]# dd if=a1 of=a2 bs=1 count=2 skip=3 seek=4
2+0 records in
2+0 records out
2 bytes (2 B) copied, 0.000143496 s, 13.9 kB/s
[root@station29 ~]# cat a2
1234de

conv=conversion[,conversion…]  用指定的參數轉換文件

轉換參數:

ascii 換 轉換 EBCDIC 為 為 ASCII

ebcdic 換 轉換 ASCII 為 為 EBCDIC

block  轉換一行數據為長度為 cbs  的記錄,不足部分用空格填充。

unblock 替代cbs 長度的每一行尾的空格為新行

lcase  把大寫字符轉換為小寫字符

ucase  把小寫字符轉換為大寫字符

[root@station29 ~]# cat a1
abcdef
[root@station29 ~]# cat a2
1234de789
[root@station29 ~]# dd if=a1 of=a2 conv=ucase
0+1 records in
0+1 records out
7 bytes (7 B) copied, 0.00020576 s, 34.0 kB/s
[root@station29 ~]# cat a2
ABCDEF

nocreat  不創建輸出文件

noerror  出錯時不停止

notrunc  不截短輸出文件

[root@station29 ~]# cat a1
abcdef
[root@station29 ~]# cat a2
123456789
[root@station29 ~]# dd if=a1 of=a2 bs=1 count=2 skip=3 seek=4 conv=notrunc
2+0 records in
2+0 records out
2 bytes (2 B) copied, 0.000428027 s, 4.7 kB/s
[root@station29 ~]# cat a1
abcdef
[root@station29 ~]# cat a2
1234de789

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=1seek=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

 

測試硬盤讀寫速度

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.rookie,如若轉載,請注明出處:http://www.www58058.com/74501

(0)
Linux.rookieLinux.rookie
上一篇 2017-04-30
下一篇 2017-04-30

相關推薦

  • 那些年我們一起追過的緩存寫法(三)

    原文出處: 蘑菇先生    上次我們說了多級緩存,本章詳細介紹下內存緩存該如何設計。 一:分析設計 假設有個項目有一定并發量,要用到多級緩存,如下: 在實際設計一個內存緩存前,我們需要考慮的問題: 1:內存與Redis的數據置換,盡可能在內存中提高數據命中率,減少下一級的壓力。 2:內存容量的限制,需要控制緩存數量。 3:熱點數…

    Linux干貨 2015-03-04
  • linux權限管理

          今天來講講linux里面權限的問題,在linux系統中,有這么幾類權限,r,w,x,s,t這么幾類權限,系統中為什么要有權限這個東西呢,linux一切皆文件,有些文件不想讓某些人看到,那么這個時候就需要設置文件的訪問的權限了,文件的擁有者一般都是有權力修改刪除文件的,但擁有者以外的人未必就能刪除修…

    Linux干貨 2016-08-04
  • N25 第五周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; 3、打出netstat -tan命令執行結果中以‘LISTEN’,后或跟空白字符結尾的行; 4、添加用戶bash, testbash, basher, nol…

    Linux干貨 2017-01-08
  • Shell腳本編程—函數

    函數:     把一段獨立功能的代碼當作一個整體,并命名一個名字;命名的代碼段,此即為函數     由若干條shell命令組成的語句塊,實現代碼重用和模式化編程 函數的作用:     在某些場景下,我們可以將獨立功能的一段代碼定義為一個函數…

    Linux干貨 2016-08-24
  • 第一篇博客

    我的第一篇博客以及接下來的每一篇都要獻給linux運維了。第一次接觸linux是在大三的時候,當時并沒有想到以后還會和linux邂逅并以此謀生。 首先就從最基礎的linux分區與掛載點開始了解介紹,我們熟悉的Windows系統下的分區都分配有盤符,像c盤,d盤之類的,用來存放各種軟件和文件。而linux也有自己的分區,并將分區掛載到不同的掛載點上,掛載是指將…

    2017-07-16
  • 不忘初心,砥礪前行!

    這是本人第一次書寫博客,難免有些小心翼翼,手足無措,但每個人都有這樣的經歷,轉念一想也就釋懷了。時光飛速,我們已不再年輕,從大學畢業的那天起,我們就再也不是小孩子了。 7月的天氣總是那么折磨人,高溫讓我們步履維艱,在7月只想找一片月淡風輕的樂土,度過一個難熬的夏天,或找一間空調房,調大音量,享受午后時光。但這樣的日卻離我們很遠,這個夏天我們背起行囊,遠離故土…

    2017-07-11
欧美性久久久久