阿政 發問時間: 電腦與網際網路軟體 · 9 年前

Linux系統斷電後用fsck指令因無卸載裝置使用系統大故障

我 的隨身碟 Linux 是 用 ext4檔案系統Ubuntu10.10版的當初分 / 目錄7.5G, SWAP 583M,突然斷電後進不去,因用fsck沒卸載檔案系統就直接使用,現在系統故障了,用 live cd後想說重新分割,但隨身碟分割表都不見了抓不到容量都是0kb也不能格式化,系統抓的盜磁區但就是無法進一步的動作,現在該如何,不要叫我用e2fsck指令,因這指令是給ext2系統用的,我的是ext4系統,個為高手來挑戰我的問題! 20點!

1 個解答

評分
  • 其威
    Lv 7
    9 年前
    最佳解答

    1. 首先, ext3 跟 ext4 都是可以 "向下相容" 成 ext2 的 (不過 ext4 的相容性比較差, 如果你有用到 extents 功能, 就沒辦法用 ext2 或 ext3 來 mount), 所以他們的工具根本就是同一套 - e2fsprogs.

    新版的 e2fsprogs 裡面附的 e2fsck 可以用來修復 ext2 ext3 ext4 檔案系統.

    2. 如果你確定資料都不要了, 可以用 fdisk 來清掉分區

    # fdisk /dev/sdb (請將 /dev/sdb 換成隨身碟的設備代號)

    Command (m for help): d

    Partition number (1-4): 1

    Command (m for help): d

    Selected Partition 2

    Command (m for help): w

    The partition table has been altered!

    Syncing disks.

    然後就可以用 cfdisk 或 gparted 來重新分區:

    # cfdisk /dev/sdb (請換成隨身碟的設備代號)

    或是

    # gparted (圖形化介面, 請自己用滑鼠選擇並建立分區...)

    3. fsck "可以" 在沒卸載檔案系統的狀況下使用, 但是 "絕對不能" 掛載成寫入 (rw), 要 mount -o ro 才行.

    下次在 fsck 之前, 可以先嘗試 mount -o remount,ro:

    # mount -o remount,ro /dev/sda1

    要注意 ***沒有*** 出現 (是 "沒有" 出現, 一定要看清楚)

    mount: / is busy

    才能 fsck.

    如果有出現, 就只能開進 single 模式 (操作步驟比較複雜), 或者使用 livecd 開機 (比較簡單, 塞進光碟重開就好了) 來 fsck 了.

    ========

    而且你的狀況很奇怪, 照理說 fsck 失敗也不會改到分割表, 分區 (/dev/sda1 /dev/sda2 那些) 應該都還在, 只要直接 mkfs.ext4 /dev/sda1 就可以了.

    另外建議你, swap 不要放到隨身碟上, 不然隨身碟可能很快就會掛掉...

    硬碟 (非 SSD) 的寫入次數可以達到百萬次以上, 但是隨身碟頂多只有十萬甚至只有一萬次, 這是快閃記憶體的硬體特性.

    如果用來放檔案, 例如放照片、文件檔什麼的, 你每天修改一個檔案兩三次頂天了, 一萬次可以用個八年十年.

    但是 swap 可能每個小時就會寫入幾百幾千次 (看記憶體使用狀況), 搞到最後可能會不到一年隨身碟就掛了 (尤其是便宜的爛隨身碟, FTL 做的爛得那種...).

    現在的電腦記憶體都很多 (1G/2G/4G), 除非是要作 software suspend (需要一個跟 ram 相同大小或比 ram 大的 swap 分區), 否則即使不給它 swap 也可以跑得很好.

    • 登入以對解答發表意見
還有問題?馬上發問,尋求解答。