Academy and Foundation unixmens | Your skills, Your future
2.28K subscribers
6.65K photos
1.36K videos
1.23K files
5.97K links
@unixmens_support
@yashar_esm
unixmens@gmail.com
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
Download Telegram
سوال یکی از دوستان بهانه ای شد برای نوشتن این مطلب
مفهوم Metadata چیست ؟

در ابتدا باید مفهوم metadata را بدانید. با توجه به تعاریف ساده ای که در اینترنت وجود دارد در واقع metadata یک data برای سایر data ها است. یعنی اگر شما یک نامه حاوی اطلاعات داشته باشید ، metadata ی شما در واقع ادرس پستی و مواردی است که بر روی پاکت نامه قرار دارند خواهد بود. Metadata در ساختار پارتیشن ها و دیسک ها حاوی اطلاعاتی در خصوص داده ها می باشد.
برای مثال و درک بهتر ، اگر شما یک ماشین خریده باشید یک سری اطلاعات با کاتالوگ ماشین در اختیار شما قرار می گیرد که بهتر بتوانید از ماشین استفاده کنید که این اطلاعات با خود ماشین همراه نیستند ، اطلاعاتی از قبیل شماره ثبت ماشین ، مدل ، سال تولید ، اطلاعات بیمه و ... از جمله metadata ای هستند که برای یک ماشین سواری به شما می توان ارائه داد. به تمام اینها metadata گفته می شود. در مفاهیم سیستم عامل لینوکس و یونیکس metadata در لایه های مختلف سیستم عامل وجود دارد از جمله پارتیشن ها و فایل سیستم ها که یکی از این مفاهیم که دارای metadata است به عنوان superblock شناخته می شود.
#file_system #storage @unixmens
مفهوم superblock چیست ؟

در واقع superblock یک نوع metadata ی بسیار مهم برای فایل سیستم است که اطلاعاتی از قبیل نوع فایل سیستم ، اندازه ، وضعیت ، اطلاعات در خصوص سایر metadata های موجود ، ویژگی های فایل سیستم ، اندازه بلاک های فایل سیستم ، فضاهای خالی ، فضاهای پر شده ، محل قرارگیری جدول inode ها ، اطلاعات استفاده از دیسک و ... را در خودش نگه می دارد. تصور کنید که superblock شما از سیستم حذف شود !! چه اتفاقی می افتد ! در واقع سیستم دچار خلا ندانستن می شود و اطلاعاتی در خصوص محل داده های خودش نخواهد داشت ، با اینکه داده ها در سر جای خودشان قرار دارند. Superblock بسیار برای سیستم حیاتی است و به همین دلیل در فایل سیستم های قدرتمند این block بصورت خودکار در محل های مختلف دیسک یا پارتیشن شما بصورت خودکار backup گیری می شوند.

در واقع Superblock به عنوان یک metadata ی سطح بالا در ساختار فایل سیستم شناخته می شود. برای مثال اگر superblock پارتیشن var/ سیستم دچار اختلال بشود ، دیگر شما نمی توانید از این پارتیشن در حالت عادی بصورت mount شده استفاده کنید . در چنین مواردی است به شما کمک می کند و با استفاده از دستور fsck شما می توانید از superblock های backup گیری شده ای که در سطح فایل سیستم قرار دارند برای بازگردانی superblock ای که primary است استفاده کنید و مشکل را برطرف کنید. کپی های backup ای که از superblock ها گرفته می شود در تقریبا سراسر فایل سیستم پخش می شوند اما اولین offset از این داده ها در ابتدایی ترین block پارتیشن شما ذخیره می شود و به همین دلیل این قسمت را primary superblock می نامند. در فرآیند ریکاوری فایل سیستم با استفاده از fsck شما می توانید اطلاعات مربوط به superblock ها را با استفاده از دستور زیر مشاهده کنید :
dumpe2fs /dev/hdd | grep -i super
بعد از اینکه با دستور بالا توانستید superblock ها را مشاهده کنید می توانید با استفاده از دستور زیر ساختار superblock را تعمیر کنید ، فرض کنیم که آدرس superblock سالم ما برای ریکاوری عدد 163840 است بنابراین دستور ریکاوری به شکل زیر خواهد شد. توجه کنید که همیشه هم بدست آوردن superblock ها به این سادگی نیست و بعضا نیاز هست که فرمت کردن پارتیشن را شبیه سازی کنیم تا متوجه شویم که superblock ها در کجا قرار دارند :
/sbin/fsck.ext3 -b 163840 -B 1024 //dev/hdd
امیدوارم کمی مفهوم superblock برای شما جا افتاده باشد ، بحث در این خصوص زیاد است و فقط در این حد که متوجه شوید این مفهوم چقدر می تواند در بازسازی یک فایل سیستم به شما کمک کند کافیست ، برخی فایل سیستم ها فاقد superblock می باشند ، برای مثال فایل سیستم msdos ای که در لینوکس و ویندوز مشترک است هیچ superblock ای ندارد که مشکل را بتواند حل کند.
#file_system #storage #superblock @unixmens
دستور dumpe2fs :

