為什麼影印機讀不到隨身碟?分割表格式的問題與解法 / Why Can't the Copier Read My USB Drive? Problems and Solutions Related to Partition Table Formats
對軟體工程師來說,隨身碟的功能大多是刷ISO映像檔拿來安裝作業系統。但刷完之後再重新格式化,此時要拿它去影印機等裝置存儲檔案,又會發現隨身碟不能讀取了。原來這背後的原因,是因為「分割表格式」被設定為GPT的緣故。「分割表格式」到底是什麼?為什麼會被設定為GPT?要怎麼解決?就讓我們一起看下去吧。
For software engineers, USB drives are often used to flash ISO images for installing operating systems. However, after flashing and reformatting the drive, it often becomes unreadable by devices like copiers. The reason behind this lies in the " Partition Table Format" being set to GPT. What exactly is a " Partition Table Format"? Why is it set to GPT? And how can this issue be resolved? Let's delve into these questions.
問題描述 / Problem
現在辦公室大多都不購買影印機、印表機和掃描機,而是選擇跟廠商租借,再根據用量來付租金。這種影印機大多都集多功能為一身,其中也包括了能夠讀取USB隨身碟,從USB隨身碟列印檔案,或是將掃描文件的圖片檔案存入USB隨身碟中。
這次的例子是SHARP的MX-M266N。其實是很常見的機型呢。
一般情況下,我們只要將隨身碟插入到影印機提供的USB Type-A孔,就能夠使用USB隨身碟讀取或寫入檔案。
不過有時候卻會出現錯誤訊息「一個錯誤發生,當存取此記憶裝置.」。這是為什麼呢?
但是如果將USB隨身碟插入到電腦上,用Windows或Linux讀取時,其實都能正常讀到檔案的內容。究竟是發生了什麼事情呢?
不是檔案系統的問題 / It's Not a Filesystem Issue
一開始我推測可能是檔案系統(file system)的問題。因為這隻隨身碟之前被我用來作為Proxmox VE 8的系統安裝碟,所以內建的檔案系統都是Linux常見的ext4,可能是因為如此,導致影印機無法認清楚隨身碟裡面的檔案。
(圖片來源:https://tw.easeus.com/partition-manager-tips/hard-drive-format-tool.html )
我嘗試使用Windows內建的磁碟格式化工具,將USB隨身碟的檔案系統格式化成為了FAT32。儘管FAT32的限制很多,但一來我沒有要存取大型檔案,二來是FAT32在老舊和新電腦的相容性都是最好的。
然而,我用FAT32格式化之後,影印機依然讀取不到隨身碟。不管有沒有啟用「快速格式化」(Quick Format)都一樣。
幾經研究之後,我才發現原來並不是檔案系統的問題,而是分割表格式的問題。
啟動系統的分割表格式 / Partition Table Format for Booting the System
https://uefi.org/specs/UEFI/2.10/05_GUID_Partition_Table_Format.html
分割表格式是透過硬碟啟動作業系統的技術。分割表格式的類型大致上可以分成兩種。一種是早期使用的MBR,大多是早期以文字構成的BIOS所使用;另一種是GPT,後來較為華麗的UEFI BIOS都有支援GPT,而現在Windows 11也要求使用GPT。
具體來說,MBR(主開機記錄)是一種較舊的硬碟分割區格式,自 1980 年代以來一直被使用。它位於硬碟的第一個磁區,儲存開機載入器和分割區表資訊。MBR 最多支援四個主要分割區,或三個主要分割區和一個延伸分割區(其中可以包含多個邏輯分割區)。MBR 也限制單一分割區最大容量為 2TB,對於現今動輒數 TB 的硬碟來說,是一個明顯的限制。雖然 MBR 是一種舊技術,但由於其廣泛的相容性,在舊系統中仍被廣泛使用。
另一方面,GPT(GUID 分割區表)是較新的硬碟分割區格式,使用 GUID(全域唯一識別碼)來識別分割區。與 MBR 相比,GPT 有許多優點。它支援幾乎無限數量的分割區(實際上受作業系統限制),並且可以處理比 2TB 大得多的硬碟容量。GPT 也更安全,因為它包含備份分割區表和循環冗餘檢查碼 (CRC),可以偵測資料損毀。
(圖片來源:https://thelinuxforum.com/articles/887-how-to-create-a-bootable-usb-thumb-drive-of-proxmox-ve-8 )
由於這些優點,GPT 已成為新電腦的標準分割區格式。換句話說,如果你拿隨身碟用Rufus之類的工具刷入新的作業系統,那麼很高機率會將隨身碟的分割表格式刷成GPT。這就會導致只能讀取MBR的舊型裝置,無法識別GPT格式的隨身碟,因此造成了「我的隨身碟能在電腦上讀取,但是無法在影印機看到」的根本原因。
將GPT改為MBR / Change GPT to MBR
https://www.partitionwizard.com/free-partition-manager.html
由於Windows內建的磁碟格式化工具只能設定檔案系統,不能設定分割表格式,所以我們必須借助其他工具才行。這裡我推薦的是Mini Tool的MiniTool Partition Wizard Free,我用的是12.8版。這是免費工具,功能雖然有所限縮,但調整分割表格式等基本的磁碟操作都可以免費使用。
開啟後,我們先確認USB隨身碟的磁碟編號。從儲存空間的大小就能很快找到你要處理的磁碟。要小心,不要改到電腦內正在使用的其他磁碟了。此時你可以注意到,USB隨身碟的分割區雖然是FAT32格式,但是分割表格式卻是使用GPT。這導致影印機無法正常讀取隨身碟。
接下來我們的操作要完全會完全移除掉隨身碟上的檔案。在進行以下操作之前,請記得備份好隨身碟的檔案囉。
我們在隨身碟的磁碟上按右鍵,選擇「Delete All Partitions」(刪除所有分割區)。
此時會看到警告訊息。確定你沒有刪錯磁碟之後,請按「Yes」確認。完成後,隨身碟的分割區會消失,隨身碟變成「(Unallocated)」狀態
接著在隨身碟上按右鍵,選擇「Initialize to MBR Disk」(初始化為MBR磁碟)。完成後,你可以注意到隨身碟的類型從GPT變成了MBR。
下一步是建立分割區。請在隨身碟上按右鍵,選擇「Create」(建立分割區)。
我們在建立新的分割區對話視窗裡面進行以下設定:
- Partition Label 分割區標籤:設一個你看得懂的文字,不要太長,英文為佳。
- File System 檔案系統:設為「FAT32」,這可以讓大多裝置都能順利讀取。
- Size And Location 分割區空間與位置:拉滿整個USB隨身碟。
- OK:確認。
完成後,你可以注意到隨身碟出現了FAT32的分割區。
一切設定完成後,接下來按「Apply」(套用)。將上述操作真正寫入到USB隨身碟裡。
此時一樣會跳出警告訊息,提醒你操作過程中不要對該磁區有任何寫入或讀取的動作。最好此時電腦只留下MiniTool Partion Wizrad Free開著,其他應用程式都關閉,再按「Yes」開始。
完成之後,Windows檔案總管就會看到剛剛創立的分割區。接下來請將所有視窗關閉,安全地退出隨身碟吧。
再將分割表格式已經設為MBR的USB隨身碟插入到影印機裡面,此時影印機已經能夠正常讀取USB隨身碟了。由於剛剛的格式化導致USB隨身碟的檔案都被移除了,所以影印機裡面看不到任何檔案,這是正常的表現。
結語 / Conclusion
以往Linux跟Windows之間檔案無法讀取的時候,大家想到的幾乎都是檔案系統的問題。但經過這次的研究,我們發現到分割表格式才是最大的原因。而分割表格式的調整,並沒辦法用Windows內建的磁碟格式化工具修改,所以才需要使用MiniTool Partition Wizard Free這種進階的磁碟管理工具來使用。
在釐清這個問題之後,我也嘗試使用MicroSD的USB讀卡機來搭配影印機使用,結果影印機也確實能夠讀取與寫入MicroSD記憶卡呢。雖然SHARP的MX-M266N沒辦法認得GPT分割表格式,但其實還是很厲害的喔。
總而言之,儘管這只是一個小問題,但卻讓我苦惱已久,還找了很多人一起來研究。現在終於瞭解到原因跟解法了,真是有種豁然開朗的感覺啊。
這篇關於USB隨身碟的問題就寫到這裡了。文章最後要來問的是,你都是怎麽使用USB隨身碟的呢?
- 1. 臨時儲存檔案用。
- 2. 資料的離線備份。
- 3. 安裝作業系統的工具。
- 4. 可攜式作業系統。
- 5. Excel Pay最新支付工具:「2022/11/1 1500 小沈」
- 6. 其他:歡迎在下面留言,分享你的看法吧!