Partition

對 4k 模擬 (512e) HDD 進行分區和格式化

  • March 2, 2022

我剛剛將我的新外置硬碟插入到 Debian Buster 系統的 USB A 3.0 / C 3.1。

該磁碟以LaCie 2.5" Porsche Design P'9227 2TB USB-C的形式出售。

這是輸出fdisk -l /dev/sdc

Disk /dev/sdc: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: P9227 Slim      
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes

我剛剛閱讀了一些關於 4k 模擬驅動器 ( 512e ) 的文章,應該是這樣的。

我對如何使用 NTFS 格式化它感到困惑。

我試著用我的大腦,這就是我帶來的:

  • 分區的起始扇區應該從 4096 扇區開始(?)

所以我創建了一個這樣的分區gdisk

Device     Start        End    Sectors  Size Type
/dev/sdc1   4096 3907029134 3907025039  1.8T Microsoft basic data
  • 扇區大小可能應該--sector-size像我所做的那樣(?)發出:
mkfs.ntfs --no-indexing --verbose --with-uuid --label EXTERNAL_2TB --quick --sector-size 4096 /dev/sdc1

編輯1:

完全更新的 Windows 10 無法辨識分區並要求我格式化,我使用了我最喜歡的工具,然後回到 Linux 這裡的輸出是fdisk -l /dev/sdc

Device     Start        End    Sectors  Size Type
/dev/sdc1   2048 3907028991 3907026944  1,8T Microsoft basic data

那麼為什麼它必須從扇區 2048 開始,我不明白。


編輯2:

我不明白我在與 Windows 的兼容性方面做錯了什麼。每次我重新分區/重新格式化並啟動 Windows 並插入驅動器時,它只是讓我自己格式化。

我很肯定我從裡面嘗試了一切gdisk+ mkfs.ntfs

我想知道為什麼我無法從我的 Linux CLI 中執行與 Windows 相同的操作。


我將在明天早上回答所有問題以及評論。

我現在正在執行:

pv --progress --timer --eta --rate --average-rate --bytes -s 1953314876k < /dev/zero > /media/vlastimil/LACIE_2TB/zero

預期速度為 123 MiB/s。

物理扇區大小為 4096 意味著驅動器上的數據以 4096 字節為單位進行佈局,即磁碟由 4096 字節的連續“分區”組成,必須以原子方式寫入。出於兼容性原因,大多數具有 4096 字節扇區的磁碟將它們自己顯示為具有傳統的 512 字節“邏輯扇區”,這意味著定址單元是 512 字節塊。

這種模擬具有 4096 字節扇區的底層磁碟的 512 扇區驅動器的實際含義是潛在的性能問題。將單個 512 字節扇區寫入 512e 磁碟時,驅動器必須讀取包含 512 字節扇區的整個 4096 字節扇區,通過用新內容替換 512 字節扇區來修改 RAM 中的扇區(在磁碟控制器上) ,最後將整個 4096 扇區寫回磁碟。如果您正在讀取或寫入碰巧跨越 4096 扇區邊界的幾個連續 512 扇區,情況會變得更糟。

文件系統通常很好地佈置它們的資料結構,即它們與至少 4096 字節的倍數對齊,因此更大的扇區大小通常不會出現問題。但是,如果包含文件系統本身的分區沒有正確對齊,這一切都會崩潰。對於 512e 磁碟,分區應該對齊,以便第一個 512 字節的邏輯扇區號是 8 的倍數。

引用自:https://unix.stackexchange.com/questions/497063