ابزار dumpe2fs یک ابزار بسیار ساده ولی بسیار کاربردی برای بدست آوردن اطلاعات فایل سیستم های لینوکس است ، این ابزار در خصوص فایل سیستم های معروف لینوکس یعنی ext2 ext3 و ext4 بسیار کاربردی است. تمامی اطلاعاتی که این ابزار در اختیار ما قرار می دهد کاربردی نیستند اما می توان با فیلتر کردن خروجی اطلاعات اطلاعات بسیار مفیدی از فایل سیستم ها بدست آورد ، از جمله این اطلاعات مهم می توان به UUID فایل سیستم ، فعال بودن قابلیت Journaling در فایل سیستم ، تعداد inode ها ، میزان بلاک های خالی و پر فایل سیستم ، وضعیت فایل سیستم ، نوع سیستم عامل مورد پشتیبانی توسط فایل سیستم و بسیاری دیگر از موارد اشاره کرد ، ساختار استفاده از این دستور بسیار ساده است اما نکته در اینجاست که دستور بایستی با پارامتر h- وارد شود تا مقادیر خلاصه تری به ما نمایش داده شوند در غیر اینصورت خروجی بسیار زیاد خواهد بود ، به دستور زیر دقت کنید که اطلاعات مربوط به sdb2 را با فایل سیستم ext2 نمایش می دهد ، توجه کنید که ext2 قابلیت journaling ندارد : .
[root@localhost ~]# dumpe2fs -h /dev/sdb3
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 1a609cce-05b0-4525-a187-80d64694f4b3
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: not clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 327680
Block count: 1310720
Reserved block count: 65536
Free blocks: 1287586
Free inodes: 327669
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 319
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Filesystem created: Mon Jul 11 04:30:18 2016
Last mount time: Mon Jul 11 04:30:40 2016
Last write time: Mon Jul 11 04:30:40 2016
Mount count: 1
Maximum mount count: -1
Last checked: Mon Jul 11 04:30:18 2016
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
#file_system #storage #superblock #dumpe2fs @unixmens
Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
سوال یکی از دوستان بهانه ای شد برای نوشتن این مطلب
مفهوم Metadata چیست ؟

در ابتدا باید مفهوم metadata را بدانید. با توجه به تعاریف ساده ای که در اینترنت وجود دارد در واقع metadata یک data برای سایر data ها است. یعنی اگر شما یک نامه حاوی اطلاعات داشته باشید ، metadata ی شما در واقع ادرس پستی و مواردی است که بر روی پاکت نامه قرار دارند خواهد بود. Metadata در ساختار پارتیشن ها و دیسک ها حاوی اطلاعاتی در خصوص داده ها می باشد.
برای مثال و درک بهتر ، اگر شما یک ماشین خریده باشید یک سری اطلاعات با کاتالوگ ماشین در اختیار شما قرار می گیرد که بهتر بتوانید از ماشین استفاده کنید که این اطلاعات با خود ماشین همراه نیستند ، اطلاعاتی از قبیل شماره ثبت ماشین ، مدل ، سال تولید ، اطلاعات بیمه و ... از جمله metadata ای هستند که برای یک ماشین سواری به شما می توان ارائه داد. به تمام اینها metadata گفته می شود. در مفاهیم سیستم عامل لینوکس و یونیکس metadata در لایه های مختلف سیستم عامل وجود دارد از جمله پارتیشن ها و فایل سیستم ها که یکی از این مفاهیم که دارای metadata است به عنوان superblock شناخته می شود.
#file_system #storage @unixmens
Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
مفهوم superblock چیست ؟

در واقع superblock یک نوع metadata ی بسیار مهم برای فایل سیستم است که اطلاعاتی از قبیل نوع فایل سیستم ، اندازه ، وضعیت ، اطلاعات در خصوص سایر metadata های موجود ، ویژگی های فایل سیستم ، اندازه بلاک های فایل سیستم ، فضاهای خالی ، فضاهای پر شده ، محل قرارگیری جدول inode ها ، اطلاعات استفاده از دیسک و ... را در خودش نگه می دارد. تصور کنید که superblock شما از سیستم حذف شود !! چه اتفاقی می افتد ! در واقع سیستم دچار خلا ندانستن می شود و اطلاعاتی در خصوص محل داده های خودش نخواهد داشت ، با اینکه داده ها در سر جای خودشان قرار دارند. Superblock بسیار برای سیستم حیاتی است و به همین دلیل در فایل سیستم های قدرتمند این block بصورت خودکار در محل های مختلف دیسک یا پارتیشن شما بصورت خودکار backup گیری می شوند.

