echo“- – -”>/sys/class/scsi_host/host2/scan掃描新裝的硬盤,不需要重啟
磁盤管理三大步驟:分區,管理,掛載
設備文件創建mknob cdrom /mnt/cdrom
并行接口針多,但是傳的速度過快,會對數據造成干擾
vLinux的數據一般都存儲在分區空間里
學習linux的磁盤管理就必須:1. 設備識別 ;2.設備分區 ;3.創建文件系統 ;
4.標記文件系統 ;5.在/etc/fstab 文件中創建條目 ;6.掛載新的文件系統
一、磁盤結構與分區
柱面cylinder(磁道)、255磁頭head、512Bite*63扇區secotr
SCSI、SATA、SAS、USB都顯示/dev/sd
兩種分區方式:MBR ,GPT
v MBR: Master Boot Record放在磁盤的第一個扇區里(最外圈)0扇區 ,1982年,
使用32位表示扇區數,分區不超過2T
v 如何分區:按柱面 0 磁道0 扇區:512bytes
446bytes: boot loader 64bytes:分區表以16bytes標識一個分區 2bytes: 55AA結束標志,說明前面是有用的。
vMBR分為: 4 個主分區;3 主分區+1 擴展(N個邏輯分區 )
v GPT:GUID (Globals Unique Identifiers)
partition table支持128個分區,使用64 位,支持8Z(512Byte/block )64Z ( 4096Byte/block) )
v 使用128 位UUID 區 表示磁盤和分區 GPT 分區表自動備份在頭和尾兩份,并有CRC 校驗位
v UEFI ( 統一擴展固件接口) 硬件支持GPT,使操作系統啟動
分區:主分區、擴展分區、邏輯分區,基于MBR來分,GPT上只有主分區
主分區:一個硬盤上最多四個,操作系統的啟動文件,激活分區只有一個,計算機啟動時,會找激活分區的主分區,在啟動操作系統),不能在細分為小區,用/dev/sda1-4,來表示的,包括擴展分區在內
擴展分區:在一個硬盤上最多只有一個,不能直接存數據 /dev/sda1-4
邏輯分區:邏輯分區在擴展分區內,存儲數據,只能/dev/sda5- n,從第5分區開始
分區的作用:v1.優化I/O性能,建議把日志單獨劃分一個分區
2. 實現磁盤空間配額限制 ; 3.提高修復速度 ; 4.隔離系統和程序 ; 5.安裝多個OS ;6.采用不同的文件系統
二、管理分區
列出塊設備:lsblk 選項:-l:塊設備列表(sda,以及掛載信息) –V:查看塊設備的版本信息
v 創建分區使用:
fdisk 創建MBR 分區 (dos)fdisk –l /dev/sda -u=cylinders; -u=secotr…
gdisk 創建GPT 分區
parted 高級分區操作(創建、復制、調整大小等等) :創建分區、改變類型v
分區工具fdisk和gdisk
fdisk:創建MBR分區,一般對硬盤分區,不對分區再次分區 ;gfisk /dev/sdb創建GPT 分區工具
fdisk -l [-u] [device…] /dev/sda 查看所有磁盤分區信息
2.1 fdisk /dev/sda
p 分區列表 ; t 更改分區類型 ; n 創建新分區
d 刪除分區 ; w 保存并退出 ; q 不保存并退出
設備的名稱可能隨著環境變化而發生改變,把邏輯分區5刪除之后,邏輯分區6就會變成5
(因而在配置文件里最好不用分區的設備名稱)
fdisk -l /dev/sdX 查看物理硬盤的分區表
注意:老的硬盤(有數據)新加分區存盤退出的時候很有可能會出現不同步的情況;
查看內核是否已經識別新的分區:
cat /proc/partitions、lsblk、ls /dev/sda*’:查看內存中的分區表,可能與磁盤中的分區表不同步,
partprobe 重新設置內存中的內核分區表版本
2.2 通知內核重新讀取硬盤分區表
partprobe /dev/sda,可以同步分區表(不管增加、刪除),適用于CentOS5,7
partx –a /dev/sda :增加分區的同步方法,適用于CentOS6
partx –d – -nr 6-8 /dev/sda:刪除分區6-8的同步方法,適用于CentOS6
2.3 parted分區工具
parted [ 選項]… 設備 命令 [ 參數]…] 即時生效
parted /dev/sdb mklabel gpt|msdos 改變分區表結構gpt或者mbr
parted /dev/sdb print 打印分區 ;parted /dev/sdb mkpart primary 1 200 (默認M)
parted /dev/sdb rm 1 刪除分區
parted –l :查看所有磁盤狀態 (parted)p:查看格式化是否成功 ,列出磁盤分區
注意:parted 的操作都是實時生效的,小心使用
三、file system 文件系統類型
磁盤分區之后選擇不同的文件系統
文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日志,壓縮,加密等。
ntfs(支持4G以上的文件,可以設置權限) ,fat(32G),ext2,3,4
RAW:未經處理或者未經格式化產生的文件系統(沒有文件系統不方便管理,但是不影響性能)
如有一些數據庫,直接通過二進制查看,剛分完取就相當于RAW
3.1 Linux 文件系統
ext2(Extended file system), ext3,ext4, (CentOS6) ;光盤:iso9660 可以用df –T 查看
xfs(CentOS7) (SGI ), btrfs (Oracle ), reiserfs, jfs(AIX ), swap(用來模擬內存使用)
Windows文件系統 :fat32, ntfs ;v Unix: FFS (fast ), UFS (unix ), JFS2
v 網絡文件系統:NFS, CIFS
v 集群文件系統:GFS2, OCFS2 (oracle)服務器和存儲都有群集,容錯率增加
v 分布式文件系統:ceph, moosefs, mogilefs, glusterfs,Lustre 就近訪問,速度快
對系統文件操作時,系統會對這次的操作做一個記錄,修改硬盤的文件,先要把文件讀入到內存中,然后在內存中修改,最后傳遞到硬盤文件中。但是有日志的文件系統是修改的文件記錄在硬盤文件帶有的日志中,最后在系統不忙的時候,日志的文件就會寫入到硬盤文件中了。避免修改的過程中突發實況(斷電)會毀壞數據,因而寫日志能夠保證系統的穩定性(要么修改前,要么修改后)實時修改文件(與內存中的文件同時修改)
v 根據其是否支持"journal" 功能:
日志型文件系統: ext3, ext4, xfs, … ; 非日志型文件系統: ext2, vfat
v 文件系統的組成部分:
內核中的驅動程序模塊:ext4, xfs, vfat lsmod module(模塊):列舉模塊
用戶空間的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
v Linux 的虛擬文件系統:VFS:Virutal file system,用戶打交道的是虛擬文件系統,文件系統不同,訪問方法也就不同,VFS屏蔽文件系統的區別,就可以按照統一方法訪問,操作的命令也就是一樣的。(代理程序)
v 查前支持的文件系統:cat /proc/filesystems
blkid:查看分區是否有文件系統,列出的分區都是有文件系統的分區
3.2 創建文件系統mkfs
文件系統的格式化:mkfs (創建文件系統的過程) ,格式化之前必須得先取消掛載。
為了表示是使用UUID,為了保證UUID的唯一性,規范定義了包括網卡MAC地址、時間戳、名字空間(Namespace)、隨機或偽隨機數、時序等元素,以及從這些元素生成UUID的算法。
3.2.1 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:關閉指定特性
3.2.2 tune2fs 重新設定ext 系列文件系統
文件系統標簽L: 指向設備的另一種方法 ; 與設備無關
vv e2label :管理ext 系列文件系統的LABEL # e2label DEVICE [LABEL]
tune2fs :重新設定ext 系列文件系統可調整參數的值,格式化之后指定塊大小 (注意:塊大小創建后不可更改)
-l :查看指定文件系統超級塊信息;super block 文件系統的元數據就是存儲在超級塊中
-L 'LABEL' :修改卷標 ; -m # :修預留給管理員的空間百分比 ;-j: 將ext2 升級為ext3
– O: 文件系統屬性啟用或禁用, –O ^has_journal 禁用日志功能
-o: 調整文件系統的默認掛載選項,–o ^acl
findfs :查找分區
findfs [options] LABEL=<label> ; findfs [options] UUID=<uuid>
-U UUID: 修改UUID號 uuidgen生成UUID
v dumpe2fs查看超級塊分組: -h :查看超級塊信息,不顯示分組信息 =tune2fs –l
v 超級塊:存儲文件系統的大小、有多少是空的和已經填滿的占多少,以及它們各自的總數和其他諸如此類的信息;要使用一個分區來進行數據訪問,那么第一個要訪問的是超級塊,如果超級塊壞了,那磁盤就壞了
超級塊占用第1號物理塊,是文件系統的控制塊,超級塊包括:文件系統的大小、空閑塊的數目、空閑塊的索引空閑i節點數目、空閑i節點索引表、封鎖標記等。超級塊是系統為文件分配存儲空間、回收存儲空間得依據。
所以為了防止超級塊數據被破壞,一般在塊組的1,3,5,7,9存儲備份。主要的在組0中
3.2.3 blkid 塊設備屬性信息查看
blkid [OPTION]… [DEVICE]
-U UUID: 根據指定的UUID 來查找對應的設備 ; -L LABEL :根據指定的LABEL 來查找對應的設備
3.3 fsck文件系統的檢測及修復
常發生于死機或者非正常關機之后
v 掛載為文件系統標記 為“no clean” ”
注意:因進程意外終止或系統崩潰等原因導致操作非正常終止時,可能會造成文件損壞;此時,應該檢測并修復文 件系統;建議,離線進行(非掛載狀態,無人操作);
v fsck: File System Check 只能修復文件系統的結構,不能修復上面的數據
fsck.FS_TYPE ; fsck -t FS_TYPE FS_TYPE 一定要與分區上已經文件類型相同
-a: 自動修復錯誤 ; -r: 交互式修復錯誤
v e2fsck :ext 系列文件專用的檢測修復工具
-y :自動回答為yes ; -f :強制修復;每個扇區的一塊塊尋找壞的扇區進行修復
四、掛載mount
v 在linux操作系統中,掛載是一個非常重要的功能,使用非常頻繁。它指將一個設備(通常是存儲設備)掛接到一個已存在的目錄上。(這個目錄可以不為空,但掛載后這個目錄下以前的內容將不可用。)需要理解的是,linux操作系統將所有的設備都看作文件,它將整個計算機的資源都整合成一個大的文件目錄。
我們要訪問存儲設備中的文件,必須將文件所在的分區掛載到一個已存在的目錄上,然后通過訪問這個目錄來訪問存儲設備。
掛載:將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為。 卸載:為解除此關聯關系的過程。
v 把設備關聯掛載mount點:mount Point ; 卸載umount:可使用設備,也可以使用掛載點
v 掛載點下原有文件在掛載完成后會被臨時隱藏 ; 掛載點目錄一般為空
4.1用mount命令掛載文件系統
掛載方法:mount DEVICE設備名 MOUNT_POINT掛載點
v mount :通過查看/etc/mtab 文件顯示當前已掛載的所有設備
v mount [-fnrsvw] [-t vfstype] [-o options] device dir
device :指明要掛載的設備;df:顯示掛載的設備以及分區使用情況
(1) 設備文件:例如/dev/sda5 (2) 卷標:-L 'LABEL', 如 例如 -L 'MYDATA'
(3) UUID, -U 'UUID'如 :例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4) 偽文件系統名稱:proc, sysfs, devtmpfs, configfs
dir :掛載點,事先存在;建議使用空目錄 ,進程正在使用中的設備無法被卸載(取消掛載)
4.2 mount常用命令選項
v -t vsftype :指定要掛載的設備上的文件系統類型
-r: readonly ,只讀掛載 ; -w: read and write, 讀寫掛載; -n: 不更新/etc/mtab ,相當于#mount
v -a :自動掛載所有支持自動掛載的設備( 定義在了/etc/fstab文件中,且掛載選項中有auto 功能)
v -L 'LABEL': 以卷標指定掛載設備 ; v -U 'UUID': 以UUID 指定要掛載的設備
v -B、–bind: 綁定目錄到另一個目錄上,文件目錄掛載,與硬鏈接有區別,鏈接數不會增加。
v -o options :( 掛載文件系統的選項) ,多個選項使用逗號分隔
async :異步模式 sync :同步模式, 內存更改時,同時寫磁盤
同步模式把硬盤的文件先寫到內存中,預防突發情況,效率較低,但是穩定。
異步模式在系統不太忙的時候寫到磁盤中,默認為異步模式。
atime/noatime :包含目錄和文件 diratime/nodiratime :目錄的訪問時間戳
auto/noauto :是否支持自動掛載, 是否支持-a 選項
exec/noexec :是否支持將文件系統上運行應用程序 ,避免外來設備掛載造成隱患
dev/nodev :是否支持在此文件系統上使用設備文件 ,被掛載的分區中設備文件被禁用掛載
suid/nosuid :是否支持suid 和sgid 權限 ,不讓有suid的執行文件讓普通用戶使用。
查看內核追蹤到的已掛載的所有設備:cat /proc/mounts(內存中)mount 與 /etc/mtab同步
4.3 remount重新掛載
重新掛載 mount –o remount,acl /dev/xxx /mnt/xxx ,在修改了/etc/fstab文件下使用重新掛載
ro :只讀 ; rw: 讀寫
user/nouser :是否允許普通用戶掛載此設備,默認管理員才能掛載
acl :啟用此文件系統上的acl 功能 userquota:使用者限額
v Defaults(默認):相當于rw, nosuid, dev, exec, auto, nouser, async
4.4 卸載命令umount
卸載: # umount DEVICE 、 # umount MOUNT_POINT
查看掛載情況: #findmnt MOUNT_POINT
查看正在訪問指定文件系統的進程: #lsof MOUNT_POINT 、 #fuser -v MOUNT_POINT
終止所有在正訪問指定的文件系統的進程: # fuser -km MOUNT_POINT
被mount 、fsck 和其它程序使用
v 系統重啟時保留文件系統體系 ;可以在設備欄使用文件系統卷標
v 使用mount -a 命令掛載/etc/fstab配置文件系統體系,只能是新添加的掛載,不是修改掛載
4.5 /etc/fstab文件掛載配置文件
設定除根文件系統以外的其它文件系統能夠開機時自動掛載:/etc/fstab文件
mount:查看被掛載的設備和文件目錄;df:查看文件系統的利用率,也能顯示掛載的文件
proc/mount :查看掛載設備及其它的屬性(最全面) /etc/mtab:查看掛載設備
/etc/fstab 每行定義一個要掛載的文件系統; 關于文件系統的靜態信息
? 1.要掛載的設備或偽文件系統 2.掛載點 3.文件系統類型
? 4. 掛載選項 5. 轉儲頻率 6.自檢次序
v 要掛載的設備或偽文件系統:
設備文件、LABEL(LABEL="") 、UUID(UUID="") 、偽文件系統名稱(proc,sysfs)
v 掛載選項: defaults
v 轉儲頻率: 0 :不做備份 ; 1 :每天轉儲 ; 2 :每隔一天轉儲
v 自檢次序: 0 :不自檢 ; 1 :首先自檢;一般只有rootfs 才用1
當配置文件修改好之后,用mount -o remount /mnt/XXX,來讓掛載生效
小問題:如果fstab中的uuid出錯了,系統就啟動不起來了,掛載文件會出現錯誤,根目錄/變成只讀的,必須要給予根目錄執行權限mount -o remount ,rw / 才能vim /etc/fstab,把掛載錯誤修改過來。
總結:分區 fdisk ;創建文件系統mkfs (增加或刪除的時候要注意同步partx);掛載或重新掛載mount,掛載過后,要想開機重啟之后保留掛載的文件,就需要在/etc/fstab中把掛載的一項加進去(r ! blkid /dev/XXX 寫入UUID),在用mount -a,就相當于重啟了,以后都能生效。最后可以用df查看
4.6 mount作用
掛載移動介質:
v 掛載意味著使外來的文件系統看起來如同是主目錄樹的一部分
v 訪問前、介質必須被掛載 ; 摘除時,介質必須被卸載
v 按照默認設置,非根用戶只能掛載某些設備(光盤、DVD 、軟盤、USB 等等)
v 掛載點通常在/media 或/mnt下
被內核探測為SCSI 設備 :/dev/sdaX 、/dev/sdbX 、或類似的設備文件
v 在圖形環境中自動掛載:圖標在[ 計算機] 窗口中創建 ;掛載在/run/media/<user>/<label>
手動掛載: mount /dev/sdb1 /mnt
4.6.1掛載設備
mount /dev/sda /mnt/sda
4.6.2 掛載文件
mount -o loop file /mnt/file
回環設備:一般為使用鏡像文件(鏡像文件中也有文件系統)虛擬塊設備存在于實際的另一個文件系統中
#mount -o loop /PATH/TO/SOME_LOOP_FILE MOUNT_POINT
可以做分區實驗,可以掛載使用,但是文件掛載必須要 mount -o -loop /partfile /mnt/partfile;
也可以用losetup /dev/loop6 /partfile 創建一個對應文件與設備的映射關系。
mknod /dev/sda b 7 8,創建/dev/loop7 ;/dev/loop8
此時在 /mnt/partfile 下寫的文件就能在/partfile中存儲,/partfile可以作為一個打包文件,備份使用,取消掛載之后,數據就能在/partfile中存儲。
4.6.3 掛載目錄
mount -B –bind dir1 dir2 (被掛載的目錄中的原來文件被自動隱藏)
4.6.4 掛載網絡
mount networkshare /mnt/sda
4.6.5 掛載ISO文件
cp /dev/cdrom /root/centos7.iso mount -o loop /testdir/centos7.iso /mnt/iso 掛載iso文件
mkisofs -r -o /root/etc.iso /etc 將目錄打包成iso文件
4.6.6刻錄光盤
wodim –v –eject centos.iso
五、swap處理交換文件和分區
交換分區是系統RAM 的補充,模擬內存分區(blkid、lsblk、cat/proc/swap、free查看swap內存和使用)
v 基本設置包括:
1.創建交換分區或者文件 2.使用mkswap 寫入特殊簽名
3.在 在/etc/fstab 文件中添加適當的條目 4.使用swapon –a激活交換空間
掛載交換分區:vim /etc/fstab
啟用:swapon swapon [OPTION]… [DEVICE]
-a :激活所有的交換分區; -p PRIORITY :指定優先級
/etc/fstab:pri=value
v 禁用:swapoff [OPTION]… [DEVICE]
5.1 swap分區創建與刪除
1、fdisk /dev/sdd
1:創建分區1 t:改變ID號為82 82 :默認swap的ID號是82
注意:新硬盤不需要同步,已經用過的硬盤需要同步partprobe partx -a /dev/sdd
2、mkswap /dev/sdd1 創建/dev/sdd1的文件系統為swap
可以用blkid查看swap文件系統是否創建。
3、vim /etc/fstab uuid=xxxx swap swap default,pri=100 0 0 優先級為100
4、swapon -a 讀取優先級文件 /etc/fstab
swapon -s = cat/proc/swaps 查看已經啟用的swap
刪除swap分區:必須先1.swapoff /dev/XXX ,在刪除2.vim /etc/fstab 、再 3.fdisk /dev/XXX d刪除 ;w保存
5.2 文件模擬創建swap分區
如果僅有一個硬盤且分區用光,可以用文件模擬swap
1.dd if=/dev/zero of=/swapfile bs=1M count=1024
2.然后mkswap /swapfile 格式化,不用考慮同步 ;再blkid /swapfile 可以查看swap文件系統
3.編輯 vim /etc/fstab /swapfile swap swap defaults 0 0
4.swapon -a ; free(查看swap分區的使用情況) ; swap -s (查看已經啟用的swap)
刪除swap分區:swapoff /swapfile vim /etc/fstab 刪除swapfile行 ,最后rm -rf /swapfile
六、磁盤管理常用工具
6.1 free內存空間使用狀態
free [OPTION] free -m
-m: 以MB 為單位 ; -g: 以GB 為單位
6.2 df文件系統空間占用等信息的查看工具
df [OPTION]… [FILE]… df -Th df -i
-H 以1000 為單位 ;-T 文件系統類型 ;-h: human-readable 可讀的
-i :inodes instead of blocks (節點而不是塊) ; -P: 以Posix 兼容的格式輸出
6.3 du查看某目錄總體空間占用狀態
du [OPTION]… DIR
-h: human-readable可讀的 ; -s: summary統計 du -sh
6.4 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 大小的塊 ;eek=blocks 從開頭忽略blocks 個obs 大小的塊
count=n 只拷貝n個記錄 conv=conversion[,conversion…] 用指定的參數轉換文件
v 轉換參數:
v ascii 換 轉換 EBCDIC 為 為 ASCII ; ebcdic 換 轉換 ASCII 為 為 EBCDIC
v block 轉換一行數據為長度為 cbs 的記錄,不足部分用空格填充。
v unblock 替代cbs 長度的每一行尾的空格為新行
v lcase 把大寫字符轉換為小寫字符 ;ucase 把小寫字符轉換為大寫字符
v nocreat 不創建輸出文件; noerror 出錯時不停止 ; notrunc 不截短輸出文件
v sync 把每個輸入塊填充到ibs 個字節,不足部分用空(NUL)
6.4.1 備份和破壞MBR分區信息
備份MBR分區信息
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
v 破壞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
6.4.2備份和恢復
備份:
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 :將壓縮的備份文件恢復到指定盤
6.4.3 拷貝與銷毀數據
拷貝內存資料到硬盤: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 將無法掛載,創建和拷貝操作無法執行。
6.4.4 硬盤測試
6.4.4.1得到最恰當的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 大小
6.4.4.2 測試硬盤讀寫速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
通過上兩個命令輸出的執行時間,可以計算出測試硬盤的寫/讀/速度
6.4.5修復硬盤
dd if=/dev/sda of=/dev/sda
當硬盤較長時間(比如1,2 年)放置不使用后,磁盤上會產生消磁點。當磁頭讀到這些區域時會遇到困難,并可能導致I/O 錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數據起死回 生,且這個過程是安全高效的。
原創文章,作者:lyx,如若轉載,請注明出處:http://www.www58058.com/61082