Linux磁盤相關-分區與修復

Linux磁盤相關-分區與修復

Jan 30, 2016 in linux

問題描述:

移動硬盤分配空間如下(其中sdb1,sdb3,sdb4爲主分區,sdb5、6、7爲邏輯分區):
sdb 8:16 0 465.7G 0 disk
├─sdb1 8:17 0 18.7G 0 part /
├─sdb2 8:18 0 1K 0 part
├─sdb3 8:19 0 78G 0 part /media/james/My Documentes
├─sdb4 8:20 0 319.2G 0 part /media/james/UUI
├─sdb5 8:21 0 10.9G 0 part
├─sdb6 8:22 0 7.8G 0 part /media/james/mint
└─sdb7 8:23 0 31.2G 0 part /media/james/home


原來sdb5掛載在Ubuntu15.04的根目錄/下,sdb6掛載在目錄/usr/share下(因爲該目錄佔用空間大,不得已將數據複製出來覆蓋了原來的mint,運行時掛載,這是一個不錯的擴容方法),sdb7掛載在/home下(空間最大,但是由於安裝軟件多,大部分都在/usr下)。問題出現在,將Ubuntu安裝在3個分區上後,還是經常出現開機iNode錯誤,不得已必須強制關機,重啓後無法進入圖形界面,而進入了emergency mode的命令行界面,輸入密碼可正常登陸,跳過則進入Ubuntu原本的圖形界面,自己安裝的軟件全部沒有,懷疑home目錄沒掛載上,進入sdb1分區的deepin系統,發現sdb5無法掛載,顯示不能識別的文件系統。
嘗試win下修復,但都無法掛載sdb5,分區表肯定損壞了,最後又把MBR給整壞了,硬盤已經完全無法啓動操作系統了。無奈最後在sdb1上新安裝了mintKDE系統,才修復了MBR。期間嘗試了多個網友的辦法,增加了不少技能。

1. 磁盤分區查看命令

1.1 lsblk

lsblk能列出當前系統存在的硬盤和硬盤分區情況,如下。
sdb 8:16 0 465.7G 0 disk
├─sdb1 8:17 0 18.7G 0 part /
├─sdb2 8:18 0 1K 0 part
├─sdb3 8:19 0 78G 0 part /media/james/My Documentes
├─sdb4 8:20 0 319.2G 0 part /media/james/UUI
├─sdb5 8:21 0 10.9G 0 part
├─sdb6 8:22 0 7.8G 0 part /media/james/mint
└─sdb7 8:23 0 31.2G 0 part /media/james/home

我總是能看到sdb5分區,但是無法掛載。

1.2 df

df 能列出硬盤分區掛載情況及使用情況,掌握磁盤是否佔滿。
james@james-ThinkPad-T440p:~ > df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 19G 4.6G 13G 27% /
/dev/sdb7 31G 3.5G 26G 12% /media/james/home
/dev/sdb6 7.6G 3.6G 3.7G 50% /media/james/mint
/dev/sda1 101G 45G 56G 45% /media/james/系統
/dev/sdb3 78G 74G 4.4G 95% /media/james/My Documentes
/dev/sdb4 320G 312G 7.5G 98% /media/james/UU

2. 磁盤分區工具

2.1 分區工具 fdisk

fdisk能爲空磁盤分區,並且能修復partition order的錯誤,以前由於系統頻繁裝卸,存在這個錯誤,這個修復後,一直出現inode錯誤。fdisk還能列出分區的開始與結束柱頭。
常用用法:fdisk /dev/sda //進入交互模式對磁盤進行操作

2.2 分區工具 parted

parted也是一個命令行分區工具。可以修改分區參數,還有一個找回丟失分區表的功能。但是我沒有通過這個命令找到丟失的sdb5的分區表
參考:parted命令詳解
linux的parted手冊

3. 磁盤修復工具

3.1 主引導記錄

(1)MBR:”Master Boot Record”主引導記錄,BIOS檢測到一個硬盤後,將磁盤的0 cylinder(0柱面),0 head(0磁頭),1 sector(1扇區)的內容經過簡單判斷後,加載到內存中指定位置,然後跳轉至該位置運行。MBR大小爲512bytes,其中主要存放引導程序和該硬盤的分區表。
(2)GRUB:”GRand Unified Bootloader”:多重操作系統啓動管理器,通過運行GRUB來引導進入操作系統。
(3)啓動過程爲:首先啓動到BIOS,然後檢測硬盤的MBR,將MBR該扇區的內容(也就是寫在上面的GRUB)裝入內存運行,再通過GRUB來引導操作系統。
(4)grub2分爲2部分,一部分在MBR上,一部分在操作系統的/boot/grub下。如果進入引導界面,沒有發現啓動選項,而只有grub rescue,則可以通過交互找到另外一部分進行啓動。操作流程如下: Ubuntu——grub rescue 主引導修復
參考:從失敗的 Linux 引導中恢復

3.2 MBR修復命令行工具 grub-install

我的情況是grub rescue都被搞的無法顯示了,只能通過其他方法來做。
grub-install可以將grub寫入到磁盤的MBR中,但是我沒有嘗試成功,報錯說:path ‘/boot/grub’ is not readable by GRUB on boot ,Installation is impossible 問題
然後看國外網友說Boot-Repair可以修復。
參考:GRUB配置的安裝和寫入硬盤的MBR
Linux中安裝GRUB的兩種方式

3.3 圖形工具Boot-Repair

Boot-Repair是Ubuntu下一款修復啓動項的圖形工具,需要增加ppa,通過網絡安裝,由於無法成功添加ppa,沒能嘗試成功。後面看可以下載鏡像安裝。
參考:Boot Repair-能一鍵修復ubuntu啓動/引導項的軟件

3.4 圖形工具 easyBCD與bootice

easyBCD是windows下一款修復啓動項工具,嘗試了一下,可以成功製作windows與linux雙啓動項,但是由於sdb5始終無法識別掛載,且它製作的啓動項不是想要的grub2。
bootice也是win下的修復啓動項工具,但侷限於修復windows的開機啓動,沒找到grub2的啓動修復選項,win下的修復做的很好。

3.5 磁盤修復命令 e2fsck

e2fsck能檢查壞軌,並能自動修復磁盤錯誤,檢查時不能掛載磁盤。使用e2fsck -a /dev/sdb5可以檢查磁盤錯誤並自動修復。
參考:Linux磁盤修復e2fsck命令

3.6 磁盤修復命令 fsck

fsck也是磁盤修改命令,檢查時也不能掛載磁盤。使用fsck.ext4 /dev/sdb5可以檢查磁盤錯誤並自動修復。運行這條命令後,出現很多問題,確認後修復。再嘗試掛載sdb5,成功掛載,並且能顯示分區裏的文件。
參考:修復被破壞了的linux文件系統分區表

發佈了9 篇原創文章 · 獲贊 2 · 訪問量 2053
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章