در واقع Superblock به عنوان یک metadata ی سطح بالا در ساختار فایل سیستم شناخته می شود. برای مثال اگر superblock پارتیشن var/ سیستم دچار اختلال بشود ، دیگر شما نمی توانید از این پارتیشن در حالت عادی بصورت mount شده استفاده کنید . در چنین مواردی است به شما کمک می کند و با استفاده از دستور fsck شما می توانید از superblock های backup گیری شده ای که در سطح فایل سیستم قرار دارند برای بازگردانی superblock ای که primary است استفاده کنید و مشکل را برطرف کنید. کپی های backup ای که از superblock ها گرفته می شود در تقریبا سراسر فایل سیستم پخش می شوند اما اولین offset از این داده ها در ابتدایی ترین block پارتیشن شما ذخیره می شود و به همین دلیل این قسمت را primary superblock می نامند. در فرآیند ریکاوری فایل سیستم با استفاده از fsck شما می توانید اطلاعات مربوط به superblock ها را با استفاده از دستور زیر مشاهده کنید :
dumpe2fs /dev/hdd | grep -i super
بعد از اینکه با دستور بالا توانستید superblock ها را مشاهده کنید می توانید با استفاده از دستور زیر ساختار superblock را تعمیر کنید ، فرض کنیم که آدرس superblock سالم ما برای ریکاوری عدد 163840 است بنابراین دستور ریکاوری به شکل زیر خواهد شد. توجه کنید که همیشه هم بدست آوردن superblock ها به این سادگی نیست و بعضا نیاز هست که فرمت کردن پارتیشن را شبیه سازی کنیم تا متوجه شویم که superblock ها در کجا قرار دارند :
/sbin/fsck.ext3 -b 163840 -B 1024 //dev/hdd
امیدوارم کمی مفهوم superblock برای شما جا افتاده باشد ، بحث در این خصوص زیاد است و فقط در این حد که متوجه شوید این مفهوم چقدر می تواند در بازسازی یک فایل سیستم به شما کمک کند کافیست ، برخی فایل سیستم ها فاقد superblock می باشند ، برای مثال فایل سیستم msdos ای که در لینوکس و ویندوز مشترک است هیچ superblock ای ندارد که مشکل را بتواند حل کند.
#file_system #storage #superblock @unixmens
Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
دستور dumpe2fs :

ابزار dumpe2fs یک ابزار بسیار ساده ولی بسیار کاربردی برای بدست آوردن اطلاعات فایل سیستم های لینوکس است ، این ابزار در خصوص فایل سیستم های معروف لینوکس یعنی ext2 ext3 و ext4 بسیار کاربردی است. تمامی اطلاعاتی که این ابزار در اختیار ما قرار می دهد کاربردی نیستند اما می توان با فیلتر کردن خروجی اطلاعات اطلاعات بسیار مفیدی از فایل سیستم ها بدست آورد ، از جمله این اطلاعات مهم می توان به UUID فایل سیستم ، فعال بودن قابلیت Journaling در فایل سیستم ، تعداد inode ها ، میزان بلاک های خالی و پر فایل سیستم ، وضعیت فایل سیستم ، نوع سیستم عامل مورد پشتیبانی توسط فایل سیستم و بسیاری دیگر از موارد اشاره کرد ، ساختار استفاده از این دستور بسیار ساده است اما نکته در اینجاست که دستور بایستی با پارامتر h- وارد شود تا مقادیر خلاصه تری به ما نمایش داده شوند در غیر اینصورت خروجی بسیار زیاد خواهد بود ، به دستور زیر دقت کنید که اطلاعات مربوط به sdb2 را با فایل سیستم ext2 نمایش می دهد ، توجه کنید که ext2 قابلیت journaling ندارد : .
[root@localhost ~]# dumpe2fs -h /dev/sdb3
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 1a609cce-05b0-4525-a187-80d64694f4b3
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: not clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 327680
Block count: 1310720
Reserved block count: 65536
Free blocks: 1287586
Free inodes: 327669
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 319
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Filesystem created: Mon Jul 11 04:30:18 2016
Last mount time: Mon Jul 11 04:30:40 2016
Last write time: Mon Jul 11 04:30:40 2016
Mount count: 1
Maximum mount count: -1
Last checked: Mon Jul 11 04:30:18 2016
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
#file_system #storage #superblock #dumpe2fs @unixmens