2010-03-12

shrink ntfs partition

【這是危險操作,如果您不知道自己在做什麼,請勿輕易嘗試。】

話說今天不想幹嘛,於是終於來處理新筆電的 xp 磁碟區。

前兩天已經把以前找到的資料調出來,所以今天動手很快。

可能先在 windows 做一下 chkdisk /f C: 比較好。但因為這幾天只有一直開同一個 pdf 檔,應該沒太動到什麼,所以懶得做,直接先進 BIOS 選單把開機順序改成 usb cdrom 第一,以 knoppix 光碟開機。

接著根據該資料指示,依序敲下(這裡的 xp 掛在 /dev/sda1,所以以下皆以 /dev/sda1 為例。)
ntfsresize --info /dev/sda1  ← 看一下磁碟區大小
ntfsresize -ns 12G /dev/sda1 ← n = no action 只是看執行會不會順利
ntfsresize -s 12G /dev/sda1 ← 真的把原來的很多 G 縮減為 12G
跑一陣子順利完成後,重新開機進入 windows。windows 會用 chkdisk 檢查自己,然後自動重新開機。

這樣就順利完成了。接下來再看要在 knoppix 下用 fdisk 分割磁碟區,抑或是安裝 debian 時再分割。一時之間無法決定各磁碟區大小,可能要再懶惰幾天吧。

話說 fsdik -l /dev/sda 時,看到除了已知存在的另一個 vfat 分割區,用來放還原點檔案,還有個代號 de 的分割區,好像有 mbr 之類的檔案,不知是做什麼的。雖然見識不廣,但實在是第一次看到出廠時在分割區方面這麼厚工的筆電哪,雖然好像值得稱讚,但卻要花時間弄清楚怎麼留怎麼移,不然怎麼用那些空間……意料之外的事情。

補記 2010-03-15 00:15

非常可怕。就想說上次做這件事情沒那麼好過,明明有非常膽顫心驚的時刻。原來接著還要用 fdisk 置之死地而後生啦。
fdisk /dev/sda
進去以後按 P,抄下 /dev/sda1 那行的情形,例如有沒有 Boot 記號、起始柱的數字 Start(!!陷阱!!),以及磁碟區格式 Id,然後先把這個磁碟區砍掉(d),再將它新增(n),新增時填入的數字,除了大小改為 12G (之前 ntfsresize 的大小),其他都要跟原來一模一樣。新增檢查完畢,將這個重做的 partition 寫入儲存(w)。

成功!

補記 2011-12-22 18:12

在執行 ntfsresize 之前,除了以 "fdisk -ul > 檔名" 記下原本的磁碟區分配情形及資料,還可以用 dd 備份 MBR(只有 512 bytes):
dd count =1 < /dev/sda > 檔名(例如 hda.mbr)
dd count=1 < /dev/sda1 > 檔名(例如 windows.bootsector)
全部做好之後,最好把新的 MBR 也另存一個檔案備份,如果出問題,斟酌情況,把它抄回去,或許派得上用場。

此外,在做 ntfsresize 的時候,會出現下列這行叮嚀:
Schedule chkdsk for NTFS consistency check at Windows boot time ...
這意思是,做完之後,要開一次 Windows,讓機器自動執行一次 chkdsk,以確保其檔案系統的完整性。

再來談!!陷阱!!。所謂起始柱,要細到 sector 層級,這在專家模式(x)才看得到,雖然通常可能是 63(假設是在第一個磁碟區),也通常以 default 進行即可,但也可能是其他奇怪的數字,如果沒注意到,很可能一失足成千古恨。

參考資料

Shrink the Windows partition

No comments:

Post a Comment