PDA

مشاهده نسخه کامل : مدیریت فایل سیستم‌ها بخش دوم



MKH
30-06-07, 17:03
استفاده از دستور mount برای اتصال سیستم فایلها
لینوکس به صورت خودکار دستور mount -a (اتصال تمام فایل سیستمها) را در هربار بوت اجرا می‌کند. بنابراین استفاده از این دستور فقط در شرایط خاصی نیاز می‌باشد. بنابراین یک کاربر رده متوسط و یک مدیر سیستم می‌توانند به منظورهای زیر از این دستور استفاده نمایند:
-نمایش دیسکها، پارتیشن ها و فایل سیستم های راه دور (شبکه) که در حال حاضر متصل هستند.
-اتصال موقت یک سیستم فایل
تمام کاربران می‌توانند از دستور mount بدون هیچ گزینه و پارامتری استفاده نماید. همانطوری که قبلا نشان داده شد، هنگامی که از این دستور بدون هرگونه گزینه و پارامتری استفاده می‌کنید، فایل سیستمهایی که در حاضر متصل هستند، نمایش داده می‌شوند.
عمومی ترین وسایلی که بصورت دستی متصل می‌شوند، عبارتند از دیسکهای فلاپی و درایوهای CD-ROM. البته با توجه به نوع محیط گرافیکی و نوع توزیعی که استفاده می‌کنید، این دیسک‌ها ممکن است هنگام کلیک بر روی آیکون آنها و یا وارد نمودن آنها به درایو به طور خودکار متصل شوند.
در صورتی که می‌خواهید یک سیستم فایل را بطور دستی متصل نمایید، اطلاعات موجود در فایل fstab می‌تواند به شما کمک کند. شما یک گزینه را مشخص می نمایید و باقیمانده اطلاعات لازم از این فایل دریافت می‌شود. بنابراین اطلاعات موجود در فایل fstab به شما کمک می‌کند تا فایل سیستم‌ها را خیلی سریع متصل نمایید. مواردی که می‌توانید آنها را بصورت سریع متصل نمایید عبارتند از:


-درایو CD-ROM: در صورتی که یک دیسک CD-ROM با فرمت استاندارد (ISO9660) در درایو قرار دارد، میتوانید آنرا با استفاده از دستور زیر متصل نمایید:

$ mount /mnt/cdrom
به طور پیش گزیده، درایو CD-ROM در دایرکتوری mnt/cdrom یا cdrom/ متصل می‌شود. اطلاعات مورد نیاز این دستور به طور خودکار از فایل fstab دریافت می‌شوند. برای نمایش محتویات دیسکی که اکنون متصل شده است، کافی است با استفاده از دستور cd وارد مسیر آن شده و سپس دستور ls را تایپ نمایید:

$ cd /mt/cdrom

$ ls
-دیسک‌های فلاپی: برای دیسک‌های فلاپی نیز می‌توانید همانند بالا رفتار نمایید. دستور زیر باعت اتصال دیسکهای فلاپی خواهد شد:

$ mount /mnt/floppy
البته در صورتی که از لیبرانت یا دبیان استفاده می‌کنید، محل اتصال فلاپی floppy/ خواهد بود.
-پارتیشن‌های ویندوز: برای پارتیشن‌هایی که در فابل fstab تعریف نموده‌اید نیز می‌توانید مانند بالا عمل کنید:

$ mount /windows
در هر سه مورد فوق، می‌توانید از آدرس دستگاه‌های سخت افزاری درایوهای CD-ROM، پارتیشن دیسک سخت و فلاپی نیز استفاده نمایید. (dev/cdrom و dev/fd0 و dev/hda1) گزینه‌هایی وجود دارد که می‌توانید آنها را به همراه دستور mount به کار ببرید. این گزینه‌ها عبارتند از:


