2013-10-23

Ubuntu 用 mkdosfs 指令格式化 SD Card

阿舍有一張 SD Card 上的資料夾裡的檔案出問題了,就是資料夾裡的檔案和子資料夾名稱都變成亂碼了,然後,怎麼刪也刪不掉,在試過一會後,阿舍就想,反正 SD Card 上也沒存什麼重要的資料,所以,乾脆就直接給它 Format 掉好了,這樣還比較快一些哩 ! 因此,就順手寫了這一篇囉 ! ^^=

在 Ubuntu 的圖型介面上,只要找到「磁碟」程式,然後,選擇 SD Card,之後,就可以點選「格式化」來 Foramt 那張光碟,不過,如果你是在沒有圖型介面的 Ubuntu 上的時候,或是像阿舍這種老是覺得指令跑得比圖型介面快的人的話,那就會需要知道怎麼用指令來格式化 SD Card 囉 !

Ubuntu 的圖型格式化工具

一般來說,為了讓 SD Card 可以在不同的設備上使用,所以,都會格式化成「FAT 32」或「FAT 16」,這樣格式化出來的 SD 卡才能讓 Windows 的作業系統可以讀寫,因此,就要用到 mkdosfs ( make-dos-files-system ) 這個指令來做格式化哩 ! mkdosfs 的指令不難,不過,有一些操作順序要注意哩 !

這個 mkdosfs 指令是要在 SD Card 沒有掛載的時候,才能進行格式化的,不過,如果你像阿舍一樣,在把 SD Card 插上後電腦後,再用「檔案」( 也就是 Nautilus ) 的功能來卸載 ( umount ) SD Card 的話, 那麼你就會和阿舍一樣,遇到找不到檔案或資料夾的訊息哩 ! ( "No such file ot directory" )

所以,為了避免重蹈阿舍的後塵,就請依照阿舍下面提的順序來操作囉 ! 首先,請先插入 SD Card,然後,用「df」 指令來找出剛剛插入的 SD Card 的裝置名稱 ( Device Name ),如果找不出來的話,請把 SD Card 拔出來,先執行一次「df」 指令,接著,再入 SD Card 後,再執行一次「df」 指令,這樣,應該就可以看出多出那一個裝置了,請把它的名稱記下來,還有,在完成格式化前,請不要再插入任何的 USB 裝置哩 !

查出 SD Card 的裝置名稱後,接著,就是要把它給卸載掉,以阿舍為例,阿舍的 SD Card 的裝置名稱是「/dev/sdb1」,所以,就需要用下面的指令來卸載 SD  卡囉 ! 如果不卸載就用 mkdosfs 指令來格式化的話,就會遇到「contains a mounted file system.」的訊息哩 !

sudo umount /dev/sdb1

接下來,在 SD 卡卸載完成後,就可以用下面的指令來進行 SD 卡的格式化工作哩 ! 下面這行指令會用到二個選項,「F」選項是 ( 要大寫 , 小寫的 f 選項是另外的用途哩 ! ) 用來指定 FAT 的格式,可以是 32 、16 或 12 位元,不過,因為現在的 SD 卡的容量都大於 2G  較多,所以,一般都是用 32 位元的,不過,如果沒給這個選項的話,也是 OK 的,mkdosfs 指令會自己判斷的哩 ! 而第二項的「v」選項則是用來指定要格式化的設備名稱,也就是剛剛用 df 指令查出來的那組名稱。

sudo mkdosfs -F 32 -v /dev/sdb1

另外,如果想要在格式化前先檢查是不有壞掉的磁區的話,可以像下面這行指令一樣,加入一個小寫的「c」選項來要求 mkdosfs 指令在格式化前,先執行磁區檢查哩 ! 而如果要將 SD Card 設定磁碟標籤的話,就像下面一樣,加個「n」選項和名稱就可以囉 !


sudo mkdosfs -cF 32 -n arthurtoday  -v /dev/sdb1

最後,阿舍要提醒的是,這個 mkdosfs 指令只能拿來格式化,不能用來製作可以開機的 SD Card,所以,如果要弄個可以開機的 SD Card 的話,這個 mkdosfs 指令就不適用了哩 ! ...

推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