8.8-9 fsck、dd
生活随笔
收集整理的這篇文章主要介紹了
8.8-9 fsck、dd
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
8.8 fsck:檢查并修復(fù)Linux文件系統(tǒng)
fsck命令用于檢查并修復(fù)文件系統(tǒng)中的錯誤,即針對有問題的系統(tǒng)或磁盤進(jìn)行修復(fù),類似的命令還有e2fsck命令。有關(guān)fsck的使用需要特別注意的是:
1)文件系統(tǒng)必須是卸載狀態(tài),否則可能會出現(xiàn)故障。 2)不要對正常的分區(qū)使用fsck,在不加參數(shù)的情況下,fsck會根據(jù)/etc/fstab進(jìn)行文件系統(tǒng)檢查,這相當(dāng)于fsck -As參數(shù)的功能。 1)在fsck命令及后面的選項和文件系統(tǒng)里,每個元素之間都至少要有一個空格。 2)filesys可以是一個設(shè)備名(例如:/dev/sdal、/dev/sdb2)、一個掛載點(例如:/、/usr、/home)或一個文件系統(tǒng)的磁盤標(biāo)簽,也可以是UUID指定符(例如:UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd或LABEL=root)。fsck 命令的參數(shù)選項及說明
-a?? ?自動修復(fù)文件系統(tǒng),不詢問任何問題 -s?? ?按順序檢查多個文件系統(tǒng) -t?? ?指定要檢查的分區(qū)的文件系統(tǒng)類型 -A?? ?依服/etc/fstab配置文件的內(nèi)容,檢查文件內(nèi)所列的全部文件系統(tǒng) -N?? ?不執(zhí)行指令,僅列出實際執(zhí)行會進(jìn)行的動作? 必須卸載文件系統(tǒng)后才能對其進(jìn)行檢查,否則可能會出現(xiàn)錯誤。平時沒有必要使用這個命令檢查磁盤,只有當(dāng)系統(tǒng)開機(jī)顯示磁盤錯誤時,才需要執(zhí)行。? 系統(tǒng)開機(jī)通過fsck自檢。? Linux在開機(jī)過程中系統(tǒng)會自動調(diào)用fsck命令對需要自檢的磁盤進(jìn)行自檢(如圖8-3所示)。 系統(tǒng)開機(jī)之所以會通過fsck自檢,就是因為系統(tǒng)開機(jī)過程中會優(yōu)先讀取/etc/fstab文件,當(dāng)最后一列設(shè)置為1或2時,這個磁盤在開機(jī)時就會調(diào)用fsck進(jìn)行自檢,fstab的文件(man fstab看幫助)信息如下: [root@cs6 ~]# cat /etc/fstab# # /etc/fstab # Created by anaconda on Sun May 5 23:10:33 2019 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/vg_cs6-lv_root / ext4 defaults 1 1 UUID=b7b58ad5-f612-4132-9e1f-5d55af6a9a58 /boot ext4 defaults 1 2 /dev/mapper/vg_cs6-lv_swap 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 /dev/sdb1 /mnt ext4 defaults 0 0? 提示:管理員增加硬盤規(guī)劃分區(qū),一般最后一列都設(shè)置為0,即開機(jī)過程中不對磁盤檢查,如果真有問題,可以在啟動系統(tǒng)后人為進(jìn)行檢查。 Linux 斷電后重啟故障修復(fù)案例。? 當(dāng)Linux系統(tǒng)遭遇突然斷電等非正常關(guān)機(jī)操作時,很容易導(dǎo)致文件系統(tǒng)數(shù)據(jù)損壞,造成系統(tǒng)不能重新啟動,此時,屏幕出現(xiàn)的提示可能是如下內(nèi)容: 此時根據(jù)系統(tǒng)提示輸入root用戶的密碼,注意而不是直接按Control-D繼續(xù),會再重啟。 當(dāng)輸入正確的密碼之后,正常會出現(xiàn)下面的提示: (Repair filesystem)1? 此時就可以輸入fsck或者fsck -A對磁盤進(jìn)行修復(fù)檢查,執(zhí)行后可能出現(xiàn)一堆詢問,按yes即可。? (Repair filesystem) 1? ?# fsck -A #<==可能會等種一段時間或 fsck (Repair filesystem) 2? ?#?<=修復(fù)完畢會返回到這個提示符,此時就可以試著重啟系統(tǒng),看故障是否修復(fù)了。? 1)除了按照開機(jī)的提示進(jìn)行修復(fù)外,也可以利用系統(tǒng)盤進(jìn)入教援模式或單用戶模式對系統(tǒng)故障進(jìn)行修復(fù)。 2)千萬不要在開機(jī)正常工作的情況下執(zhí)行fsck來檢查磁盤,因為這樣有可能會導(dǎo)致正常的磁盤發(fā)生故障。 3)/etc/fstab中的最后一列數(shù)字為1或2時,當(dāng)系統(tǒng)開機(jī)時就會讀取fsck對這些系統(tǒng)磁盤進(jìn)行自檢。 4)不要在已經(jīng)掛載的文件系統(tǒng)上執(zhí)行fsck等磁盤修復(fù)命令,因為這樣可能會導(dǎo)致故障。?8.9 dd:轉(zhuǎn)換或復(fù)制文件?
dd命令具有復(fù)制文件、轉(zhuǎn)換文件和格式化文本的功能。?dd命令的參數(shù)選項及說明
if=<輸入文件> 從指定文件中讀取,全稱為input file of=<輸出文件> 寫入到指定文件,全稱為output file bs=<字節(jié)數(shù)> 一次讀寫的字節(jié)數(shù),全稱為block size count=<塊數(shù)> 指定復(fù)制block塊的個數(shù) ibs=<字節(jié)數(shù)> 一次讀的字節(jié),默認(rèn)是512 obs=<字節(jié)數(shù)> 一次寫的字節(jié),默認(rèn)是512 conv=<格式> 格式轉(zhuǎn)換ucase把字母由小寫轉(zhuǎn)換為大寫lcase把字母由大寫轉(zhuǎn)換為小寫將/dev/sda1分區(qū)復(fù)制(備份)到文件中
[root@cs6 ~]# dd if=/dev/sdb1 of=dev_sdb1.img #<==使用if從/dev/sdb1中讀取數(shù)據(jù),使用of指定輸出到當(dāng)前日錄的dev_sdb1.img。 835317+0 records in 835317+0 records out 427682304 bytes (428 MB) copied, 13.3079 s, 32.1 MB/s[root@cs6 ~]# ll -h dev_sdb1.img -rw-r--r--. 1 root root 408M May 11 15:20 dev_sdb1.img刪除/dev/sdb1分區(qū)數(shù)據(jù)
下面的實驗很危險,請使用虛擬機(jī)操作,并提前做好快照。 從/dev/zero設(shè)備讀取數(shù)據(jù),寫入或覆蓋/dev/sdb1的數(shù)據(jù): [root@cs6 ~]# dd if=/dev/zero of=/dev/sdb1 #<==/dev/zero是一個特殊的設(shè)備,相當(dāng)于什么都沒有。 dd: writing to `/dev/sdb1': No space left on device #<==提示寫滿了。 835318+0 records in 835317+0 records out 427682304 bytes (428 MB) copied, 1.77188 s, 241 MB/s#/dev/zero是0字符設(shè)備,可產(chǎn)生連續(xù)不斷的特殊數(shù)據(jù)流,生成的文件為特殊格式的數(shù)據(jù)文件(二進(jìn)制)。[root@cs6 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_cs6-lv_root26G 1.3G 24G 5% / tmpfs 931M 0 931M 0% /dev/shm /dev/sda1 477M 28M 424M 7% /boot /dev/sdb1 16Z 16Z 389M 100% /mnt/data1 [root@cs6 ~]# ls /mnt/data1可以看到,上面的/mnt/data1分區(qū)被清空了,此時系統(tǒng)已經(jīng)遭到破壞。這種情況千萬不要重啟系統(tǒng),/mnt/data1分區(qū)受損是無法啟動系統(tǒng)的,應(yīng)該繼續(xù)下面的恢復(fù)操作。 用范例8-19的備份恢復(fù)范例8-20刪除的分區(qū)數(shù)據(jù)。 [root@cs6 ~]# dd if=dev_sdb1.img of=/dev/sdb1 835317+0 records in 835317+0 records out 427682304 bytes (428 MB) copied, 1.6525 s, 259 MB/s [root@cs6 ~]# ls /mnt/data1 1.html 2.html 3.html 4.html 5.html lost+found 要特別注意if、of參數(shù),如果位置寫反了,就會出大問題。生成任意大小的測試文件
[root@cs6 ~]# dd if=/dev/zero of=test.data bs=1M count=2 #<= 從/dev/zero讀取數(shù)據(jù)寫入到test,dita,生成文件test,data的大小為bs*count=1M*2=2M; 2+0 records in 2+0 records out 2097152 bytes (2.1 MB) copied, 0.11628 s, 18.0 MB/s [root@cs6 ~]# ll -h test.data -rw-r--r--. 1 root root 2.0M May 11 15:27 test.data制作Linux系統(tǒng)的ISO鏡像
在Windows系統(tǒng)里制作光盤的ISO鏡像,還需要安裝其他軟件。但在Linux系統(tǒng)中只需要dd命令就足夠了。 在做實驗時,如果需要將CentOS的完整系統(tǒng)鏡像上傳到Linux系統(tǒng)中,一般使用winSCP或Xshell等工具,但這是通過網(wǎng)絡(luò)傳輸?shù)姆绞?#xff0c;上傳速度受限于網(wǎng)絡(luò)帶寬。此時可以使用dd命令,將從光驅(qū)讀取的鏡像復(fù)制到系統(tǒng)中,相當(dāng)于光驅(qū)與磁盤對拷。 將光盤放入光驅(qū)之后,需要確保光驅(qū)可以正常讀取,然后執(zhí)行如下命令即可實現(xiàn)將光盤復(fù)制到Linux硬盤的操作: [root@cs6 ~]# ls /dev/cdrom /dev/cdrom [root@cs6 ~]# dd if=/dev/cdrom of=centos6_10.iso 831488+0 records in 831488+0 records out 425721856 bytes (426 MB) copied, 49.5612 s, 8.6 MB/s #<==傳輸速度取決于光驅(qū)與磁盤之間的讀寫速度,可以看到這種方式的傳輸速度遠(yuǎn)遠(yuǎn)大于網(wǎng)絡(luò)傳輸速度。 [root@cs6 ~]# ll -h centos6_10.iso -rw-r--r--. 1 root root 406M May 11 15:32 centos6_10.iso使用dd復(fù)制文件并進(jìn)行格式轉(zhuǎn)換的例子。
[root@cs6 ~]# cat test.txt I love linux www.wenyule.top [root@cs6 ~]# dd if=test.txt conv=ucase of=test.test_u 0+1 records in 0+1 records out 29 bytes (29 B) copied, 0.00036375 s, 79.7 kB/s [root@cs6 ~]# cat test.test_u I LOVE LINUX WWW.WENYULE.TOP總結(jié)
以上是生活随笔為你收集整理的8.8-9 fsck、dd的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10.22 tcpdump:监听网络流量
- 下一篇: s6-1 传输层概述