- گزینه t auto- : در صورتی که هنگام متصل نمودن یک دیسک یا فلاپی، مطمئن نیستید که سیستم فایل آن چیست، می‌توانید از این گزینه تعیین خودکار نوع سیستم فایل استفاده نمایید.
- گزینه r- : در صورتی که فقط نیاز به خواندن یک سیستم فایل دارید و نمی خواهید آنرا تغییر دهید، می‌توانید آنرا بوسیله این گزینه بصورت فقط-خواندنی متصل نمایید.
- گزینه w- : این گزینه برعکس گزینه بالا بوده و فایل سیستم را بصورت خواندن/نوشتن متصل می‌کند.
برخی گزینه های دستور mount وجود دارند که فقط مخصوص یک سیستم فایل مشخص هستند. برای کسب اطلاعات در مورد این گزینه‌ها کافی است از دستور man mount استفاده نمایید.
استفاده از دستور umount برای بستن اتصال یک فایل سیستم
هنگامی که کار شما با سیستم فایلی که موقتا آنرا متصل نموده‌اید تمام شد، و یا برای خارج کردن موقت یک سیستم فایل در حال اتصال دائمی، می‌توانید از دستور umount برای خارج نمودن آن از حالت اتصال استفاده نمایید. این دستور، سیستم فایل را از نقطه اتصال آن جدا می‌نماید. برای استفاده از این دستور، می‌توانید نام نقطه اتصال و یا نام ابزار را وارد نمایید. برای مثال:

$ umount /mnt/floppy
این دستور، دستگاه فلاپی را (که به طور معمول fd0 است) از نقطه اتصال آن جدا میکند. این کار را به صورت زیر نیز می‌توانید انجام دهید:

$ umount /dev/fd0

نکته: در صورتی که هنگام umount کردن یک فایل سیستم با پیغام Device is busy مواجه شدید، درخواست شما با شکست مواجه شده است. علت آن می‌تواند یک پروسه فعال بر روی فایل‌های آن سیستم فایل و یا یک فایل باز باشد. با بستن این پروسه (مثلا برنامه مدیر فایل) می‌توانید فایل سیستم را بدون اشکال umount نمایید.


استفاده از دستور mkfs برای ایجاد یک سیستم فایل
این امکان وجود دارد که روی هر دیسک یا پارتیشنی که انتخاب می‌کنید، یک سیستم فایل ایجاد نمایید. این کار با استفاده از دستور mkfs صورت می‌گیرد. با اینکه از این دستور بیشتر برای ایجاد سیستم فایل روی دیسک‌های سخت استفاده می‌شود، از آن می‌توانید برای ایجاد سیستم فایل روی فلاپی دیسک‌ها نیز استفاده نمایید. در صورتی که دستور format سیستم عامل داس را به یاد داشته باشید، این دستور مشابه آن عمل می‌کند. در زیر مثالی از این دستور نشان داده شده است:

$ mkfs -t ext2 /dev/fd0

mke2fs 1.35-WIP (01-Aug-2003)

Filesystem label=

OS type: Linux

Block size=1024 (log=0)

Fragment size=1024 (log=0)

184 inodes, 1440 blocks

72 blocks (5.00%) reserved for the super user

First data block=1

1 block group

8192 blocks per group, 8192 fragments per group
184 inodes per group
Writing inode tables: done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 38 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.


نکته: باید با استفاده از این دستور بتوانید تمام انواع سیستم فایلهای مورد پشتیبانی در لینوکس را ایجاد نمایید.
پس از ایجاد فایل سیستم می‌توانید آنرا mount نموده، وارد آن شده و فایل‌ها و دایرکتوری‌های خود را در آن ایجاد نمایید.
با استفاده از ابزار tune2fs که توسط کاربر ریشه قابل اجراست، می‌توانید سیستم فایل‌های خود را برای خطا بررسی نموده و یا آنها را از فرمت ext2 به ext3 تبدیل نمایید تا از امکانات و مزایای سیستم فایل روزنامه‌ای برخوردار گردند.
کسب اطلاعات از وضعیت فضای دیسک
به اتمام رسیدن فضای دیسک روی کامپیوتر رخداد چندان خوشایندی نیست! با استفاده از ابزارهای ارائه شده برای کنترل میزان مصرف دیسک سخت، می‌توانید از پر شدن آن جلوگیری نمایید.
نمایش فضای خالی سیستم با استفاده از df
با استفاده از دستور df می‌توانید میزان فضای دیسک باقیمانده روی سیستمتان را نمایش دهید. برای نمایش فضای دیسک بر روی تمام فایل سیستم‌های متصل شده، این دستور را بدون هیچ گزینه‌ای تایپ نمایید:

