লিনাক্সে আনমাউন্টবিহীন পার্টিশনের আকারটি কীভাবে খুঁজে পাবেন?


14

আমি টিউন 2 এফ ব্যবহার করছি, তবে এটি ব্লকগুলিতে ডেটা দেয় এবং আমি পার্টিশনের মোট আকারের সঠিক মান পেতে পারি না।

আমিও ব্যবহার করেছি fdisk -l /dev/mmcblk0p1, তবে আকারটি এখান থেকে পাওয়া যাচ্ছে এটিও একটি আলাদা মান।

পার্টিশনের সঠিক আকারটি আমি কীভাবে খুঁজে পাব?


8
মনে রাখবেন যে টিউন 2fs পার্টিশনের আকার প্রিন্ট করে না , এটি ফাইল সিস্টেমের আকার প্রিন্ট করে । একটি ফাইল-সিস্টেমটি পার্টিশন চেয়ে কম হওয়া পারে (পার্টিশনে অব্যবহৃত স্থান নেই যদি থাকে), এটি একটি পার্টিশন (ক্ষেত্রে পার্টিশন একরকম ছিন্ন ছিল চেয়ে বড় হতে পারে; স্পষ্টত ফাইলসিস্টেম যে ক্ষেত্রে দূষিত হয়, কিন্তু এখনও এটি হল চেয়ে বড় বিভাজন)। এটি একাধিক পার্টিশনও বিস্তৃত করতে পারে, বা এমনকি "ভার্চুয়াল" হতে পারে, এমনকি কোনও ব্যাকিং ডিভাইসও নেই (যেমন, সিএসএফস, প্রোফস, টিএমপিএফ)।
Jörg ডব্লু মিট্টাগ

উত্তর:


22

আদেশটি হ'ল:

blockdev --getsize64 /dev/mmcblk0p1

এটি 64-বিট পূর্ণসংখ্যার হিসাবে বাইটে ফলাফল দেয়। এটা তোলে জিজ্ঞাস্য বাইট আকার একটি এর ব্লক ডিভাইস , যেমন কার্নেল এর আকার দেখুন।

কারণ, কেন fdisk -l /dev/mmcblk0p1কাজ করেন নি, এটি ছিল fdiskকিছু মোট আলাদা জিনিস: এটি ব্লক ডিভাইসের পার্টিশন টেবিল (= প্রথম ক্ষেত্র) এ পড়ে এবং এটি যা খুঁজে পেয়েছিল তা মুদ্রণ করে । এটি কোনও কিছুই পরীক্ষা করে না, কেবল পার্টিশন টেবিলের মধ্যে যা আছে তা বলে।

এমনকি পার্টিশন টেবিলটি ক্ষতিগ্রস্থ হলে বা ব্লক ডিভাইসটি না থাকলেও এটি বিরক্ত করে না: এটি একটি সতর্কতা প্রিন্ট করবে যে চেকসাম ঠিক আছে না, তবে এটি এখনও যা খুঁজে পাওয়া যায় তা মুদ্রণ করে, এমনকি মানগুলি স্পষ্টভাবে অযোগ্য হলেও -ইন্দ্রিয়.

এই আপনার ক্ষেত্রে কি ঘটেছে /dev/mmcblk0p1 নেই একটি পার্টিশন টেবিল। ডিভাইসের নাম যেমন দেখায়, এটি ইতিমধ্যে শারীরিক ডিস্কের প্রথম বিভাজন /dev/mmcblk0। এই ডিস্কে একটি পার্টিশন টেবিল রয়েছে, আপনি যদি এটির সাথে জিজ্ঞাসাবাদ করেন fdisk -l /dev/mmcblk0, এটি কাজ করেছিল (ধরে নিবেন এটিতে একটি এমএসডোস পার্টিশন টেবিল রয়েছে)।


আমার পার্টিশনের স্থান হুবহু 2 জিবি তবে ব্লকদেব এবং এফডিস্ক উভয়ই বাকি স্থানের চেয়ে কম মান দেয় এবং দয়া করে এর মান পুনরুদ্ধার করতে কমান্ডটিও জানান
সার্থক_ভূতানি

@ সার্থক_ভূতানি আপনার প্রয়োজন কোন তথ্য দ্বারা মুদ্রিত হয় না fdisk -l /dev/mmcblk0? এটি আপনাকে একটি ব্লকের আকার, ডিভাইসে মোট ব্লকের সংখ্যা, পার্টিশনের আকার এবং প্রতিটি পার্টিশনের শুরু এবং শেষ ব্লকটি বলা উচিত। আপনি সেই তথ্য থেকে কোনও বিভাজনকে বরাদ্দ না করা ব্লক রেঞ্জগুলিও বের করতে পারেন।
ব্ল্যাকজ্যাক

9

চেষ্টা করুন lsblk, এটির জন্যও মূলের প্রয়োজন নেই:

$ lsblk -b
NAME    MAJ:MIN RM        SIZE RO TYPE MOUNTPOINT
xvda    202:0    0 34359738368  0 disk 
├─xvda1 202:1    0  1676673024  0 part [SWAP]
└─xvda2 202:2    0 32682016768  0 part /var/spool

-bপরামিতি এটা আউটপুট বাইটে আকার বলে।


এটি খুব সুন্দর একটি সরঞ্জাম !!! ধন্যবাদ! +1 টি!
rmbianchi

5

পার্টিশনের রান মোট আকারের সঠিক মান পেতে:

awk '{print $1*512}' /sys/class/block/mmcblk0p1/size

2
আমি মনে করি এটি সেক্টরের আকার 512 (যা আজকের ক্ষেত্রে অপ্রতিরোধ্য সংখ্যাগরিষ্ঠ) এর উপরও নির্ভর করে।
পিটার - মনিকা পুনরায় ইনস্টল করুন

1
@ পেটারহ ব্লক ডিভাইসগুলির পক্ষে আজকাল 512 আকারের শারীরিক ক্ষেত্রের আকার থাকা আসলেই অস্বাভাবিক , তবে অনেকগুলি জিনিস (আমি / সিএস / শ্রেণি / ব্লকের সুনির্দিষ্ট তথ্য খুঁজে পাই না) 512 বাইটের ইউনিটগুলিতে রিপোর্ট করার জন্য ডিজাইন করা হয়েছে প্রকৃত ব্লকের আকার নির্বিশেষে।
র্যান্ডম 832

0

আমার সমাধান:

part_dev='/dev/hda2'

total_block=`tune2fs -l $part_dev | awk '/Block count/ {print $3}'`
block_size=`tune2fs -l $part_dev | awk '/Block size/ {print $3}'`

total_size=$(($total_block* $block_size))

echo $total_size

/dev/hda2পার্টিশনটি যেখানে অগত্যা মাউন্ট হয় না। এটি tune2fsভার্সন 1.42.4 দিয়ে পরীক্ষা করা হয়েছে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.