আমি এই প্রশ্নের উত্তর দিয়েছি , ধরে নিলাম যে *.img
ফাইলটির একটি সেক্টর আকার রয়েছে 512
।
সঠিক খাত আকারটি পেতে কীভাবে আমি কোনও ডিভাইস বা কোনও ডিভাইসের চিত্র জিজ্ঞাসা করব?
আমি এই প্রশ্নের উত্তর দিয়েছি , ধরে নিলাম যে *.img
ফাইলটির একটি সেক্টর আকার রয়েছে 512
।
সঠিক খাত আকারটি পেতে কীভাবে আমি কোনও ডিভাইস বা কোনও ডিভাইসের চিত্র জিজ্ঞাসা করব?
উত্তর:
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
) এর আরও নতুন সংস্করণগুলি আপনাকে লজিক্যাল এবং শারীরিক ক্ষেত্রের আকারগুলি প্রদর্শন করবে। উদাহরণস্বরূপ, "ডাব্লুডিসি ডাব্লুডি 10 ইএফআরএক্স 1 টিবি ড্রাইভ" থেকে প্রাসঙ্গিক আউটপুট:
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
সারি sysfs ফাইলগুলির জন্য ডকুমেন্টেশন অনুসারে :
# cat /sys/block/sda/queue/hw_sector_size
512
loopN
পরিবর্তে ব্যবহার করতে ভুলবেন না sdX
। তবুও, এটি একটি অর্থে বরং অর্থহীন, যেহেতু চিত্র ফাইলগুলিতে আসলে কোনও সেক্টর নেই এবং এই তথ্যটি আপনাকে বর্তমানে মাউন্ট করা ডিভাইসের খাত আকার বলবে।
কেউ কেবল 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
এই পার্টিশনের প্রতি ক্লাস্টারে sectors৪ টি সেক্টর রয়েছে। প্রতিটি সেক্টরে বাইটের সংখ্যা 512, এটি ডিফল্ট হিসাবে, তাই ক্লাস্টারের আকার 32KB।
লক্ষ্য করুন যে সেক্টরের আকার 512 এর চেয়ে বেশি হতে পারে (FAT স্পেসিফিকেশন এটি 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 কিবি।
উপরের জবাবগুলি, fdisk সম্পর্কে শারীরিক ক্ষেত্রের আকার দেখানো এবং / sys পাথ সম্পর্কে ... তবে একটি নোট ... লুবাস দ্বারা নিরঙ্কুশ ফ্রিবিএসডি বইটিতে .... প্রায় প্রতিটি এইচডিডি খাতের আকার সম্পর্কে মিথ্যা বলবে, তাই লিনাক্সের ক্ষেত্রে
/sys/block/sda/queue/hw_sector_size
সর্বদা, যতদূর আমি বুঝতে পারি, আরও ভাল পারফরম্যান্সের জন্য 512 দেখান এটি শারীরিক ক্ষেত্রের আকার বিবেচনা করা ভাল, বাস্তব, যা সত্যই হার্ডওয়্যার যুক্তিতে ব্যবহৃত হয়েছে। এটি fdisk দ্বারা দেখানো হয়েছে, এবং এটি উপস্থিত
cat /sys/block/sdc/queue/physical_block_size
4096