$ df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/hda3 3068312 2387788 680524 78% /

/dev/hda2 31109 2871 26632 10% /boot

/dev/hda5 1020060 414636 605424 41% /home

/dev/hda8 10079540 6543248 3126636 68% /Data

/dev/hda7 14323968 9146824 5177144 64% /mnt/D
خروجی این فرمان مقدار فضای آزاد موجود روی سیستم را بصورت بلاکهای ۱ کیلوبایتی نمایش می‌دهد. برای ایجاد یک خروجی که راحت تر بتوان آنرا خواند، کافی است گزینه h را به این دستور اضافه نمایید:

$ df -h

Filesystem Size Used Avail Use% Mounted on

/dev/hda3 3.0G 2.3G 660M 79% /

/dev/hda2 31M 2.9M 27M 10% /boot

/dev/hda5 997M 405M 592M 41% /home

/dev/hda8 9.7G 6.3G 3.0G 68% /Data

/dev/hda7 14G 8.8G 5.0G 64% /mnt/D
سایر گزینه‌هایی که می‌توانید به همراه این فرمان بکار ببرید عبارتند از:
- گزینه t- : با تایپ فرمت سیستم فایل پس از این گزینه، تنها سیستم فایل‌های با این فرمت نمایش داده می‌شوند.
- گزینه x- : با تایپ فرمت سیستم فایل پس از این گزینه، سیستم فایل‌های با این فرمت، نمایش داده نخواهند شد.
- گزینه a- : با تایپ این گزینه، سیستم فایل‌هایی که دارای فضای حقیقی نیستند (مانند proc که توضیح داده شد) نیز نمایش داده می‌شوند.
بررسی مقدار فضای مصرف شده با استفاده از du
برای پیدا کردن اینکه چه میزان فضا توسط یک دایرکتوری خاص مصرف شده است، می‌توانید از دستور du استفاده نمایید. هنگامی که این دستور را بدون هیچ آرگومان و گزینه ای بکار می‌برید، تمام شاخه‌های زیر شاخه جاری لیست شده و فضای مصرفی هر یک نیز نمایش داده می‌شود. در پایان نیز du یک اندازه مجموع روی صفحه چاپ می‌کند.
این دستور راه خوبی است برای اینکه بفهمید یک کاربر یا یک پوشه خاص، چه میزان از فضای دیسک شما را اشغال نموده است. در زیر مثالی از خروجی این فرمان نمایش داده شده است:

$ du -h /usr/lib/j2se/1.4/bin/

512 /usr/lib/j2se/1.4/bin/i386/green_threads

512 /usr/lib/j2se/1.4/bin/i386/native_threads

1.5K /usr/lib/j2se/1.4/bin/i386

