@梁宇轩7年前

02/3
00:15
聊聊闲天

Linux拯救因硬盤邏輯鎖而變磚的硬盤

零、前言

前幾天剛剛發博文吐槽過坑爹的「磚硬盤+春節」的情況,想不到就在春節裡面,就將這個問題充滿戲劇性地解決了。

首先來了解一下硬盤邏輯鎖是怎麼一回事。硬盤邏輯鎖是使用了某些DOS的一個Bug製成的。他/她採用了“循環分區表”的技術,使有這個Bug的DOS無法用任何設備啟動。當時江民就曾經使用硬盤邏輯鎖來打擊盜版,導致業界人心惶惶呢。

早在1992年,就有一個反病毒專家發現了這個Bug,並報告給有這個Bug的DOS的生產廠商。不久後,IBM、 Novell等紛紛宣佈其DOS的新版本已徹底解決了這個Bug,唯有MS-DOS的Microsoft沒有理會,導致MS-DOS的新版本仍繼續存在這個Bug。

一、故障情況

由於之前的硬盤接近塞滿,所以就去買了一個新硬盤,準備將舊硬盤重新分區,順便重做系統。將資料複製到新硬盤之後,就重啟用Win7的安裝光盤來引導,並且用安裝程式來分區。結果在刪除0號分區的時候,電腦斷電了。

重啟之後,所有由MS-DOS引導的系統都沒有辦法開啟了,包括Win7的安裝程式、Windows PE、之前的Ghost XP光盤帶的DOS。而且不知道為什麼,Ubuntu 12.04的Live CD也沒有辦法引導了,可能是啟動的時候也使用了無限分區技術之類吧。

而且拿出去修硬盤的時候,竟然直接被老闆判了死刑,真是毫無職業道德。

二、重大轉機

一開始我以為已經沒有辦法了,只能出去硬盤的維修中心之類的那些地方修了,畢竟連Ubuntu也沒法引導了。之前Bing的搜索結果中(Microsoft應該趕緊倒閉,不要為禍人間了),全部都是一個世紀之前的技術了,什麼軟盤啟動,什麼設置IDE為None,全部沒有意義。結果今天在Google上查了一下,發現Linux內核是不受硬盤邏輯鎖的影響,然後尋找了一下,下載了一個帶舊版本的Linux發行版的工具包的iso檔,用UNetbootin弄了U盤引導,重啟開工。

這裡順便介紹一下那個工具包,名字叫做「完美者U盤維護系統」,可惜不是問題解決的關鍵。

三、戲劇解決

重啟到BIOS之後,設定U盤啟動,然後就進入最緊張的時刻了。結果引導到工具包失敗了,停在了UNetbootin的引導程式上。

還記得之前說過的,凡是能引導的,都是修護了那個Bug的,換言之就是能帶那個硬盤的。同時,那個引導程式引導到一半失敗的命令輸入界面似乎有點熟悉,像下面這樣

# >_

不就是root登入後的Linux終端嗎?

試著輸入這個命令

fdisk -l

發現可以運行,而且/dev/sda*排到了60,而且後面的分區都一樣,也就是成功識別了硬盤邏輯鎖影響下的磚硬盤了!瞬間欣喜若狂,趕緊輸入清理分區表的命令。

dd if=/dev/zero of=/dev/sda bs=512 count=1

執行成功!趕緊重啟進入Ubuntu LiveCD,發現已經可以進入了,重建分區表,硬盤宣布救活!

四、尾聲

終於結束了這段坑爹的時期,總結起來就是就是坑爹的Microsoft造成的麻煩,最後還是靠著群策群力的Linux解決了。

感覺文字還是沒有辦法表達我現在的心情,雖然還處於新年走親戚的狀態中,但還是在手機上打下了本文。總結起來,目前我的心情就是

「我好興奮」

Linux拯救因硬盤邏輯鎖而變磚的硬盤

  1. 恭喜,我以前貌似也遇到过这个问题,我是直接用某张GHOST XP碟上自带的某工具解决的(DM?)
    其实你只要启动的时候先把硬盘拆下来,然后引导光盘,进入工具之前再插回去通电就好了(*゚▽゚)ノ

    回复
    1. 梁宇軒 文章作者

      好難把握時機啊,一閃而過啊。而且我的BIOS似乎是不管開機的時候沒有接上的SATA硬盤的哦,後面接上似乎也識別不了呢。
      話說我最近是不是花太多時間在部落格上了?

      回复
        1. 梁宇軒 文章作者

          苦逼高一黨,一開學就忙。
          (最近都去敲代碼去了,部落格似乎也沒什麼可以寫的 = =)

          回复
  2. 啧啧啧,你已经快一年没有更新博客了……这里都从荒野变成原始大森林了 (TεT;)

    回复