磁盤存儲和文件系統:
I/O Ports: I/O設備地址
一切皆文件:open(), read(), write(), close()
設備類型:
塊設備:block,存取單位“塊”,磁盤 分區 塊
字符設備:char,存取單位“字符”,鍵盤
設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信
設備號碼:
主設備號:major number, 標識設備類型
次設備號:minor number, 標識同一類型下的不同設備
硬盤接口類型 並行: IDE:133MB/s SCSI:640MB/s 串口: SATA:6Gbps SAS:6Gbps USB:480MB/s rpm: rotations per minute 每分鐘的轉速 機械硬盤和固態硬盤 機械硬盤(HDD):Hard Disk Drive,即是傳統普通硬盤,主要由:盤片,磁頭,盤片轉軸及控制電機,磁頭控制器,數據轉換器,接口,緩存等幾個部分組成。機械硬盤中所有的盤片都裝在一個旋轉軸上,每張盤片之間是平行的,在每個盤片的存儲面上有一個磁頭,磁頭與盤片之間的距離比頭發絲的直徑還小,所有的磁頭聯在一個磁頭控制器上,由磁頭控制器負責各個磁頭的運動。磁頭可沿盤片的半徑方向運動,加上盤片每分鐘幾千轉的高速旋轉,磁頭就可以定位在盤片的指定位置上進行數據的讀寫操作。數據通過磁頭由電磁流來改變極性方式被電磁流寫到磁盤上,也可以通過相反方式讀取。硬盤為精密設備,進入硬盤的空氣必須過濾 固態硬盤(SSD):Solid State Drive,用固態電子存儲芯片陣列而制成的硬盤,由控制單元和存儲單元(FLASH芯片、DRA)組成。固態硬盤在接口的規範和定義、功能及使用方法上與普通硬盤的完全相同,在產品外形和尺寸上也與普通硬盤一致 相較於HDD,SSD在防震抗摔、傳輸速率、功耗、重量、噪音上有明顯優勢,SSD傳輸速率性能是HDD的2倍相較於SSD,HDD在價格、容量、使用壽命上占有絕對優勢 硬盤有價,數據無價,目前SSD不能完全取代HHD 設備文件: 磁盤設備的設備文件命名:/dev/DEV_FILE SCSI, SATA, SAS,IDE,USB: /dev/sd 虛擬磁盤:/dev/vd 不同磁盤標識:a-z,aa,ab… /dev/sda, /dev/sdb, ... 同一設備上的不同分區:1,2, ... /dev/sda1, /dev/sda5 硬盤存儲術語 head:磁頭 track:磁道 cylinder: 柱面 sector: 扇區,512bytes CHS和LBA CHS (是比較老的技術最大空間8G) 采用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尋址方式 使用分區空間 設備識別 設備分區 創建文件系統 標記文件系統 在/etc/fstab文件中創建條目 掛載新的文件系統 如何使用磁盤: 1、分區 2、創建文件系統 簡稱:格式化 3、掛載:分配目錄名 磁盤分區 為什麽分區 優化I/O性能 實現磁盤空間配額限制 提高修復速度 隔離系統和程序 安裝多個OS 采用不同文件系統 分區 兩種分區方式:MBR,GPT (以現在的使用情況 MBR為主流) MBR: Master Boot Record,1982年,使用32位表示扇區數,分區不超過2T 如何分區:按柱面 0磁道0扇區:512bytes 446bytes: boot loader 64bytes:分區表 16bytes: 標識一個分區 2bytes: 55AA 標誌位 4個主分區;3主分區+1擴展(N個邏輯分區) 管理分區 列出塊設備 lsblk 創建分區使用: fdisk創建MBR分區 gdisk創建GPT分區 parted高級分區操作 partprobe-重新設置內存中的內核分區表版本 parted命令 用於創建分區表 parted的操作都是實時生效的,小心使用 用法:parted [選項]... [設備[命令[參數]...]...] parted /dev/sdb mklabel gpt|msdos 用於創建分區 parted /dev/sdbprint parted /dev/sdb mkpart primary 1 200 (默認M) mkpart:創建一個分區 primary:表示主分區 1 200:從1M開始,200M結束 parted /dev/sdbrm1 parted –l 列出分區信息 例如:用/dev/sdb創建一個分區為MBR的分區 parted /dev/sdb mklabel msdos msdos就是MBR的一個名稱 分區工具fdisk和gdisk gdisk /dev/sdb 類fdisk 的GPT分區工具 fdisk -l [-u] [device...] 查看分區 fdisk /dev/sdb 管理分區 fdisk:適用於MBR類型的分區,也能用於gpt分區但是,不建議使用 不穩定 子命令: p 分區列表 t 更改分區類型 n 創建新分區 d 刪除分區 v 校驗分區 u 轉換單位 w 保存並退出 q 不保存並退出 註意:創建完分區之後 partprobe用於進行同步可適用於centos7,centos6無法進行同步 在chentos7上在老的硬盤中創建一個新的分區,保存時會報一個錯誤: WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) 只需要用partprobe同步一個即可 只適用於centos7 在centos6 上創建分區時在一上去就是提示你: DOS-compatible mode is deprecated. It‘s strongly recommended to switch off the mode (command ‘c‘) and change display units to sectors (command ‘u‘) (DOS-compatible的模式兼容已經過時了,強烈推薦關閉模式) fdisk -c /dev/sda 加上c之後就可以了 在centos6上添加一個新的分區保存時也回報一個錯誤 註意:在添加分區時需執行: partx -a /dev/sda 執行完之後會報一個虛假錯誤 不用擔心 在centos6上刪除分區時須執行同步: partx -d --nr 6-8 /dev/sda 6-8:是所刪除的分區是第6、7、8的分區 只適用於centos6上刪除分區時使用進行同步 同步分區表 查看內核是否已經識別新的分區: cat /proc/partations centos6通知內核重新讀取硬盤分區表 新增分區用 partx-a /dev/DEVICE kpartx-a /dev/DEVICE -f: force 刪除分區用 partx-d --nrM-N /dev/DEVICE CentOS 5,7: 使用partprobe partprobe[/dev/DEVICE] 文件系統 文件系統是操作系統用於明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,簡稱文件系統 從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲並對存入的文件進行保護和檢索的系統。具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日誌,壓縮,加密等 支持的文件系統:/lib/modules/`uname –r`/kernel/fs 文件系統類型 inux文件系統:ext2(Extended file system), ext3, ext4, xfs(SGI), btrfs(Oracle), reiserfs, jfs(AIX), swap 光盤:iso9660 Windows:FAT32, exFAT,NTFS Unix: FFS(fast), UFS(unix), JFS2 網絡文件系統:NFS, CIFS 集群文件系統:GFS2, OCFS2(oracle) 分布式文件系統:fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre RAW:未經處理或者未經格式化產生的文件系統 文件系統分類 根據其是否支持"journal(日誌)"功能: 日誌型文件系統: ext3, ext4, xfs, ... 非日誌型文件系統: ext2, vfat 文件系統的組成部分: 內核中的模塊:ext4, xfs, vfat 用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat Linux的虛擬文件系統:VFS 查前支持的文件系統:cat /proc/filesystems 創建文件系統 mkfs命令: (1) mkfs.FS_TYPE/dev/DEVICE ext4 xfs btrfs vfat (2) mkfs-t FS_TYPE /dev/DEVICE -L ‘LABEL‘: 設定卷標 創建ext文件系統 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:關閉指定特性 文件系統標簽 指向設備的另一種方法 與設備無關 blkid:塊設備屬性信息查看 blkid[OPTION]... [DEVICE] -U UUID: 根據指定的UUID來查找對應的設備 -L LABEL:根據指定的LABEL來查找對應的設備 e2label:管理ext系列文件系統的LABEL e2label DEVICE [LABEL] findfs:查找分區 findfs[options] LABEL=<label> findfs[options] UUID=<uuid>
問題:在/etc/fstab文件中對應/data文件夾是哪個設備掛載上去的???
blkid -U grep /data /etc/fstab|sed -r "s/UUID=([^ ]*) .*/\1/"
或者
blkid -U 5d151697-f0b0-4139-9341-adc6950628a4 可直接復制/etc/fstab中掛載/data中的UUID
或:
blkid -U grep /data /etc/fstab|cut -d" " -f1|cut -d= -f2
或:
findfs grep /data /etc/fstab|cut -d" " -f1
tune2fs (只能看ext系列的文件,無法看xfs的文件 會報錯誤) tune2fs:重新設定ext系列文件系統可調整參數的值 -l:查看指定文件系統超級塊信息;super block -L ‘LABEL‘:修改卷標 -m #:修預留給管理員的空間百分比 -j: 將ext2升級為ext3 -O: 文件系統屬性啟用或禁用,–O ^has_journal -o: 調整文件系統的默認掛載選項,–o ^acl -U UUID: 修改UUID號 dumpe2fs: 塊分組管理,32768塊 -h:查看超級塊信息,不顯示分組信息
問題:如何將/dev/sdb2的UUID換個新的???
tune2fs -U uuidgen
/dev/sdb2
uuidgen:可生成隨機的UUID
文件系統檢測和修復 常發生於死機或者非正常關機之後 掛載為文件系統標記為“no clean” 註意:一定不要在掛載狀態下修復 fsck: File System Check fsck.FS_TYPE fsck-t FS_TYPE -p: 自動修復錯誤 -r: 交互式修復錯誤 FS_TYPE一定要與分區上已經文件類型相同 e2fsck:ext系列文件專用的檢測修復工具 -y:自動回答為yes -f:強制修復
註意:fsck、e2fsck兩個只適合ext系列的文件 fsck命名會自動檢測文件系統的類型
問題:將/dev/sdb1中的設備文件給破壞了如何修復呢???
dd if=/dev/zero of=/dev/sdb1 bs=1M count=30 註意/dev/sdb1有1G的大小只是破壞了30M而已 直接將它超級塊給破壞;
Couldn‘t find valid filesystem superblock.
[root@localhostcentos6 ~]# fsck /dev/sdb1 -y
或者
e2fsck -f /dev/sdb1 -y -f在磁盤上會一個一個的去檢查
tune2fs -l /dev/sdb1 |less 用於查看磁盤的狀態
掛載mount
掛載:將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為
卸載:為解除此關聯關系的過程
把設備關聯掛載點:mount Point
mount
卸載時:可使用設備,也可以使用掛載點
umount
掛載點下原有文件在掛載完成後會被臨時隱藏
掛載點目錄一般為空
用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‘
(4) 偽文件系統名稱:proc, sysfs, devtmpfs, configfs
dir:掛載點
事先存在;建議使用空目錄
進程正在使用中的設備無法被卸載
mount常用命令選項
-t vsftype:指定要掛載的設備上的文件系統類型
-r: readonly,只讀掛載
-w: read and write, 讀寫掛載
-n: 不更新/etc/mtab,mount不可見
centos6:mount -n /dev/sdb1 /data/sdb1/ 可隱藏掛載
centos7:無法使用
-a:自動掛載所有支持自動掛載的設備(定義在了/etc/fstab文件中,且掛載選項中有auto功能)
-L ‘LABEL‘: 以卷標指定掛載設備
-U ‘UUID‘: 以UUID指定要掛載的設備
-B, --bind: 綁定目錄到另一個目錄上 (用於實現目錄掛目錄)
mount /dev/sdb1 /data/sdb1/
mount /data/sdb1 /mnt/sdb1
將磁盤掛載到/data/sdb1後,再將/data/sdb1/掛載到/mnt/sdb1中
裏面中的文件可以共享 其實是一個軟連接
查看內核追蹤到的已掛載的所有設備
cat /proc/mounts(可用於查看所有掛載設備)
-o options:(掛載文件系統的選項),多個選項使用逗號分隔
async:異步模式
sync:同步模式,內存更改時,同時寫磁盤
atime/noatime:包含目錄和文件
diratime/nodiratime:目錄的訪問時間戳
auto/noauto:是否支持自動掛載,是否支持-a選項
exec/noexec:是否支持將文件系統上運行應用程序
問題如何將/data/sdb1/設置為noexec???
mount -o remount,noexec /data/sdb1/ 讓/data/sdb1/文件不能直接運行以防有病毒程序
mount -o exec,remount /data/sdb1/ 解除noexec
dev/nodev:是否支持在此文件系統上使用設備文件
mount -o remount,nodev /data/sdb1 讓此分區上的設備文件失效
mount -o dev,remount /data/sdb1/
suid/nosuid:是否支持suid和sgid權限
remount:重新掛載
ro:只讀
rw:讀寫
user/nouser:是否允許普通用戶掛載此設備,/etc/fstab使用
acl:啟用此文件系統上的acl功能
添加acl權限:
tune2fs -o acl /dev/sdb1 (添加完加之後 需要取消掛載重新掛載設備)
問題:當遇到用戶在訪問設備時,如何取消/dev/sdb1設備上的acl權限???
mount -o noacl,remount /dev/sdb1 /data/sdb1/
loop: 使用loop設備
defaults:相當於rw, suid, dev, exec, auto, nouser, async
卸載命令
查看掛載情況
findmntMOUNT_POINT|device
findmnt /data/sdb1/ 可用於判斷是否掛載設備
查看正在訪問指定文件系統的進程
lsofMOUNT_POINT
fuser -v MOUNT_POINT
終止所有在正訪問指定的文件系統的進程
fuser -km MOUNT_POINT
問題:有用戶正在訪問/data/sdb1時,管理員想取消掛載設備時怎麽做???
fuser -v /data/sdb1/ 查看正在訪問此文件的用戶
fuser -km /data/sdb1/ 強行踢出正在訪問的用戶
卸載
umountDEVICE
umountMOUNT_POINT
掛載點和/etc/fstab
配置文件系統體系
被mount、fsck和其它程序使用
系統重啟時保留文件系統體系
可以在設備欄使用文件系統卷標
使用mount -a 命令掛載/etc/fstab中的所有文件系統
mount /dev/sdb1 /data/sdb1 這個方式掛載機器如果重啟了保存不住的,如何想要保存住的話就要寫入/etc/fstab配置文件中即可:
vim /etc/fstab
UUID=1bcfeffa-ae95-4e04-ab34-a37b428a9071 /data/sdb2 ext4 defaults 0 3
寫完之後不用重啟可執行mount -a 即可
tune2
註意:如果要加別的權限時用戶正在訪問時改完之後可執行mount -o remount /data/sdb2/
問題:把/dev/sdb中硬盤格式化,將/home/的家目錄全部遷移進去
註意:在操作之前先做備份!!!!!!!!!!!!!
安全起見可用fdisk將裏面的分區全部清除即可也可以運行命令:
dd if=/dev/zero of=/dev/sdb bs=1 count=512 在實際運行中很危險不建議使用
partx -d --nr 1-2 /dev/sdb 同步 如不同的話內存中還有
mkfs.ext4 /dev/sdb1 -L /home
mkdir /mnt/home
mount /dev/sdb1 /mnt/home
cp -av /home/* /mnt/home
vim /etc/fstab
UUID=e62955d4-7fa9-4765-97a9-b47b81426e2e /home ext4 defaults 0 0
rm -rf /home/* 將本機原本的家目錄空間清除
mount -a 加載讀取新的home家文件
umount /mnt/home
rm -rf /mnt/home
su - user 切換用戶看是否成功
reboot 看是否正常開機
文件掛載配置文件
/etc/fstab每行定義一個要掛載的文件系統
要掛載的設備或偽文件系統
設備文件
LABEL:LABEL=""
UUID:UUID=""
偽文件系統名稱:proc, sysfs
掛載點
文件系統類型
掛載選項:defaults
轉儲頻率:0:不做備份1:每天轉儲2:每隔一天轉儲
自檢次序:0:不自檢
1:首先自檢;一般只有rootfs才用1
處理交換文件和分區
交換分區是系統RAM的補充
基本設置包括:
創建交換分區或者文件
使用mkswap寫入特殊簽名
在/etc/fstab文件中添加適當的條目
使用swapon -a 激活交換空間
掛載交換分區
啟用:swapon
swapon[OPTION]... [DEVICE]
-a:激活所有的交換分區
-p PRIORITY:指定優先級
/etc/fstab:pri=value
禁用:swapoff[OPTION]... [DEVICE
SWAP的優先級 用於查看用執行 swapon -s
可以指定swap分區0到32767的優先級,值越大優先級越高
如果用戶沒有指定,那麽核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一
先添加的swap的缺省優先級比較高,除非用戶自己指定一個優先級,而用戶指定的優先級(是正數)永遠高於核心缺省指定的優先級(是負數)
優化性能:分布存放,高性能磁盤存放
SWAP用於模擬內存使用的,一般內存不夠時會使用SWAP
問題:如遇到SWAP只有2G想要在創建2G該怎麽做呢?????
fdisk /dev/sdd 分一個2G的分區用於SWAP
/dev/sdd1 1 262 2104483+ 82 Linux swap / Solaris
mkswap /dev/sdd1 格式成SWAp分區
vim /etc/fstab 寫入到文件中用於下次開機自動掛載
UUID=6c8ebad5-0af8-498e-9bfa-698ba26bf6a9 swap swap defaults 0 0
swapon -a 配置文件生效
可以查看SWAP的優先級:
swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 2097148 0 -1
/dev/sdd1 partition 2104476 0 -2
那麽如何將sdd1的優先級高於sda5????
vim /etc/fstab
UUID=6c8ebad5-0af8-498e-9bfa-698ba26bf6a9 swap swap defaults,pri=10 0 0
pri=100:優先級10,數字自己定義 只要高於sda5 -1 即可
swapoff /dev/sdd1 需要先禁用
swapon -a 配置文件生效
swapon -s 查看優先級是否改變
移動介質
掛載意味著使外來的文件系統看起來如同是主目錄樹的一部分
訪問前、介質必須被掛載
摘除時,介質必須被卸載
按照默認設置,非根用戶只能掛載某些設備(光盤、DVD、軟盤、USB等等)
掛載點通常在/media 或/mnt下
使用光盤
在圖形環境下自動啟動掛載/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
掛載USB介質
查看USB設備是否識別
lsusb
被內核探測為SCSI設備
/dev/sdaX、/dev/sdbX、或類似的設備文件
在圖形環境中自動掛載
圖標在[計算機]窗口中創建
掛載在/run/media/<user>/<label>
手動掛載
mount /dev/sdb1 /mnt
常見工具
文件系統空間占用等信息的查看工具:
df[OPTION]... [FILE]...
-H 以1000為單位
-T 文件系統類型
-h: human-readable
-i:inodesinstead of blocks
-P: 以Posix兼容的格式輸出
查看某目錄總體空間占用狀態:
du [OPTION]... DIR
-h: human-readable
-s: summary --max-depth
工具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:
ddif=/dev/sdaof=/tmp/mbr.bakbs=512 count=1
破壞MBR中的bootloader:
ddif=/dev/zero of=/dev/sdabs=64 count=1 seek=446
有一個大與2K的二進制文件fileA。現在想從第64個字節位置開始讀取,需要讀取的大小是128Byts。又有fileB, 想把上面讀取到的128Bytes寫到第32個字節開始的位置,替換128Bytes,實現如下:
ddif=fileAof=fileBbs=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
ddif=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
ddif=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
ddif=/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錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數據起死回生,且這個過程是安全高效的
磁盤存儲和文件系統: