آموزش مقدمات لینوکس – بخش سیزدهم

آموزش مقدمات لینوکس

در این بخش از دوره آموزشی مقدمات لینوکس شما با مدیریت فایل سیستم و دستگاه های ذخیره ساز در لینوکس آشنا خواهید شد.

مدیریت فایل سیستم و دستگاه ذخیره ساز

اتصال دستگاه ها و ساختار فایل سیستم در ویندوز و لینوکس با یکدیگر متفاوت می باشد. یکی از مباحثی مهم در مدیریت فایل سیستم در لینوکس که در زمینه فایل سیستم و دستگاه های ذخیره ساز مورد توجه قرار می گیرد، مبحث Mount نمودن در لینوکس می باشد. در یک توضیح ساده، Mounting به معنی متصل شدن درایوها یا دیسک ها به فایل سیستم جهت استفاده در سیستم عامل می باشد.

به عنوان یک تست نفوذگر درک چگونگی مدیریت فایل سیستم در لینوکس و دستگاه ها ذخیره ساز برای بهره برداری از سیستم هدف یا حتی سیستم خود (کالی لینوکس) حائز اهمیت می باشد.

تست نفوذگران اغلب از یک دستگاه خارجی مانند هارد اکسترنال یا فلش مموری برای بارگذاری داده ها، ابزارهای تست و یا حتی سیستم عامل های دیگر استفاده می نمایند.

دایرکتوری dev

در سیستم عامل لینوکس یک دایرکتوری خاص وجود دارد که شامل فایل هایی است برای نمایش هر دستگاهی که به این سیستم عامل متصل شده است. نام این دایرکتوری dev می باشد. تصویر زیر برخی از محتویات این دایرکتوری را نمایش می دهد:

دایرکتوری dev

به صورت پیش فرض، دستگاه ها در این دایرکتوری به ترتیب حروف الفبا نمایش داده می شوند. شما ممکن است برخی از این دستگاه ها مانند cpu، cdrom یا موارد مشابه را بشناسید ولی برخی دیگر دارای نام های متفاوت و نسبتاً رمزنگاری شده ای هستند.

هر دستگاه بر روی سیستم عامل بوسیله یک فایل در دایرکتوری dev نمایش داده می شوند، از جمله دستگاه هایی که شاید قبلاً از آن ها استفاده نکرده باشید یا حتی متوجه آن ها نشده اید.

اگر محتویات دایرکتوری dev را بیشتر مورد بررسی قرار دهید، شما دستگاه هایی مانند sda1، sda2، sda3 ، sdb و sdb1 را مشاهده می کنید که این ها هارد درایو ها و پارتیشن های مربوط به آن ها بوده و یا مربوط به USB فلش ها و پارتیشن های مربوط به آن ها می باشند.

دایرکتوری dev

نمایش دستگاه های ذخیره ساز در لینوکس

لینوکس از برچسب های منطقی برای درایوها استفاده می کند که بر روی فایل سیستم Mount شده اند. این برچسب های منطقی بسته به مکانی که Mount شده اند، متفاوت خواهند بود، بدین معنی که ممکن است یک هارد دیسک برچسب های مختلف را در زمان های مختلف داشته باشد، این اختصاص نام، بسته به زمان و مکان Mount شدن آن می باشد.

پیش از این و در ابتدا لینوکس درایوهای مربوط به فلاپی که را با fd0 و هارد دیسک ها را با hda نمایش می داد. البته شما هنوز هم گاهی اوقات این نوع از نمایش را در برخی توزیع های لینوکس می دید(البته اگر فلاپی درایو هنوز وجود داشته باشد).

آشنایی با انواع سطوح دسترسی در لینوکس

با این وجود، هارد دیسک هایی که از رابط های IDE یا EIDE استفاده می کنند، هنوز هم در قالب های hda نمایش داده می شوند. درایوهای با رابط SATA و SCSI به عنوان sda نمایش داده می شوند.

بعضی اوقات درایوها به بخش هایی به عنوان پارتیشن تقسیم می شوند که با اعداد در انتهای اسامی آن ها مشخص می شوند. هنگامی که سیستم ها بیش از یک هارد دیسک داشته باشند، لینوکس با افزودن یک حرف به انتهای نام درایو که به ترتیب حروف الفبا می باشد، آن را به صورت سریالی نامگذاری می کند.

بنابراین درایو اول با نام sda بوده و درایو دوم با نام sdb و درایو سوم با نام sdc نمایش داده می شوند.

List Drives

Drive Partitions

به منظور مدیریت و جدا نمودن اطلاعات، می توان درایوها را به بخش های دیگر تقسیم بندی نمود. همانطور که در بخش پیشین نیز اشاره گردید، لینوکس هر پارتیشن را با اعداد که در انتهای نام درایو قرار می گیرد، برچسب گذاری می کند.

بدین ترتیب، اولین پارتیشن از اولین درایو SATA، برابر با sda1 خواهد بود.

Drive Partitions

در صورتی که بخواهید پارتیشن های موجود در سیستم لینوکس را مشاهده کنید و ظرفیت آن را ببینید، می توانید از دستور fdisk استفاده نمایید. با استفاده از سوییچ -l در ابزار fdisk، شما می توانید تمام پارتیشن های مربوط به درایوها را مشاهده نمایید.

دستور fdisk

Character and Block Devices

نکته دیگر در مورد نامگذاری فایل ها در دایرکتوری dev، حروف b و c در ابتدای بخش مربوط به سطح دسترسی آن، می باشد. این حروف بیانگر دو راهی است که دستگاه ها، داده ها را به داخل و خارج انتقال می دهند.

حرف c مخفف Character بوده و دستگاه هایی که به عنوان Character Device شناخته می شوند را نمایش می دهد.

به تعریف ساده، دستگاه هایی مثل Keyboard، پورت های Serial، پرینترها و … که کارکردشان و نحوه انتقال داده در آن ها بصورت کاراکتر به کاراکتر است Character Device گفته می شود. Character Device ها بصورت کلی به دستگاه هایی گفته می شود که می توانند Stream هایی از Character را بخوانند و یا بنویسند.

حرف b مخفف Block بوده و دستگاه هایی که به عنوان Block Device شناخته می شوند را نمایش می دهد.

به دستگاه هایی که در حوزه ذخیره سازی اطلاعات کار می کنند Block Device گفته می شود. اگر بخواهیم مثالی از Block Device ها بزنیم می توانیم به هارد دیسک ها، فلش درایوها، نوارهای مغناطیسی و از این قبیل دستگاه ها اشاره کنیم. Block Device ها بصورت کلی به دستگاه هایی گفته می شود که بوسیله استفاده از Buffer های بلوک بلوک شده File system از Buffer cache که توسط کرنل سیستم عامل تامین می شود می توانند عملیات I/O انجام دهند.

این چنین دستگاه ها نیاز به توان داده با سرعت بالا دارند و بنابراین داده ها را در بلاک ها ارسال و دریافت می کنند.(تعداد زیادی کاراکتر یا بایت به طور همزمان)

List Block Devices and Information with lsblk

دستور lsdlk که کوتاه شده list block بوده و برای لیست نمودن اطلاعات مربوط به Block Device ها در دایرکتوری dev می باشد.

نتیجه اجرای این دستور مشابه با خروجی دستور fdisk -l است ولی با این تفاوت که در خروجی دستور lsdlk، پارتیشن های مربوط به هر هارد نیز نمایش داده می شوند. لازم به ذکر است که این دستور برای اجرا، نیاز به دسترسی root ندارد.

دستور lsblk

همانطور که در تصویر بالا نیز قابل مشاهده می باشد، خروجی دستور lsblk فلاپی درایو را با نام fd0 و DVD درایو را با نام sr0 نیز نمایش می دهد.

MOUNTING AND UNMOUNTING

اغلب سیستم عامل های جدید، اقدام به Mount نمودن خودکار Storage Device ها، هنگام اتصال به سیستم عامل می نمایند. با این قابلیت، شما هنگامی که یک فلش درایو یا هارد دیسک را به سیستم متصل می نمایید، این دستگاه ها به صورت خودکار، به فایل سیستم متصل شده و امکان دسترسی به آن میسر خواهد بود.

بخشی از دایرکتوری که دستگاه به آن متصل می شود به عنوان Mount Point شناخته می شود. دو Mount Point اصلی در لینوکس /mnt و /media می باشند.

به عنوان یک قاعده کلی، هارد دیسک های داخلی در بخش /mnt اصطلاحاً Mount شده و دستگاه های خارجی مانند فلش درایو ها و هارد دیسک های خارجی، در بخش /media، Mount می شوند.

Mounting Storage Devices Yourself

در برخی از نسحه های لینوکس شما نیاز خواهد داشت تا یک درایو را برای دسترسی به اطلاعات آن، به صورت دستی Mount نمایید. به منظور Mount نمودن یک درایو به فایل سیستم، از دستور mount استفاده می گردد. جهت تعیین Mount Point برای دستگاه، باید یک دایرکتوری خالی را انتخاب نمایید.

برای Mount نمودن یک هارد دیسک جدید (sdb1) در دایرکتوری /mnt شما می توانید از دستور زیر استفاده نمایید:

mount /dev/sdb1 /mnt

اگر شما قصد Mount نمودن یک فلش درایو (sdc1) را در دایرکتوری /media دارید می توانید از دستور زیر استفاده نمایید:

mount /dev/sdc1 /media

فایل سیستم های Mount شده در یک سیستم در فایل /etc/fstab نگهداری می شوند که توسط سیستم در هربار راه اندازی مجدد خوانده می شود. fstab مخفف FileSystem Table می باشد.

Unmounting with umount

اگر شما از سیستم عامل های ویندوز و یا Mac استفاده کرده باشید، شما در حال انجام Unmount نمودن درایوها هستید بدون اینکه از آن آگاه باشید.

شما پیش از اینکه یک فلش درایو را از سیستم جدا کنید، آن را eject می نمایید تا از بروز مشکل برای اطلاعات ذخیره شده در آن و همچنین آسیب سخت افزاری جلوگیری به عمل آورید. در واقع Eject نام دیگری برای Unmount می باشد.

همانند دستور mount، شما می توانید از دستور unmount برای Unmount نمودن یک درایو از سیستم عامل استفاده نمایید.

دستور زیر نمونه ای از Unmount نمودن یک درایو می باشد:

unmount /dev/sdb1

توجه داشته باشید، دستگاهی که در حال فعالیت می باشد را نمی توان Unmount نمود. بنابراین اگر سیستم در حال خواندن و نوشتن بر روی دستگاه باشد، شما با اجرای دستور بالا، با پیام خطا مواجه خواهید شد.

ضمن تشکر از جناب آقای نصیری و وب سایت توسینسو، برخی از مطالب بخش مدیریت فایل سیستم در لینوکس از وب سایت توسینسو و نوشته جناب آقای امیرحسین کریم پور گرفته شده است.

درباره نویسنده: احسان نیک آور

ممکن است دوست داشته باشید