工作之后越來越不喜歡折騰了,或者說沒啥精力去折騰了。今天實在是覺得太麻煩了才去搞了一下linux mint的開機自動掛載ntfs分區。其實這也很簡單,只不過我一折騰起來通常都不是人的份。我會想起之前裝系統時遇到的事情,以及解決時用的辦法。
在京東買了台手提,晚上下單,早上到貨。然后呢,隨便用張windows碟(沒有分區工具)裝了個win7,然后再硬盤安裝linux mint 14。這有什么問題呢?問題是win7如果不事先分好區並格式化為ntfs直裝會多出一個系統保留分區,雖然大小只有100MB,但是卻占用了一個主分區名額!然后C盤和D盤又各占了一個主分區名額,那么我的linux mint就只能裝在擴展分區了。由於mint是裝在擴展分區,所以grub就不能裝在mbr里了,所以想要成功引導,必須在windows下安裝grub4dos之類的工具。好吧,算是裝好了,兩個系統也能成功引導,只不過想進入mint必須經過兩重引導有點不爽罷了。
而更嚴重的問題不在於此,當我進入mint后,敲下sudo reboot,系統進入重啟狀態,而后就一直卡在system rebooting。google一輪之后得出兩個比較靠譜的答案:1.mint裝在擴展分區;2.linux kernel對我的手提電源支持有問題。我選擇相信答案1,很大原因是那個100MB分區令我很不爽,就算所有東西都裝好了,我還是想重裝一次。
於是我買了一張記錄碟,把mint的iso鏡像燒錄進去,然后先安裝mint(單獨一個/boot占主分區,/什么的都放在擴展分區) ,再在mint下用fdisk創建兩個主分區(原本想把windows的D盤設為邏輯分區,但貌似邏輯分區不能非連續),再mkfs -t ntfs,還是mkfs.ntfs?忘了,反正都是一樣,只不過第一次的時候發神經,使用0去填充新分區,搞了很久,其實這是不必要的。(第一次分區的時候好像還失敗了一下,后來發生什么事就不記得了)
最后就是把win7裝在指定分區了,好吧,裝好了,然后我也事先知道mbr里的grub是一定會被覆蓋的。來吧,把mint的cd放進去,進入live cd模式,執行一下命令:
1 sudo mount /dev/sda2 /mnt 2 sudo mount /dev/sda1 /mnt/boot 3 sudo mount --bind /dev /mnt/dev 4 sudo mount --bind /proc /mnt/proc 5 sudo chroot /mnt
上面的命令是建立重寫grub的環境,因為live cd下並不能順利執行下面的命令:
sudo grub-install /dev/sda sudo update-grub
具體會報什么錯我也忘了,好像是找不到命令之類的吧。這里使用--bind可能是因為/dev已經被用作一個掛載點吧(具體自己mount試試就知道了)。執行grub-install會安裝grub,update-grub則會更新grub.cfg之類的配置文件(自動檢測硬盤里存在的系統)。
重啟一下(其實不能reboot,只能poweroff,這也暴露了一下問題),引導正常了。
然后呢?我發現還是不能使用reboot,那么,答案2才是對的吧。。。。以前我是自己編譯內核的,那時(到現在)也沒時間和心思去慢慢配置了。於是先搞一下諸如mint啟動時自動掛windows ntfs分區的問題,居然還寫錯了/etc/fstab文件!以為進入單用戶模式改一下就好了,發現根目錄居然是只讀模式。后來才發現只要:
sudo mount -remount,rw /
就好了。以后改完fstab文件還是先直接執行一下mount set_dir驗證一下好了。