Superblock چیست؟
هنگامیکه یک سیستم فایل (مانند EXT2
یا EXT3
یا EXT4
و یا ZFS
در لینوکس را روی هارددیسک ایجاد میکنید آن به چندین بلاک تقسیم بندی میشود. بلاک که به منظور ذخیره سازی داده های کاربران و همچنین به منظور ذخیره سازی فراداده ها یا Metadata
استفاده میشوند و Metadat
یعنی داده ای درباره داده دیگر که در لینوکس ( و دیگر سیستم عاملهای یونیکسی) اطلاعاتی درباره سیستم فایل را نگه داری میکنند. به عبارت ساده تر Metadat
توصیفی از ساختار خود سیستم فایل می باشد که غالبا Metadat
رایج Superblock
میباشد.
هر سیستم فایل نسبت به سیستم فایل دیگر متفاوت است مانند EXT3
نسبت به EXT4
و هر سیستم فایل (پارتیشن) اندازه مختص خودش را دارد(زمانیکه آن سیستم فایل یا پارتیشن را ایجاد میکنیم).همچنین هر سیستم فایل وضیعت هایی 1) دارد مانند mount
بودن یا نبودن آن و بطور خلاصه هر سیستم فایل (پارتیشن) شامل یک Superblock
که حاوی اطلاعاتی درباره همان سیستم فایل (پارتیشن) می باشد.
برخی از اطلاعات:
- نوع سیستم فایل
- اندازه
- اطلاعات دیگری درباره ساختار Metadata
اگر این اطلاعات از بین برود شما بسیار دچار مشکل خواهید شد از این رو چندین نسخه اضافی از Superblock
ها در هر پارتیشن نگه داری میشود بطور مثال برای پارتیشن sda1
چندین نسخه Superblock
خودش بر روی خود sda1
نگهداری میشود در زمان های بحرانی می توانید از این کپی ها برای بازیابی Primary Superblock
استفاده کرد.
با استفاده از دستور زیر می توانید محل قرارگیری Primary Superblock
و کپی های آن را بر روی پارتیشن مشاهده کنید.
dumpe2fs <نام پارتیشن> | grep -i Superblock
بطور مثال برای مشاهده Superblock
های پارتیشن sda1
از دستور زیر استفاده میکنیم
sudo dumpe2fs /dev/sda1 |grep -i superblock
خروجی دستور به شکل زیر خواهد بود
dumpe2fs 1.43.4 (31-Jan-2017) Primary superblock at 0, Group descriptors at 1-1 Backup superblock at 32768, Group descriptors at 32769-32769 Backup superblock at 98304, Group descriptors at 98305-98305 Backup superblock at 163840, Group descriptors at 163841-163841 Backup superblock at 229376, Group descriptors at 229377-229377
حالا اگر بخواهیم برای فایل سیستمی به غیر از مواردی که ذکر کردیم دستور فوق را اجرا کنیم با خطا روبرو خواهیم شد در مثال زیر ما دستور فوق را بر روی فایل سیستم NTFS
تست کردیم که نتیجه جالب بود
خروجی دستور را ببینید
dumpe2fs 1.43.4 (31-Jan-2017) dumpe2fs: No such file or directory while trying to open /dev/sdc1 Couldn't find valid filesystem superblock.
همانطور که در خروجی میبینید با اجرای دستور سیستم به ما اعلام میکند که نمیتواند superblock
را پیدا کند