處理交換文件和分區
交換分區是系統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