किसी विभाजन का सेक्टर आकार ज्ञात करना


24

मैंने इस सवाल का जवाब दिया , यह मानते हुए कि *.imgफ़ाइल का क्षेत्र आकार था 512

सही सेक्टर आकार खोजने के लिए, मैं डिवाइस, या डिवाइस की छवि को कैसे क्वेरी कर सकता हूं?

जवाबों:


26

fdisk -l (यह पैरामीटर में कम एल है) आपको अन्य जानकारी के साथ, सेक्टर आकार भी दिखाएगा।

$ sudo fdisk -l

Disk /dev/sda: 150.3 GB, 150323855360 bytes
255 heads, 63 sectors/track, 18275 cylinders, total 293601280 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
   /dev/sda1   *          63      208844      104391   83  Linux
   /dev/sda2          208845   209712509   104751832+  83  Linux

इससे पता चलता है कि सेक्टर का आकार 512 बाइट्स है।

संपादित करें: fdiskजैसे fdisk(पैकेज से util-linux 2.20.1) के नए संस्करण , आपको तार्किक और भौतिक क्षेत्र के आकार भी दिखाएंगे। उदाहरण के लिए, "WDC WD10EFRX 1TB ड्राइव" से प्रासंगिक आउटपुट:

Disk /dev/sdn: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

तो यह 4096 बाइट्स था, 512 बाइट्स नहीं।
21

26

दस्तावेज़ के अनुसार कतार sysfs फ़ाइलों के लिए :

# cat /sys/block/sda/queue/hw_sector_size
512

1
यह मनमानी छवि फ़ाइलों के लिए काम नहीं करेगा। कर्नेल को उनके बारे में कैसे पता होना चाहिए?
क्रिश्चियन पिसेट्स

1
@ChristianPietsch मनमानी छवि फ़ाइलों को सामान्यतः लूप उपकरणों के माध्यम से माउंट किया जाता है, इसलिए यह उनके लिए काम करेगाloopNइसके बजाय बस का उपयोग करना सुनिश्चित करें sdX। फिर भी, यह एक अर्थ में व्यर्थ है, क्योंकि छवि फ़ाइलों में वास्तव में कोई भी सेक्टर नहीं है, और यह जानकारी आपको वर्तमान में माउंट किए गए डिवाइस का सेक्टर आकार बताएगी।
रुस्लान

1

कोई केवल file(1)कमांड का उपयोग कर सकता है और गणित स्वयं कर सकता है। यह तब भी काम करता है जब आपके पास केवल FAT सिस्टम की छवि हो।

उदाहरण के लिए:

$ sudo file -s /dev/sda5 | tr , '\n'
/dev/sda5: DOS/MBR boot sector
 code offset 0x58+2
 OEM-ID "mkfs.fat"
 sectors/cluster 64
 reserved sectors 64
 Media descriptor 0xf8
 sectors/track 63
 heads 255
 hidden sectors 147632128
 sectors 536870912 (volumes > 32 MB)
 FAT (32 bit)
 sectors/FAT 65536
 serial number 0x9f981691
 unlabeled

इस विभाजन में प्रति क्लस्टर 64 सेक्टर हैं। प्रत्येक सेक्टर में बाइट्स की संख्या 512 है, क्योंकि यह डिफ़ॉल्ट है, इसलिए, क्लस्टर आकार 32KB है।

ध्यान दें कि सेक्टर का आकार 512 से अधिक हो सकता है (एफएटी विनिर्देशन इसे 4096 तक सीमित करता है लेकिन आप उच्चतर जा सकते हैं)। जब ऐसा होता है, तो आपको आउटपुट में एक अतिरिक्त "बाइट्स / सेक्टर" फ़ील्ड दिखाई देगा।

$ sudo mkfs.fat -S 4096 -s 16 /dev/sda5
mkfs.fat 4.1 (2017-01-24)

$ sudo file -s /dev/sda5 | tr , '\n'
/dev/sda5: DOS/MBR boot sector
 code offset 0x58+2
 OEM-ID "mkfs.fat"
 Bytes/sector 4096
 sectors/cluster 16
 Media descriptor 0xf8
 sectors/track 63
 heads 255
 hidden sectors 147632128
 sectors 67108864 (volumes > 32 MB)
 FAT (32 bit)
 sectors/FAT 4096
 serial number 0xb059d826
 label: unlabeled

मैच फिर से करें, 4096 बाइट्स × 16 सेक्टर = 64 KiB प्रति क्लस्टर।


0

उपरोक्त उत्तर के लिए धन्यवाद, भौतिक क्षेत्र के आकार को दिखाने वाले fdisk के बारे में, और / sys पथ के बारे में ... लेकिन एक नोट ... किताब में लुकास द्वारा Absolute FreeBSD .... लगभग हर hdd क्षेत्र के आकार के बारे में झूठ होगा, इसलिए लिनक्स के मामले में

/sys/block/sda/queue/hw_sector_size

हमेशा, जहां तक ​​मैं समझ सकता हूं, बेहतर प्रदर्शन के लिए 512 दिखाओ यह भौतिक क्षेत्र के आकार, वास्तविक में लेने के लिए अच्छा है, जो वास्तव में हार्डवेयर तर्क में उपयोग किया जाता है। यह fdisk द्वारा दिखाया गया है, और यह अंदर मौजूद है

cat /sys/block/sdc/queue/physical_block_size 
4096
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.