314K /usr/lib/j2se/1.4/bin
کار کردن با سیستم فایل لینوکس
همانطوری که در مقالات پیشین اشاره کردم، سیستم فایل لینوکس در یک ساختار درختی وارونه قرار گرفته است. این ساختار از ریشه (/) آغاز می‌شود که درون آن دایرکتوری‌ها و زیردایرکتوری‌های مختلفی قرار گرفته اند. بعنوان یک مدیر سیستم باید بررسی کنید که تمام دیسک‌های شما در این ساختار برای کاربرانتان و یا خودتان (!) موجود باشند. همچنین باید بدانید که در محل‌های مورد نیاز فضای خالی کافی برای ذخیره داده‌ها وجود دارد یا خیر و در صورت اشکال، این اشکالات را برطرف نمایید.
سیستم فایل لینوکس کاملا متفاوت از سیستم فایل‌های مورد استفاده در سیستم عامل ویندوز مایکروسافت است. بجای تخصیص یک نام درایو (مانند A، C و...) برای هر یک از دستگاه‌ها مانند دیسک سخت، درایو CD-ROM و...، تمام این دستگاه‌ها در دایرکتوری‌های ویژه‌ای متصل (mount) می‌شوند. شما باید بتوانید این نقاط اتصال را ایجاد نمایید. پس به دایرکتوری‌هایی که در آنها پارتیشن‌های مختلف یک دیسک سخت یا درایوهای فلاپی و CD-ROM متصل می‌شوند، نقاط اتصال یا mount point گویند.
برای نمایش اینکه در حال حاضر چه پارتیشن‌هایی از دیسک سختتان به سیستم فایل متصل شد است، باید از دستور mount استفاده نمایید. به این منظور یک پنجره ترمینال باز کرده و دستور زیر را تایپ نمایید. خروجی دستور را در زیر آن مشاهده می‌کنید:

$ mount

/dev/hda3 on / type ext3 (rw,errors=remount-ro)

