Academy and Foundation unixmens | Your skills, Your future
2.3K subscribers
6.68K photos
1.39K videos
1.24K files
6.17K links
@unixmens_support
@yashar_esm
[email protected]
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
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
برای ساختار و بررسی فایل سیستم در هر فایل سیستمی مجموعه دستورات کاربردی موجود است در اینجا ما بررسی خانواده ext خواهیم پرداخت
مشاهده پارامتر های فایل سیستم :
# tune2fs -l /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:
Last mounted on: /
Filesystem UUID: 2871717f-c9b8-43ec-b0bb-77c736ca22e0
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 8396800
Block count: 33586944
Reserved block count: 1679347
Free blocks: 31874103
Free inodes: 8374186
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1015
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Tue Jan 8 20:33:05 2013
Last mount time: Mon Mar 11 11:54:04 2013
Last write time: Tue Jan 8 20:41:21 2013
Mount count: 10
Maximum mount count: -1
Last checked: Tue Jan 8 20:33:05 2013
Check interval: 0 ()
Lifetime writes: 2967 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
First orphan inode: 7734872
Default directory hash: half_md4
Directory Hash Seed: a3d3d5fb-5720-472a-bc19-91bb4da2fa19
Journal backup: inode blocks
—————————————--
تعغیر Maximum Mount and Mount Count :
tune2fs -l /dev/sda1| grep -i mount
Last mount time: Mon Mar 11 11:54:04 2013
Maximum mount count: -1

به صورت پیش فرض این مقدار -۱ می باشد . این پارامتر به معنی این هست که در چه زمانی فایل سیستم شروع به اجرای e2fsck کند و دیسک را اسکن کند // -1 به معنی غیر فعال بودن می باشد .
برای فعال کردن برای مثال 20 دقیقه داریم :
# tune2fs -c 20 /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to 20
——————————————
خواهید دید خروجی به این صورت است :
# tune2fs -l /dev/sda1| grep mount
Last mount time: Mon Mar 11 11:54:04 2013
Maximum mount count: 20
Mount count: 10
——————————————
اگر فایل سیستم شما ext2 هست و قابلیت journal را ساپورت نمی کند می توانید با دستور زیر اقدام به کانورت به ext3 کنید :
tune2fs -j /dev/sdb1
—————————————-
با ساختار زیر می توان قابلیت هایی به ساختار فایل سیستم داد برای نمونه :
tune2fs -O extents,uninit_bg,dir_index /dev/sda2
ازجمله چند تعداد از ویژگی ها به قرار زیر است :

debug
bsdgroups
user_xattr
acl
uid16
journal_data
journal_data_ordered
journal_data_writeback
nobarrier
block_validity
discard
nodelalloc
——————————————
با دستور زیر می توان لیبل گذاری کرد :
# tune2fs -L /home /dev/sda1
tune2fs 1.41.12 (17-May-2010)

و بعد از تعغییر :
# tune2fs -l /dev/sda1 | grep -i name
Filesystem volume name: /home
——————————————
ادامه دارد ...

#file_syetem #linux #ext #tune2fs #storage @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