proc on /proc type proc (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

/dev/hda2 on /boot type ext3 (rw,errors=remount-ro)

/dev/hda5 on /home type ext3 (rw,errors=remount-ro)

/dev/hda8 on /Data type ext3 (rw,errors=remount-ro)

/dev/hda7 on /mnt/D type vfat (rw,gid=105,umask=002)
توجه: همانطوری که می‌بینید، proc و devpts نیز به عنوان سیستم فایل نشان داده شده اند. در حقیقت این ها نوع خاصی از سیستم فایل هستند که به هیچ پارتیشنی در سیستم مربوط نمی‌باشند ولی در دستور mount نمایش داده می‌شوند.
در مثال بالا، پارتیشن‌های متصل عبارتند از dev/hda2، dev/hda3، dev/hda5، dev/hda8 و dev/hda7 که فضای موجود در دایرکتوری های boot، /، home،Data و mnt/D را فراهم می‌کنند. به کلام دیگر، نقطه اتصال پارتیشن dev/hda2 دایرکتوری boot و به همین ترتیب است. در دایرکتوری boot اطلاعات لازم برای بوت شدن و مدیر بوت سیستم (گراب یا لیلو) قرار می‌گیرد. این اطلاعات شامل برنامه boot loader و فایل‌های پیکربندی آن است. دایرکتوری home حاوی داده‌های کاربران تعریف شده روی سیستم است. هر کاربر دارای یک دایرکتوری معمولا همنام با نام کاربری خود در دایرکتوری home است. / نیز بخش اصلی سیستم لینوکس است که اکثر دایرکتوری‌های سیستمی و فایل‌های سیستمی سیستم عامل در آن قرار می‌گیرند. در مثال بالا پس از کلمه type می‌توانید نوع فرمت پارتیشن مورد نظر را ببینید. مثلا ext3 یا vfat.
قرار دادن بخش های مختلف سیستم فایل لینوکس روی پارتیشن‌های مختلف می‌تواند محاسن زیادی داشته باشد. مثلا در صورتی که دایرکتوری مربوط به کاربران یعنی home را در یک پارتیشن جداگانه قرار دهید و آن پارتیشن پر شود، اختلالی در سیستم بوجود نخواهد آمد. ولی در صورتی که این دایرکتوری در کنار دایرکتوری ریشه در یک پارتیشن قرار گیرند، پر شدن آن منجر به پرشدن کل فضای دیسک سیستم شده و در کار کل سیستم اختلال ایجاد می‌کند. البته در سیستم‌های خانگی معمولا این اتفاق کمتر می‌افتد و قرار دادن کل سیستم در پارتیشن ریشه به احتمال زیاد مشکلی ایجاد نخواهد کرد، ولی این مسئله در سیستم‌هایی که به نحوی عملیات سرویس دادن را انجام می‌دهند، بسیار حیاتی و مهم است.
اتصال سیستم فایل
هنگامی که سیستم لینوکس شما بوت می‌شود، بیشتر پارتیشن‌های مربوط به لینوکس به طور خودکار به سیستم فایل متصل می‌شوند. بنابراین در این بخش من سعی خواهم کرد بیشتر در مورد چگونگی اتصال ابزارها و پارتیشن‌های دیگر صحبت کنم.
شما می‌توانید پارتیشن‌هایی را که سایر سیستم عاملها مانند ویندوز اختصاص داده شده اند، در لینوکس متصل نموده و اطلاعات خود را در آنها ذخیره نموده یا از آنها بخوانید. همچنین می‌توانید به سادگی دستگاه‌های فلاپی درایو و CD-ROM را به سیستم فایل خود متصل نمایید.
فایل سیستم های مورد پشتیبانی در لینوکس ردهت
برای مشاهده اینکه اکنون چه نوع سیستم فایلهای در کامپیوترتان در حال استفاده می‌باشند، از دستور cat مطابق مثال زیر استفاده نمایید :

$ cat /proc/filesystems

ext3

ext2

cramfs

nodev ramfs

msdos

vfat

iso9660

romfs
استفاده از fstab برای تعریف سیستم فایلهای قابل اتصال
دیسک‌های سخت و سیستم فایل‌های شبکه‌ای که هر روز استفاده می‌کنید، به طور معمول طوری تعریف شده اند که در هر بار بوت سیستم فایل‌های شما را متصل میکند. این تعریفها در فایل etc/fstab ذخیره می‌شوند که در زیر نمونه ای از این فایل نشان داده شده است:

LABEL=/ / ext3 defaults,errors=remount-ro 1 1

LABEL=/boot /boot ext3 defaults,errors=remount-ro 1 2

/dev/hda5 /home ext3 defaults,errors=remount-ro 0 2

/dev/hda8 /Data ext3 defaults,errors=remount-ro 0 2

/dev/hda6 none swap sw 0 0

proc /proc proc defaults 0 0

/dev/fd0 /floppy vfat,auto defaults,user,noauto 0 0

/dev/hdc /cdrom udf,iso9660 defaults,user,noauto,ro 0 0
تمام سیستم فایلهایی که در این فایل وجود دارند هنگام بوت به طور خودکار متصل میشوند. بجز آنهایی که جلوی آنها عبارت noauto قید شده است.در مثال بالا، سیستم فایلهای / ، boot و home هنگام بوت متصل میشوند در حالی که floppy و درایو CD-ROM، هنگام بوت به طور خودکار متصل نخواهند شد. همچنین این امکان وجود دارد تا پارتیشن های ویندوز را نیز در در این فایل وارد نمود تا بتوان به داده های آنها از داخل لینوکس دسترسی پیدا کرد. برای این کار، کافی است با تایپ دستور su و کلمه عبور ریشه، بصورت کاربر ریشه وارد شده و با استفاده از یک ویرایشگر متنی مانند vi فایل etc/fstab را ویرایش نمایید:

$ vi /etc/fstab
و خط زیر را در آخر آن اضافه نمایید:

/dev/hda1 /windows vfat defaults,noauto,umask=002 0 0

هشدار: لینوکس ردهت نمی تواند درایوهای Fat و Fat32 را هنگام بوت به صورت خودکار متصل نماید. به همین علت هم کلمه noauto در خط مربوط به مثال بالا ذکر شده است. در صورتی که این خط را ننویسید، ردهت در هنگام بوت از ادامه فرایند بوت جلوگیری نموده و اجازه نخواهد داد تا کامپیوترتان بوت شود. برای عبور از چنین شرایطی و اصلاح این خط می‌توانید با فشردن دگمه i هنگام بوت و ورود به حالت سوال و جواب، اجرای این خط را متوقف کرده و پس از ورود به سیستم، فایل fstab را با استفاده از یک ویرایشگر متنی مانند vi ویرایش و اصلاح نمایید.
در سایر توزیع‌ها مانند لیبرانت یا دبیان می‌توانید پارتيشن‌های ویندوز خود را بطور خودکار در ابتدای بوت متصل نمایید.
اکنون به مواردی که می‌توانید در یک خط فایل fstab ذکر نمایید می پردازیم:

-فیلد اول: در این قسمت می‌توانید نام ابزار مربوط به سیستم فایل را وارد نمایید. برای سیستم فایل‌های مجازی مانند proc در این قسمت کلمه none وارد می‌شود. همچنین در این بخش امکان استفاده از UUID ها نیز وجود دارد. استفاده از UUID به این معنی است که شما بجای وارد نمودن نام ابزار سخت افزاری، نام پارتیشن مربوطه را وارد می‌کنید. در مثال بالا، دو پارتیشن / و root به این صورت تعریف شده اند. مزیت این کار این است که در صورتی که یکی از این پارتیشن‌ها را به یک ابزار دیگر با آدرس متفاوت منتقل کنید، نیازی به ویرایش فایل fstab وجود ندارد. زیرا نام آنها همچنان ثابت مانده است. در لینوکس دیسک‌های سخت IDE به نام hd شناخته می‌شوند. نخستین دیسک سخت سیستم hda نام دارد. دیسک سخت دوم نیز hdb و به همین ترتیب. پارتیشن اول دیسک سخت اول سیستم hda1 نام دارد و به همین ترتیب. پس در مثال بالا، به سیستم می‌گوییم تا پارتيشن اول دیسک سخت اول سیستم را متصل نماید.
-فیلد دوم: در این قسمت نقطه اتصال یک پارتیشن در سیستم فایل مشخص می‌شود. اطلاعات موجود در این پارتیشن از طریق نقطه اتصال آن قابل دسترسی خواهد بود.
-فیلد سوم: در این قسمت باید نوع سیستم فایل را مشخص نمایید که می‌تواند یکی از سیستم فایلهایی باشد که در توزیع شما پشتيبانی شده و پارتيشن مورد نظر دارای آن سیستم فایل است.
-فیلد چهارم: گزینه های دستور mount. مثلا در مثال بالا، همانطور که توزیح داده شد، گزینه noauto از اتصال خودکار سیستم فایل هنگام بوت جلوگیری می‌کند و یا گزینه ro سیستم فایل را بصورت فقط خواندنی متصل می‌کند. این گزینه‌ها با استفاده از کاما از هم جدا می‌شوند.

نکته: به طور معمول، فقط کاربر ریشه مجوز اتصال و برداشتن اتصال سیستم فایلها را داراست. برای دادن این اختیار به سایر کاربران، باید آنها را در بخش گزینه‌ها یا فیلد چهارم وارد نمایید. برای این کار کلمه users را اضافه نمایید.
-فیلد پنجم: عدد نوشته شده در این فیلد مشخص می‌کند که آیا سیستم فایل نیاز به dump شدن دارد یا خیر. شماره ۱ نشانگر وجود این نیاز و ۲ نشانگر عدم نیاز به این کار است. Dump به معنای نوشتن محتویات در هنگام بروز خطا در یک فایل جداگانه می‌باشد.

-فیلد ششم: عدد نوشته شده در این فیلد نشاندهنده این است که آیا این سیستم فایل نیاز دارد تا بوسیله برنامه تصحیح فایل سیستم (fsck) بررسی شود یا خیر. عدد ۱ نشاندهنده وجود این نیاز و عدد ۲ نشانگر عدم نیازبه این کار است.
منبع:تکنوتاکس