Freebsd پارتیشن ها را با برچسب آنها سوار می کند. FreeBSD: نصب خودکار فایل سیستم های NFS و SMBFS با AMD. تبدیل تصویر از فایل Nero.nrg به فایل iso

استاندارد FHS در اصل برای ساده سازی ساختار دایرکتوری توزیع های لینوکس متعدد طراحی شده بود. و فقط بعداً برای سایر سیستم های مشابه یونیکس (از جمله قبیله BSD) سازگار شد. با این حال، این سلسله مراتب دایرکتوری FreeBSD است که می تواند به عنوان نمونه ای از پایبندی نمونه به روح FHS باشد. و به معنای واقعی کلمه انحراف قطعه در آن از حرف آن همیشه از نظر عملکردی مشروط است.

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

مخالفت بین دایرکتوری های مشترک و غیر اشتراکی به دلیل ماهیت شبکه ای ذاتی یونیکس به طور کلی و FreeBSD به طور خاص است. یعنی داده‌های مربوط به ماشین محلی (مثلاً فایل‌های پیکربندی برای دستگاه‌های آن) باید در دایرکتوری‌هایی جدا از دایرکتوری‌هایی قرار داشته باشند که داده‌های آن‌ها از سایر ماشین‌های موجود در شبکه، محلی یا سراسری (نمونه‌ای از آن‌ها فقط داده‌های کاربر نیست. ، بلکه برنامه ها).

ماهیت تقابل دایرکتوری های تغییرناپذیر و قابل تغییر را با یک مثال به راحتی می توان توضیح داد. بنابراین، همان برنامه‌های کاربری طبیعتاً باید تغییر ناپذیر باشند (یا بهتر است بگوییم، فقط برای مدیر سیستم برای اصلاح در دسترس هستند، اما نه برای خود کاربر، که از آنها در کار خود استفاده می‌کند). در عین حال، این برنامه ها در حین کار خود نه تنها فایل های داده، مثلاً متون یا تصاویر (تغییر ماهیت آنها بدون نظر واضح است)، بلکه انواع اطلاعات خدمات مانند فایل های گزارش، فایل های موقت و غیره را تولید می کنند. که باید در دایرکتوری های جدا از فایل های اجرایی واقعی برنامه ها، کتابخانه ها، فایل های پیکربندی و غیره که برای راه اندازی آنها ضروری است، گروه بندی شوند.

پایبندی دقیق به مفهوم جداسازی دایرکتوری های مشترک و غیر اشتراکی، تغییرناپذیر و تغییرناپذیر از یکدیگر این امکان را فراهم می کند که در یک سلسله مراتب فایل درختی واحد، شاخه های فردی آن را به صورت فیزیکی جدا کند، یعنی به شکل مستقل. سیستم های فایلواقع در دستگاه های ایزوله (دیسک، برش دیسک، پارتیشن؛ در مورد کلیو در رسانه های از راه دور و متصل به شبکه، اما اکنون در این مورد بحث نخواهد شد). دلایل زیادی برای این امر و افزایش عملکرد و افزایش قابلیت اطمینان و صرفاً ملاحظات راحتی وجود دارد، اما اکنون در مورد آنها صحبت نمی کنیم. زیرا اکنون تنها چیزی که برای ما مهم است این است که این شاخه های درخت فایل باید در یک سیستم فایل مشترک گنجانده شوند.

یادداشت قبلی گفته بود که هر فایل (از جمله دایرکتوری) توسط سیستم نه با نام خود، بلکه توسط شناسه منحصر به فرد ورودی آن در جدول inodes شناسایی می شود. ابزارهایی برای مشاهده این شناسه فایل ها وجود دارد. یکی از آنها دستور ls با گزینه i است که شناسه هر فایل نامگذاری شده را لیست می کند. برای دایرکتوری ریشه - $ ls -i داده شده است

تصویری تا حدی غیرمنتظره به ما نشان می دهد (برای سادگی، اطلاعات مربوط به فایل های معمولی و پیوندهای نمادین در ریشه از خروجی حذف می شود و فهرست های باقی مانده بر اساس شناسه هایشان مرتب می شوند) 2 ../ 2 ./ 2 dev/ 2 home / 2 tmp/ 2 usr/ 2 var/ 3 cdrom/ 4 mnt/ 5 root/ 8257 dist/ 8258 bin/ 8294 proc/ 8295 sbin/ 16512 stand/ 24768 etc/ 24776 boot/

از این مثال (مربوط به سیستم فایل ماشینی که این خطوط روی آن نوشته شده است) می توان دریافت که 7 دایرکتوری دارای شناسه های دیجیتال یکسان برابر با 2 هستند. سوال این است که منحصر به فرد بودن اینجا چیست؟

دو عنصر اول لیست به راحتی قابل درک هستند: ./ نشان دهنده دایرکتوری فعلی (در این مورد، ریشه)، و ../ دایرکتوری والد دایرکتوری فعلی است. و از آنجایی که، طبق تعریف، چیزی بالاتر از ریشه در سلسله مراتب فایل وجود ندارد، برای خود ایستاده است. بنابراین جای تعجب نیست که ./ و ../ شناسه یکسانی داشته باشند - آنها عناوین مختلف (پیوندهای سخت، یا به عبارت دیگر، نام‌های تکراری) برای دایرکتوری ریشه یکسان هستند.

اما همان طور که در نگاه اول به نظر می رسد، مقدار شناسه برای دایرکتوری های /dev، /home، /tmp، /usr، /var نیاز به توضیح دارد. با این حال، ساده است: همه آنها دایرکتوری هایی هستند که سیستم های فایل مستقل بر روی آنها نصب شده یا در آنها قرار دارند دستگاه های فردیپارتیشن‌های دیسک، مانند دایرکتوری‌های /home، /usr، /var، یا سیستم‌های فایل مجازی که روی هیچ دستگاه دیسک واقعی ساخته نمی‌شوند (دایرکتوری dev / با سیستم فایل دستگاه و در این مورد، دایرکتوری tmp / در که فایل سیستم نصب شده است). حافظه دسترسی تصادفی، که هنوز مورد بحث قرار نگرفته است). و از آنجایی که جدول inodes برای هر فایل سیستم متفاوت است، جای تعجب نیست که ریشه هر یک از آنها با شماره 2 مشخص شود، inodeهای موجود در آنها در سیستم مرجع خود شماره گذاری شده اند.

بنابراین، mount کردن شامل گنجاندن یک سیستم فایل از سیستم به هر یک از دایرکتوری‌های موجود در سیستم ریشه است (الزاماً مستقیماً در ریشه نیست، می‌تواند در هر سطح تودرتو باشد، که در زیر نشان داده خواهد شد). بدون این، دایرکتوری ها و فایل های چنین سیستم نصب شده ای به سادگی غیر قابل دسترسی هستند. درک این موضوع هنگام مواجهه با عباراتی مانند "create /usr filesystem" مهم است. با توجه به آنچه در بالا گفته شد، واضح است که چیزی (با دستور newfs) فقط نوعی سیستم فایل انتزاعی ایجاد می شود و "نام" خود را فقط در زمان نصب در فهرست مشخص شده به دست می آورد.

جالب اینجاست که شناسه دایرکتوری برای mount (به آن نقطه mount، mount point نیز گفته می شود) فقط در زمان نصب به دست می آید. برای تأیید این موضوع، بیایید یک آزمایش ساده انجام دهیم. در دایرکتوری mnt / که مخصوص نصب سیستم های فایل موقت نصب شده است، می توانید سه زیر شاخه /mnt/disk، mnt/iso، /mnt/usb را ببینید (این روی سیستم من است، من آنها را برای راحتی خودم ایجاد کردم؛ در ابتدا دایرکتوری mnt/ در FreeBSD خالی است). هنگامی که سیستم شروع به کار می کند، چیزی در آنها نصب نمی شود و حالت معمول آنها خالی بودن است. اگر به شناسه های آنها نگاه کنید، چیزی شبیه به این خواهید دید: $ ls -i1 /mnt 16:46 ttyp0 18 disk/ 24 iso/ 19 usb/

حالا بیایید یک درایو فلش با رابط USB را در / mnt / usb (این همان چیزی است که من برای آن در نظر گرفته‌ام) نصب کنیم و بررسی را تکرار کنیم. و می بینیم: 18 دیسک / 24 iso / 2 usb /

یعنی شناسه دایرکتوری هایی که خالی ماندند (/mnt/disk و /mnt/iso) تغییر نکردند و شناسه دایرکتوری /mnt/usb به طور جادویی به 2 تغییر کرد. زیرا در زمان نصب آن به ریشه برای سیستم فایل خودش و نقطه شروع برای محاسبه inodeهای همه فایل های نوشته شده روی آن.

بیایید کمی منحرف شویم و پیوندهای سخت را به خاطر بسپاریم که با استفاده از آنها می توان نام های مختلفی را به یک inode و بلوک های داده مرتبط اختصاص داد. اکنون واضح است که چرا همه چنین فایل های تکراری باید در یک سیستم فایل باشند: به هر حال، سیستم های فایل مختلف دارای شماره گذاری inode های خود هستند که مطابقت ندارند و تشخیص آنها با اعداد غیرممکن است (در غیر این صورت، سیستم چگونه خواهد بود. دایرکتوری های /usr و /var را از مثال ما متمایز کنید زیرا نام فایل ها برای او بسیار بی توجه است). برای پیوندهای نمادین که دارای اینودهای خاص خود هستند (در واقع هیچ چیز جز آنها) با شناسه آنها شماره گذاری شده در سیستم مرجع سیستم فایلی که در آن قرار دارند، چنین محدودیتی وجود ندارد. و پیوندهای نمادین می توانند در هر جایی قرار بگیرند (از جمله در یک ماشین راه دور نه تنها در یک پارتیشن متفاوت).

با این حال، اجازه دهید به مثال دایرکتوری ریشه خود بازگردیم. با توجه به تمام مواردی که در نظر گرفته شد، می توان دریافت که تعدادی از شاخه های آن بر روی پارتیشن های جداگانه قرار دارند و سیستم های فایل خود را تشکیل می دهند (در واقع، به همین دلیل است که ما هر دوی آنها را ایجاد کردیم). و بنابراین، همه آنها نیاز به نصب دارند. تمرین نصب

هدف از نصب دستور mount است که یا به صورت خودکار در هنگام بوت شدن سیستم یا به صورت دستی از خط فرمان. در واقع، به معنای کامل، در هر صورت فقط فایل سیستم ریشه به طور خودکار نصب می شود. هنگام شروع از یک سی دی نجات یا سایر رسانه های ایمنی لزوماً روی دیسک قرار نمی گیرد، می تواند روی یک دیسک مجازی در RAM قرار گیرد. با این حال، روند نصب فایل سیستم ریشه به اندازه پیروزی سوسیالیسم در مقیاس جهانی اجتناب ناپذیر است: همانطور که سوسیالیسم، بدون پیروزی در مقیاس جهانی، به سادگی توانایی خود را برای وجود از دست می دهد (که ما مدت ها قبل مشاهده کردیم). بنابراین یک سیستم عامل بدون سیستم ریشه وجود دارد. در لینوکس، این حالت وحشت کرنل را ایجاد می کند، تقریباً حالتی که رهبران ما 20 سال پیش در آن قرار گرفتند. درست است، معلوم شد که آنها از لینوکس قوی تر بودند "و خیلی سریع بهبود یافتند، بنابراین تا به حال باید یات را راه اندازی مجدد کنیم" (یا راه اندازی مجدد؟ و داریم قوی تر می شویم :)). با این حال، این در مورد مونتاژ صدق نمی کند که اکنون سعی می کنم آن را به شما ارائه دهم.

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

بنابراین دستور mount. در واقع، این یک خانواده کامل از برنامه ها است که هر کدام برای نصب انواع خاصی از سیستم های فایل نه تنها UFS، بلکه هر یک از FreeBSD پشتیبانی شده طراحی شده اند. لیست این موارد بسیار گسترده است شما می توانید با مرور دایرکتوری /sbin در مورد این موضوع ایده ای در مورد آن بدست آورید: $ ls /sbin/mount*

که به ما /sbin/mount /sbin/mount_msdosfs /sbin/mount_smbfs /sbin/mount_cd9660 /sbin/mount_nfs /sbin/mount_std /sbin/mount_devfs /sbin/mount_ntfs /sbin/bin/mount_mounts_bins/ /mount_umapfs /sbin/mount_fdescfs /sbin/mount_nwfs /sbin/mount_unionfs /sbin/mount_linprocfs /sbin/mount_portalfs /sbin/mount_mfs /sbin/mount_procfs

هر دستور از این لیست مسئول نوع دیگری از سیستم فایل است که در ادامه به برخی از آنها باز خواهیم گشت. در عین حال، ما فقط به / sbin / mount واقعی که برای کار با UFS و UFS2 طراحی شده است توجه می کنیم.

که از خط فرمان فراخوانی می شود، دو آرگومان نیاز دارد، نام دستگاهی که قرار است نصب شود و نقطه اتصال (یعنی دایرکتوری که فایل سیستم زیربنایی باید در آن نصب شود). نام دستگاه باید به یک patrician اشاره داشته باشد که قبلاً روی یک قطعه BSD موجود با یک سیستم فایل UFS2 (UFS) ایجاد شده روی آن علامت گذاری شده است، به عنوان مثال، $ mount /dev/ads0d /usr

سیستم فایل را روی پارتیشن مشخص شده در پوشه /usr در ریشه درخت فایل نصب می کند. اگر سیستم فایل روی دستگاه ایجاد نشده باشد یا نوع دیگری به جز 4.2BSD داشته باشد، یک پیام خطایی به دنبال نشانی از سوپر بلوک نادرست ظاهر می شود: بر خلاف یکی به همین نام. ابزارهای لینوکس، دستور Mount FreeBSD خود نمی داند چگونه نوع سیستم فایل را تشخیص دهد.

نقطه نصب الزامات زیر را دارد: الف) دایرکتوری با آن نام باید در زمان نصب وجود داشته باشد، و ب) تا حد امکان خالی باشد. اولی اجباری است، دومی واقعاً نه. نصب به دایرکتوری با هر فایلی به راحتی انجام می شود (به یاد داشته باشید، در لینوکس در سال های نه چندان دور این باعث از کار افتادن سیستم شد)، اما تمام محتویات آن تا زمانی که نصب نشود غیرقابل دسترسی خواهد بود. و اگر فایل های موجود در آن نقش مهمی برای هر زیرسیستم ایفا کنند، این می تواند انواع عواقب بدی را به همراه داشته باشد. برای مثال، اگر محتویات دایرکتوری /tmp با نصب یک فایل سیستم در آنجا قفل شود در حالی که سیستم پنجره X در حال اجرا است، نتیجه احتمالاً خرابی سرور X است. خوشبختانه، در صورت لزوم، می توانید یک مانت ترکیبی را انجام دهید (به زیر مراجعه کنید).

در فرم مشخص شده، نصب با برخی از ویژگی های پیش فرض انجام می شود: سیستم فایل برای خواندن / نوشتن در حالت به اصطلاح در دسترس خواهد بود. noasync (که در آن عملیات ابرداده به صورت همزمان و عملیات داده به صورت ناهمزمان انجام می شود). شما می توانید این موقعیت را با استفاده از مقادیر گزینه -o تغییر دهید. تعداد کمی از آنها وجود دارد، اما عملا اصلی ترین آنها در این مرحله برای ما خواهد بود:

  • async یک حالت کاملا ناهمزمان را ارائه می دهد (علی رغم هشدارهای شوم در یادداشت های قبلی، من بعداً در مورد وضعیتی صحبت خواهم کرد که می توان این را توجیه کرد).
  • برعکس، همگام سازی، گنجاندن یک حالت کاملاً همزمان (اگرچه من واقعاً نمی دانم که چرا این عملاً ضروری است)؛
  • noatime یک گزینه بسیار مفید است که از به‌روزرسانی ویژگی زمان آخرین دسترسی روی فایل‌ها جلوگیری می‌کند، که عملکرد را بسیار بهبود می‌بخشد.
  • rdonly فایل سیستم را در حالت فقط خواندنی (گاهی اوقات لازم) سوار می کند.
  • union همان گزینه‌ای است که به شما امکان می‌دهد یک اتصال اتصال انجام دهید، که در آن محتویات قبلی دایرکتوری mount point قابل مشاهده است. درست با برخی محدودیت ها، man (8) mount را ببینید.

چندین مقدار دیگر برای گزینه -o وجود دارد که مانع از قرار دادن انواع خاصی از فایل‌ها در سیستم فایل نصب شده می‌شود، مانند فایل‌های اجرایی (-o noexec)، فایل‌های دستگاه (-o nodev)، یا فایل‌هایی با این موارد. -صدا کرد بیت suidity (-o nosuid)، اما آنها عمدتاً برای مدیران سرور اهمیت عملی دارند و اهداف امنیتی را انجام می دهند. روی دستگاه رومیزی فرم منظم mount چیزی شبیه به این خواهد بود: $ mount -o noatime /dev/ads0d /usr; $ mount -o noatime /dev/ads0e /var; $ mount -o noatime /dev/ads0f /home

همه اینها فقط برای نصب فایل سیستم های FreeBSD صدق می کند. با این حال، در عمل، اغلب لازم است که انواع دیگر سیستم های فایل را در درخت دایرکتوری آن ترکیب کنیم. این به ویژه برای ISO9660 (سیستم فایل معمول برای همه سی دی ها به جز مک) و FAT ضروری است. نوع متفاوت. در این مورد، دستور mount مناسب باید به طور صریح فراخوانی شود، به عنوان مثال $ mount_cd9660 /dev/acd0 /cdrom

برای سوار کردن فشرده یا $ mount_msdosfs /dev/ad## /mnt

برای FAT "اما از هر نوعی (از جمله FAT32). با این حال، این کار را می توان به طور غیر مستقیم با تعیین دستور mount با گزینه -t filesystem_type نیز انجام داد. بنابراین، دستور $ mount -t ext2fs /dev/ad## /mnt/ لینوکس

فایل را نصب کنید سیستم لینوکس(اگر ویژگی مربوطه در هسته گنجانده شده باشد). در این مورد، مانت استاندارد برای پارتیشن‌های BSD به سادگی با دستور /mount_ext2fs جایگزین می‌شود، که برای نصب پارتیشن‌های ext2fs (و ext3fs نیز اما، البته، بدون هیچ‌گونه توابع لاگ) طراحی شده است. یعنی فرم $ mount -t fstype ... ...

معادل کامل دستور $mount_fstype ... ... خواهد بود

همه مانت‌های سیستم فایل (از جمله رسانه‌های قابل جابجایی) در FreeBSD به امتیازات superuser نیاز دارند. در میان مقادیر گزینه -o در اینجا، بر خلاف نسخه لینوکس فرمان mount، هیچ پارامتر کاربری وجود ندارد که امکان نصب توسط کاربران عادی را فراهم کند. درست است، راه‌های مختلفی برای دور زدن این موضوع وجود دارد، اما اکنون نمی‌توان درباره آن‌ها صحبت کرد. راه‌اندازی نصب خودکار

با این حال، در عمل، نصب دستی فقط برای سیستم های فایل که به ندرت استفاده می شود استفاده می شود. تمام فایل‌های سیستم‌هایی که اساساً برای عملکرد FreeBSD مهم هستند در هنگام راه‌اندازی سیستم به‌طور خودکار نصب می‌شوند و اغلب در حالت نیمه خودکار، به اصطلاح، استفاده می‌شوند.

برای نصب خودکار، برنامه mount در حال اجرا است بوت استرپاز اسکریپت های اولیه فایل پیکربندی /etc/fstab را جستجو می‌کند و هر آنچه را که پیدا می‌کند، به استثنای چند مورد (در زیر) نصب می‌کند.

فایل /etc/fstab به‌طور خودکار هنگام نصب FreeBSD تولید می‌شود که شامل تمام فایل‌سیستم‌های مورد نیاز برای ادامه کار می‌شود. با این حال، بعداً می‌توان آن را به صورت دستی ویرایش کرد تا دستگاه‌های جدیدی برای نصب یا گزینه‌های اضافی برای دستگاه‌های از قبل ارائه شده معرفی شوند.

فایل /etc/fstab یک پایگاه داده ساده است قالب متن(تفکیک فیلدها با فاصله یا برگه ها)، از جمله فیلدهای زیر:

  • نام فایل دستگاه دستگاهی که فایل سیستم در آن قرار دارد، مشابه اولین آرگومان فرمان mount هنگام استفاده دستی از آن.
  • نقطه مونت نقطه (مربوط به آرگومان دوم دستور mount) است.
  • نوع FS نوع سیستم فایل، به همان روشی که مقدار گزینه -t مشخص شده است.
  • گزینه‌ها گزینه‌های نصب اضافی، مشابه مقادیر گزینه -o؛
  • شرایط اجرای دامپ کپی رزرو کنیدسیستم فایل با ابزار dump.
  • برای بررسی سیستم فایل با ابزار fsck شرایط # را پاس کنید.

در یک FreeBSD تازه نصب شده، /etc/fstab الزاماً شامل ورودی‌های زیر می‌شود (مثالی برای اولین برش از دیسک اصلی در اولین کانال IDE): # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1a / ufs rw 1 1 /dev/ad0s1b هیچکدام sw 0 0 را عوض نکنید

اگر توصیه های افراد منطقی (و پیش فرض های sysinstall) را دنبال کنید و برخی از شاخه های سیستم فایل را از ریشه انتخاب کنید، ورودی هایی مانند /dev/ad0s1d /var ufs rw 0 0 /dev/ad0s1e / usr ufs rw 0 0 /dev/ ad0s1f /tmp ufs rw 0 0

مسئول سیستم فایل با دایرکتوری های خانگی کاربر است.

بدیهی است که در فیلد Options، می‌توانید هر مقدار موجود (و معقول) گزینه -o را اضافه کنید (با کاما، بدون فاصله) به عنوان مثال noatime برای همه سیستم‌های فایل و برای /tmp نیز async. ، زیرا محتویات این دایرکتوری پس از راه اندازی مجدد ذخیره نمی شود.

موارد فوق در مورد فایل سیستم هایی که به طور خودکار در هنگام راه اندازی نصب شده اند اعمال می شود. با این حال، هیچ کس برای سیستم هایی که هر از چند گاهی به هم متصل می شوند، زحمت ایجاد ورودی در /etcfstab را نمی دهد، در این مورد، می توان آنها را طبق یک طرح ساده نصب کرد (این همان چیزی است که در بالا در حالت نیمه اتوماتیک منظورم بود). بنابراین، برای یک درایو CD، می توانید یک خط اضافه کنید (در واقع، به طور خودکار هنگام تولید فایل /etc/fstab ظاهر می شود) /dev/acd0 /cdrom cd9660 ro,noauto 0 0

که در آن گزینه ها، همانطور که ممکن است حدس بزنید، امتناع از نصب در هنگام راه اندازی (noauto) و حالت فقط خواندنی (ro) را تجویز می کنند. پس از آن، برای نصب سی دی، کافی است فقط نقطه نصب را مشخص کنید - $ mount / cdrom

ورودی های مشابهی را می توان برای همه درایوهای قابل جابجایی (Zip، درایوهای USB، حتی فلاپی دیسک) و برای پارتیشن های غیر BSD (FAT یا Ext2fs) انجام داد. به هر حال، می توانید بلافاصله پس از ایجاد تغییرات در /etc/fstab، بدون اینکه منتظر راه اندازی مجدد دستگاه باشید، سیستم های فایل را طبق طرح بخشوده نصب کنید.

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

با این حال، در برخی موارد (به عنوان مثال، هنگام فعال یا غیرفعال کردن مکانیسم به‌روزرسانی‌های نرم‌افزار یا انجام بررسی یکپارچگی)، لازم است که سیستم‌های فایل را به‌صورت دستی جدا کنید (و دوباره نصب کنید)، که برای آن از دستور umount استفاده می‌شود. به یک آرگومان واحد نیاز دارد که نقطه اتصال سیستم فایل را مشخص کند تا از درخت دایرکتوری "حذف" شود، به عنوان مثال: $ umount /tmp

شما می توانید چندین فایل سیستم را با یک خط جدا کنید: $ umount /usr /var /home

از طرف دیگر، همه فایل‌سیستم‌های نصب‌شده یا همه فایل‌سیستم‌های فهرست‌شده در /etc/fstab (به جز root)، که به گزینه‌های $ umount -A نیاز دارند.

یا $ umount -a

به ترتیب. همچنین می‌توان فایل‌سیستم‌های انواع خاصی را با تعیین مقادیر گزینه -t unmount کرد. بنابراین، دستور $ umount -t ufs

فقط پارتیشن های BSD را بدون تأثیر بر روی سی دی و هر چیز دیگری که در سیستم دخیل است، unmount می کند.

سیستم های فایل در زمان unmount نباید استفاده شوند، یعنی نباید به فایل های موجود در آنها دسترسی داشته باشند. بنابراین، مکان یک فایل سیستم در برخی دایرکتوری ها دلیل کافی برای امتناع از unmount کردن آن است (با پیامی مانند دستگاه مشغول است)، به همین دلیل است که هیچ یک از دستورات بالا قادر به جدا کردن سیستم فایل root نیستند. اما خواندن یک فایل داده توسط برخی از برنامه ها دلیلی برای امتناع از جدا کردن سیستم حامل این فایل نیست (در همه این موارد، در حالت کلی، ارتباط بین یک فایل در حافظه و یک فایل روی دیسک فقط در لحظه ای که تغییرات نوشته می شود رخ می دهد.

با این حال، شما همچنین می توانید فایل سیستمی را که برای این کار استفاده می کنید، unmount کنید، باید دستور umount را با گزینه -f بدهید. درست است ، این می تواند منجر به خطا شود ، بنابراین بهتر است به آن متوسل نشوید مگر اینکه کاملاً ضروری باشد. و گزینه ی اجباری unmount هیچ تاثیری روی سیستم فایل روت نخواهد داشت Bulk mount

برای ادامه کار پس از انجام عملیات سطح پایین بر روی سیستم های فایل، باید آنها را دوباره سوار کنید. این را می توان نه تنها بدون راه اندازی مجدد، بلکه بدون نصب فردی خسته کننده نیز انجام داد. کافی است به گزینه -a متوسل شوید: $ mount -a

که تمام فایل‌سیستم‌هایی را که ورودی‌هایی در /etc/fstab برای آنها وجود دارد مانت می‌کند. در این صورت سعی می شود آنهایی که با پرچم noauto مشخص شده اند سوار شوند. برای جلوگیری از این امر، می توانید نوع سیستم فایل را نیز مشخص کنید. یعنی دستور $ mount -a -t ufs

فقط پارتیشن‌های BSD را نصب می‌کند، بدون تجاوز به سی‌دی یا درایوهای فلش. یا، برعکس، می‌توانید برخی از سیستم‌های فایل فهرست شده در /etc/fstab را از فرآیند mount سراسری حذف کنید، به عنوان مثال، آن‌هایی که غیرضروری هستند. این لحظه FAT's: $ mount -a -t nomsdosfs به جای نتیجه گیری مقدمه

به هر حال، دستور mount بدون گزینه و آرگومان (و در این شکل، برخلاف تمام مواردی که در بالا توضیح داده شد، می توان آن را نیز کاربر معمولی) فایل سیستم های نصب شده فعلی را لیست می کند و نقطه اتصال، شرایط آن و نحوه عملکرد را نشان می دهد. به عنوان مثال، برای ماشینی که این خطوط روی آن نوشته شده است، خروجی آن به این صورت خواهد بود: /dev/ad0s1a on / (ufs, local, noatime, soft-updates) devfs on /dev (devfs, local) /dev/ccd0e در /var (ufs, local, noatime, soft-updates) /dev/ccd1e در /usr (ufs, local, noatime, soft-updates) /dev/ccd2e در /home (ufs, local, noatime, soft-updates) /dev/ md0 در /tmp (ufs، local، noatime، async)

خط اول خروجی نشان می دهد که پارتیشن /dev/ad0s1a در دایرکتوری ریشه ما نصب شده است، یک سیستم فایل UFS (مخصوصا در این مورد UFS2، اما آنها در خروجی فرمان mount تفاوتی ندارند) با به روز رسانی های نرم افزار حمل می کند. مکانیزم فعال است، محلی است (یعنی درایوهای شبکه این ماشین قرار دارند که توسط فرمان mount نیز نصب می‌شوند) و تحت تأثیر به‌روزرسانی ویژگی atime قرار نمی‌گیرد.

اما پس از آن خطوطی برای دستگاه ها و سیستم های فایل وجود دارد که در روایات قبلی مورد بحث قرار نگرفت. علاوه بر این، اگر به فایل /etc/fstab مربوط به پیکربندی فعلی نگاه کنیم: $ بیشتر /etc/fstab /dev/ad0s1b none swap sw 0 0 /dev/ar0s1b none swap sw 0 0 /dev/ad0s1a / ufs rw، noatime 1 1 /dev/ccd0e /var ufs rw,noatime 2 2 /dev/ccd1e /usr ufs rw,noatime 2 2 /dev/ccd2e /home ufs rw,noatime 2 2 /dev/acd0 /cdrom cd9660 ro,noauto 0 / dev/da0s1 /mnt/usb ext2fs rw,noauto,noatime 0 0 /dev/md0 /tmp mfs rw,noatime,async,-s32m 2 0

خواهیم دید که یکی از خطوط خروجی (devfs در / dev (devfs، local) اصلاً در بین ورودی های آن مطابقت ندارد. این دستگاه ها و سیستم های فایل چیست؟

در مورد دستگاه هایی مانند /dev/ccd0؟ فعلاً فقط می گویم که اینها آرایه های RAID نرم افزاری هستند (بیشتر در مورد آنها بعداً بحث خواهد شد). و در اینجا سیستم های فایل مجازی devfs و mfs هستند که مستقیماً در یادداشت بعدی در مورد آنها هستند.

NTFS - فایل "بومی". سیستم ویندوز. بنابراین، فقط اتصال درایوهای فلش، دیسک های سخت یا سایر رسانه های قابل جابجایی که برای ما ناشناخته است، کار نخواهد کرد (در حقیقت، کار خواهد کرد، اما مشکلاتی وجود خواهد داشت). بنابراین، ما در حال ارائه کتابچه راهنمای جامع خود در این مورد هستیم.


  1. مثل همیشه همه چیز با . نصب درایور برای NTFS: #cd /usr/ports/sysutils/fusefs-ntfs #make install clean
  2. با شروع با FreeBSD 10، فیوز بخشی از هسته است. آن را با ماژول های سیستم لود کنید #nano /boot/loader.conf fuse_load="YES"

    بعد از راه اندازی مجدد کار خواهد کرد. در جلسه جاری، این ماژول را به صورت دستی بارگذاری کنید

    فیوز #kldload

    با دستور می توانید بررسی کنید که آیا ماژول بارگذاری شده است یا نه

    #kldstat

    اگر لیست شامل فیوز.ko، یعنی همه چیز اوکی است.

    #kldstat ID Refs اندازه آدرس نام 1 3 0xffffffff80200000 1fa7c38 هسته 2 1 0xffffffff821a9000 1a7c8 fuse.ko

  3. بعد، ما باید تصمیم بگیریم که سیستم چگونه یک درایو فلش یا یک هارد اکسترنال را ببیند: #dmesg | grep da

    خروجی چیزی شبیه این خواهد بود:

    Da0 در اتوبوس umass-sim0 0 scbus1 هدف 0 lun 0 da0: s/n 00H79BHRYGX22JBN جدا شد (da0:umass-sim0:0:0:0): حاشیه da0 در گذرگاه umass-sim0 0 scbus1 هدف 0 lun 0 da0 نابود شد: دسترسی مستقیم قابل جابجایی SPC-4 دستگاه SCSI da0: شماره سریال 00H79BHRYGX22JBN da0: انتقال 40.000 مگابایت بر ثانیه da0: 14870 مگابایت (30453760 بخش های 512 بایتی) da0: quirks=0x12 da1 در اتوبوس umass-sim1 1 scbus2 هدف 0 lun 0 da1: s/n 8968888304C9BB52 جدا شد (da1:umass-sim1:1:0:0): حاشیه da1 را در اتوبوس umass-sim1 1 scbus2 هدف 0 lun 0 da1 نابود کرد: دستگاه SCSI-2 قابل جابجایی مستقیم da1: شماره سریال 8968888306C9BB52 da1: انتقال 40.000 مگابایت بر ثانیه da1: 1999 مگابایت (4093952 بخش 512 بایت) da1: quirks=0x2

    می بینیم که در سیستم دو فلش درایو با شناسه داریم da0و da1. در مثال ما فقط از یک درایو فلش استفاده خواهیم کرد. da0.

  4. با دستور زیر آن را سوار کنید: ntfs-3g /dev/da0 /mnt

    /dev/da0- این درایو فلش ما است، ما در بند 3 متوجه شدیم.
    /mntنقطه کوه است. او می تواند هر کسی باشد.

    اگر خطایی رخ داد، پارتیشن فلش درایو را سوار کنید. بعد از ورود

    Ntfs-3g /dev/da0

    TAB را فشار دهید و پارتیشن های فلش مموری را ببینید

    Da0 da0s1

    و این بخش را سوار کنید

    Ntfs-3g /dev/da0s1 /mnt

  5. به دایرکتوری که درایو فلش را نصب کرده ایم می رویم و محتویات آن را در آنجا می بینیم: #cd /mnt #ll مجموع 13 drwxrwxrwx 1 چرخ ریشه 0 4 نوامبر. 17:23 اطلاعات حجم سیستم/ -rwxrwxrwx 1 چرخ ریشه 9 نوامبر 4 18:05 xxx.xxx* -rwxrwxrwx 1 چرخ ریشه 22 نوامبر 4 18:04 بایگانی ZIP - WinRAR.zip* -rwxrwxrwx 1 root wheel 9904 4 نوامبر 18:04 لیست مایکروسافت آفیس Excel.xlsx*

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

  6. برای جدا کردن درایو فلش، ابتدا دایرکتوری را که در آن نصب شده است رها کنید. به عنوان مثال، #cd /

    و بعد از آن از دستور استفاده می کنیم

    #umount /mnt

    توجه داشته باشید که استدلال یک درایو فلش نیست، بلکه نقطه نصب آن است!
    مهم: بلافاصله پس از وارد کردن فرمان، درایو فلش را بیرون نکشید! بیرون کشیدن آن تنها پس از چند ثانیه امکان پذیر خواهد بود، زمانی که اعلان ورودی دوباره در ترمینال ظاهر می شود!

من اغلب به این واقعیت توجه می کنم که سؤالات ساده اغلب در اینترنت به خوبی پوشش داده نمی شوند. این احتمالاً به این دلیل است که همه استادان مطمئن هستند که هیچ کس هرگز چنین سؤالات احمقانه ای نخواهد پرسید، زیرا همه این را می دانند. اما تمرین من نشان داده است که دقیقاً چنین سؤالات ساده کوچکی هستند که نه تنها برای مبتدیان، بلکه برای مدیران جدی که به سادگی مجبور به مقابله با این موضوع نبوده اند، بیشترین فراوانی را دارند. حتی مدیران جدی هم هر روز این کار را نمی کنند، اما برای اینکه فراموش نکنند، بدون اینکه به کسی اعتراف کنند، یک نوع تقلب را برای خود نگه می دارند. بیایید همه چیز را درست کنیم. اکنون یاد خواهید گرفت که چگونه در 5 دقیقه اضافه کنید HDDدر FreeBSD بنابراین. ابتدا ترجمه خواهد شد آموزش کاملبرای درک فرآیند، و در پایان وجود خواهد داشت لیست کوتاهی از اقدامات، که فقط شامل لیستی از دستورات به عنوان یک برگه تقلب خواهد بود.

دستورالعمل های دقیق همراه با توضیحات

انتخاب نام هارد

ابتدا باید نام دستگاهی را که به تازگی اضافه کرده ایم مشخص کنیم. دستور زیر در این مورد به ما کمک می کند:

لیست دیسک Geom

یا این دستور:

فهرست برنامه کنترل دوربین

در یک سیستم واقعی، این دستورات بیشتر نشان خواهند داد اطلاعات مفید، یعنی: نام دستگاه ها و شماره سریال آنها.

قبل از نصب یک دستگاه جدید، می دانستیم که سیستم ما روی ada0 نصب شده است، بنابراین منطقی است که ما دیسک جدید ada1. شما می توانید این را با نام دستگاه جدید، شماره سریال یا حجم آن تعیین کنید.

حالا بیایید بررسی کنیم که آیا نشانه گذاری روی دیسک جدید ما وجود دارد یا خیر

gpart show ada1

دیسک هیچ پارتیشنی ندارد.

حذف نشانه گذاری موجود

اگر دیسک قبلا استفاده شده است و نیاز به حذف پارتیشن از آن وجود دارد، کافی است:

Gpart تخریب -F ada1

ایجاد نشانه گذاری GPT

ابتدا باید یک طرح دیسک ایجاد کنیم. من به شدت توصیه می کنم MBR را فراموش کنید و به یک جدید، راحت تر و کاربردی تر بروید - GPT.

یک پارتیشن GPT روی دیسک ایجاد کنید، سپس بررسی کنید که چه اتفاقی افتاده است:

gpart create -s gpt /dev/ada1 gpart show ada1

اکنون یک پارتیشن دیسک GPT داریم. از خروجی، می توانید ببینید که کاملاً کل دیسک، از LBA 34 شروع می شود و به LBA 8388541 ختم می شود، خالی است. LBA 0-33 - توسط سیستم برای جدول پارتیشن رزرو شده است.

فرض کنید باید دو پارتیشن در این درایو ایجاد کنیم:

  • مبادله- تعویض پارتیشن
  • داده ها- بخشی از نوع ufs برای ذخیره هر داده ای که نیاز داریم.

ایجاد بخش ها (برش ها)

اگر نصب بر روی مدرن انجام شود دیسک های سخت، که اندازه سکتور آن = 4 کیلوبایت است، پس هنگام ایجاد پارتیشن (پارتیشن) باید از alignment استفاده کنید. دو راه برای ادامه وجود دارد: 1) اگر پارامترهای بخش را در بلوک ها مشخص کنیم، سپس شماره بلوک را در مضرب 8 وارد کنیم، به عنوان مثال: -b 40; 2) اگر اندازه بخش را بر حسب بایت مشخص کردیم یا اصلاً شروع و اندازه را مشخص نکردیم از پارامتر استفاده کنید -a 4k، که ابتدا و انتهای بخش را با بخش های 4 کیلوبایتی متناسب می کند. از آنجایی که ما در این مثالاگر نصب آزمایشی را روی یک هارد دیسک مجازی انجام می‌دهیم، می‌توان آن را حذف کرد. در هر صورت، قبل از ایجاد پارتیشن، باید دقیقاً اندازه سکتور درایو خود را بدانید، در غیر این صورت باعث ترمزهای وحشتناکی در کار می شود.

حالا بیایید بخش ها را ایجاد کنیم. برای این کار یک دستور gpart add با گزینه های مختلف وجود دارد. پارامتر اول -t- نوع فایل سیستم در حال ایجاد را نشان می دهد. در مورد ما، دو نوع استفاده خواهد شد: freebsd-swap و freebsd-ufs. در زیر دو پارامتر اختیاری وجود دارد: - شماره LBA را نشان می دهد که پارتیشن باید از آن ایجاد شود. اگر این پارامتر را مشخص نکنید، پارتیشن به طور خودکار از اولین LBA رایگان ایجاد می شود. -s- اندازه پارتیشن را در LBA نشان می دهد. اندازه یک بلوک LBA = 512 بایت. مطلوب است که تعداد بلوک های LBA را مشخص کنید، اما در کیلو/مگا/گیگا/… بایت (پسوند k/M/G) نیز امکان پذیر است. اگر این پارامتر را مشخص نکنید، پارتیشن تا حداکثر LBA ممکن در ناحیه خالی ایجاد می شود. همچنین می توانید یک برچسب بخش را به عنوان پارامتر تعیین کنید، به عنوان مثال: -ل تعویض 1- در این صورت، برچسب /dev/gpt/swap1 ایجاد می شود که با آن می توانید راحت تر به پارتیشن دسترسی داشته باشید. آخرین پارامتر مورد نیاز مسیر دیسک است. در مورد ما: /dev/ada1.

بیایید دو پارتیشن ایجاد کنیم و سپس ببینیم چه چیزی بدست می آوریم. اولین پارتیشن را بدون تعیین LBA اولیه، اما با تعیین اندازه 1 گیگابایت (2097152 بلوک) ایجاد می کنیم. ما پارتیشن دوم را بدون تعیین LBA اولیه و بدون تعیین اندازه ایجاد می کنیم - به این ترتیب در تمام فضای آزاد ایجاد می شود.

gpart add -t freebsd-swap -s 2097152 /dev/ada1 gpart add -t freebsd-ufs /dev/ada1 gpart show ada1

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

ایجاد فایل سیستم (فرمت بندی)

پارتیشن های Swap نیازی به فرمت ندارند. اما بخش هایی مانند ufs باید قبل از استفاده فرمت شوند. درست تر است که بگوییم: یک سیستم فایل باید روی آنها ایجاد شود.

برای ایجاد یک فایل سیستم در پارتیشن دوم کافیست دستور زیر را اجرا کنید:

Newfs -U /dev/ada1p2

در این مورد، از پارامتر -U استفاده شده است - این نشان می دهد که مکانیسم Soft Updates باید در این فایل سیستم استفاده شود. می توانید انتخاب کنید که از این گزینه برای غیرفعال کردن این مکانیسم استفاده نکنید.

نصب

مرحله بعدی نصب پارتیشن ها است. ابتدا، برای فراموش نکردن، اجازه دهید بخش های جدید خود را به /etc/fstab اضافه کنیم. فایل من بعد از ویرایش به شکل زیر است:

به منظور نصب مجدد همه پارتیشن ها بر اساس فایل /etc/fstab، به سادگی دستور را اجرا کنید:

Mount-a

همانطور که از خروجی می بینید، پارتیشن /dev/ada1p2 نصب شده است. حال بیایید ببینیم چه اتفاقی برای پارتیشن SWAP افتاد. بیایید دستور را اجرا کنیم:

همانطور که می بینید، پارتیشن SWAP جدید نصب نشده است. برای نصب SWAP، باید آن را با یک دستور خاص فعال کنید:

تعویض /dev/ada1p1

به همین ترتیب، با استفاده از دستور swapoff، باید پارتیشن SWAP را قبل از انجام هر کاری بر روی آن خاموش کنید.

این تمام مراحل برای اضافه کردن یک جدید است هارد دیسکوارد سیستم شده اند.

آموزش مختصر

داده شده: هارد دیسک /dev/ada1

هدف: پارتیشن موجود را حذف کنید، یک پارتیشن جدید GPT ایجاد کنید، دو پارتیشن swap و data ایجاد کنید و آنها را به سیستم کاری متصل کنید.

بعد از هر مرحله، انجام دهید نمایش gpartبرای دیدن نتیجه ترتیب دهی:

  1. حذف نشانه گذاری موجود: gpart تخریب -F ada1
  2. ایجاد طرح‌بندی جدید: gpart create -s gpt /dev/ada1
  3. دو پارتیشن ایجاد کنید: swap و داده: gpart add -t freebsd-swap -s 2097152 /dev/ada1 gpart add -t freebsd-ufs /dev/ada1
  4. ایجاد سیستم فایل UFSv2در پارتیشن دوم: newfs -U /dev/ada1p2
  5. خطوط را به /etc/fstab اضافه کنید تا به صورت خودکار در هنگام بوت نصب شود: /dev/ada1p1 هیچ swap sw 0 0 /dev/ada1p2 /mnt ufs rw 2 2
  6. یک پارتیشن جدید را سوار کنید (فرمان همه پارتیشن ها را از فایل /etc/fstab مانت می کند): mount -a
  7. پارتیشن swap جدید را با دستور swapon /dev/ada1p1 فعال کنید

این راه اندازی را کامل می کند.

با استفاده از دستورات می توانید حقوق دسترسی و مالک فایل ها و دایرکتوری ها را تغییر دهید chmodو چاشنی. ماسک برای تنظیم حقوق به فایل های تولید شده، قابل تغییر در سطح جهانی، در /etc/profileبرای لینوکس و /etc/login.confبرای FreeBSD معمولا ماسک پیش فرض 022 . معنی umaskکم شده از 777 ، بنابراین مجوزها اهمیت خواهند داشت 755 . اجرا اجرا مجاز استخواندن - اجازه خواندن نوشتن - اجازه نوشتن بیت SUID - ویژگی file، در ارتباط با ویژگی فایل اجرایی، به فایل در حال اجرا اجازه می دهد تا با UID موثر صاحب فایل اجرا شود نه شخصی که فایل را اجرا می کند. 1 --x اجرا شود # مجوزهای 764 = exec/read/write | خواندن/نوشتن | خواندن 2 -w-نوشتن # برای: |-- مالک --| |-گروه-| |غیر| 4 r-- ugo=a را بخوانید u=کاربر، g=گروه، o=دیگران، a=همه# chmod MODE[,MODE] FILE # حالتدارای فرم: *([-+=]()) # chmod 640 /var/log/maillog # مجوزها را برابر تنظیم کنید -rw-r----- # chmod u=rw,g=r,o= /var/log/maillog # مانند بالا # chmod -R o-r /home/* # به صورت بازگشتی مجوزها را تغییر دهید، خواندن برای را غیرفعال کنید دیگر # chmod u+s /path/to/prog # نصب SUIDبیت در هر فایل اجرایی (در اینجا مراقب باشید، باید متوجه شوید که چه کاری انجام می دهید)# find / -perm -u+s -print # همه برنامه های نصب شده را پیدا کنید SUIDبیت# chown user:group /path/to/file # کاربر و گروه را به عنوان صاحبان فایل تنظیم کنید# chgrpgroup /path/to/file # گروهی که مالک فایل است را تغییر دهید# chmod 640 "find ./ -type f -print". # تغییر مجوزها به 640 برای همه فایل ها# chmod 751 `find ./ -type d -print` # تغییر مجوزها به 751 برای همه دایرکتوری ها

اطلاعات دیسک

# diskinfo -v /dev/ad2 # مشاهده اطلاعات دیسک ( بخش/اندازه) FreeBSD# hdparm -I /dev/sda # اطلاعاتی درباره IDE/ATAدیسک (لینوکس)# fdisk /dev/ad2 # نمایش پارتیشن های تغییر دیسک# smartctl -a /dev/ad2 #نمایش هوشمندانهاطلاعات دیسک

بارگذاری

FreeBSD

برای بارگیری هسته قدیمی، در مواقع اضطراری، مانند پس از شکست در ساخت و نصب یک هسته جدید، بوت را با فشار دادن عدد 6 در طول شمارش معکوس متوقف کنید تا به خط فرمان برسید. # unload # load kernel. قدیمی # boot

نقاط نصب، استفاده از دیسک

# mount | ستون -t # نمایش فایل سیستم های نصب شده#df # فضای خالی و دستگاه های نصب شده را نشان دهید# cat /proc/partitions # نمایش تمام پارتیشن های ثبت شده (لینوکس)

اطلاعات دایرکتوری

#دوش* # اندازه دایرکتوری ها به عنوان یک لیست# du -csh # اندازه کل دایرکتوری فعلی# du -ks * | مرتب کردن -n -r # فهرست دایرکتوری های مرتب شده بر اساس اندازه در کیلوبایت# ls -lSr # فهرست دایرکتوری ها، مرتب سازی معکوس

چه کسی چه فایل هایی را باز کرد

گاهی اوقات شما نیاز دارید که بفهمید کدام فایل یک پارتیشن را قفل کرده است، به همین دلیل دستور مقدارخطای مربوطه را می دهد. # umount /home/ umount: unmount /home # پارتیشن را نمی توان تا زمانی که نصب کرد /خانهمسدودناموفق: دستگاه مشغول است

FreeBSD و اکثر سیستم های مشابه یونیکس

# fstat -f /home # برای نقطه سوار# fstat -p PID # برای برنامه با PID# کاربر fstat -u # برای نام کاربریپیدا کردن باز کردن فایلبرای Xorg: # ps تبر | grep Xorg | awk "(print $1)" 1252 # fstat -p 1252 USER CMD PID FD MOUNT INUM MODE SZ|DV R/W root Xorg 1252 root / 2 drwxr-xr-x 512 r root Xorg 1252 text /usr 216016 -rws x--x 1679848 r root Xorg 1252 0 /var 212042 -rw-r--r-- 56987 w یافتن فایل با inum 212042 در دایرکتوری /varمی توانید این کار را انجام دهید: # find -x /var -inum 212042 /var/log/Xorg.0.log

لینوکس

یک فایل باز را در دایرکتوری با فیوزریا lsof: # fuser -m /home # فهرست فرآیندهایی که به آنها دسترسی دارند /خانه # lsof /home Command PID کاربر FD نوع دستگاه اندازه گره نام tcsh 29029 eedcoba cwd DIR 0.18 12288 1048587 /home/eedcoba (guam:/home) lsof 29140 29140 /1818 DIRho 29140 / 29140 DIRHO 29140 / 29140 DIRHO 29140 / 29140 29140/12818 DIRho00. من/اید کوبا (گوام:/خانه) پیدا کردن توسط PIDبرنامه های کاربردی: ps ax | grep Xorg | awk "(print $1)" 3324 # lsof -p 3324 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME Xorg 3324 root 0w REG 8,6 56296 12492 /var/log/Xorg.0.log بر اساس نام فایل: / # lsof log/Xorg.0.log فرمان PID کاربر FD نوع دستگاه اندازه نود نام Xorg 3324 root 0w REG 8,6 56296 12492 /var/log/Xorg.0.log

نصب / نصب مجدد سیستم های فایل

مثلا سی دی رامنوشته شده در /etc/fstab: # mount /cdrom یا می توانید دستگاه را در آن پیدا کنید /devیا در خروجی dmesg

FreeBSD

# mount -v -t cd9660 /dev/cd0c /mnt # نصب دیسک سی دی رام(روش اول)# mount_cd9660 /dev/wcd0c /cdrom # نصب دیسک سی دی رام(روش دوم)# mount -v -t msdos /dev/fd0c /mnt # فلاپی نوشتن در /etc/fstab: # Device Mountpoint FStype Options Dump Pass# /dev/acd0 /cdrom cd9660 ro,noauto 0 0 به کاربران اجازه می دهد درایوها را سوار کنند: # sysctl vfs.usermount=1 # یا یک خط وارد کنید "vfs.usermount=1" در /etc/sysctl.conf

لینوکس

# mount -t خودکار /dev/cdrom /mnt/cdrom # فرمان نصب دیسک معمولی سی دی رام # mount /dev/hdc -t iso9660 -r /cdrom # نصب دیسک IDE # mount /dev/scd0 -t iso9660 -r /cdrom # نصب دیسک SCSIسی دی رام# mount /dev/sdc0 -t ntfs-3g /windows # نصب دیسک SCSI ضبط در /etc/fstab: /dev/cdrom /media/cdrom subfs noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec 0 0

نصب پارتیشن لینوکس FreeBSD

شماره بخش را در آن جستجو کنید fdisk، معمولاً این پارتیشن ریشه است، اما می تواند در دیگری باشد BSDتکه. اگر برش های زیادی روی یک پارتیشن FreeBSD وجود داشته باشد، از طریق آنها قابل مشاهده نخواهند بود fdisk، اما آنها را می توان در پیدا کرد dev/sda*یا /dev/hda*. # fdisk /dev/sda # پارتیشن FreeBSD را پیدا کنید/dev/sda3 * 5357 7905 20474842+ a5 FreeBSD # mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt /dev/sda10 = /tmp; /dev/sda11 /usr # برشی دیگر

نصب مجدد

دستگاه را بدون اولین باز کردن، به عنوان مثال، دوباره سوار کنید fsck# mount -o remount,ro / # Linux # mount -o ro / # FreeBSD جریان داده را کپی کنید سی دی رام"و برای تشکیل پرونده تصویر ISO. # dd if=/dev/cd0c of=file.iso

ایجاد یک پارتیشن swap در پرواز

فرض کنید باید پارتیشن swap را افزایش دهید، بگویید to 2 گیگابایت، /swap2gb(برای لینوکس) # dd if=/dev/zero of=/swap2gb bs=1024k count=2000 # mkswap /swap2gb # ایجاد swap # swapon /swap2gb # swap را فعال کنید، اکنون می توان از آن استفاده کرد# swapoff /swap2gb # غیرفعال کردن swap # rm /swap2gb

نصب پارتیشن SMB

CIFS- سیستم فایل اینترنتی مشترک SMBبلوک پیام سرورفرض کنید باید به یک اشتراک گذاری شده دسترسی داشته باشید SMBبخش سهم منروی سرور smbserver، آدرس شماره گیری شده به دستگاه ویندوزاراده \\smbserver\myshare\. نصب خواهیم کرد /mnt/smbshare. فراموش نکنید برای cifsآدرس IP یا نام دامنه مورد نیاز است.

لینوکس

# smbclient -U user -I 192.168.16.229 -L //smbshare/ # فهرست اشتراک‌ها # mount -t smbfs -o username=winuser //smbserver/myshare /mnt/smbshare # mount -t cifs -o username=winuser, رمز عبور=winpwd //192.168.16.229/myshare /mnt/share همچنین بسته mount.cifsبه شما اجازه می دهد تا امتیازات را در یک فایل ذخیره کنید، به عنوان مثال. /home/user/.smb: username=winuser password=winpwd و اکنون mount: # mount -t cifs -o credentials=/home/user/.smb //192.168.16.229/myshare /mnt/smbshare

FreeBSD

از کلید استفاده کنید -منبرای تنظیم آدرس IP (یا DNS); smbserver، نام ویندوز است. # smbutil view -I 192.168.16.229 // [ایمیل محافظت شده] # فهرست منابع مشترک# mount_smbfs -I 192.168.16.229 // [ایمیل محافظت شده]/myshare /mnt/smbshare

عکس کوه

لوپ لینوکس

# mount -t iso9660 -o loop file.iso /mnt # تصویر سی دی را نصب کنید# mount -t ext3 -o loop file.img /mnt # نصب تصویر با سیستم فایل ext3

FreeBSD

استفاده كردن md- دستگاه حافظه (در صورت لزوم، بسازید kldload md.ko): # mdconfig -a -t vnode -f file.iso -u 0 # mount -t cd9660 /dev/md0 /mnt # umount /mnt; mdconfig -d -u 0 # دستگاه ذخیره سازی را پاک کنیدیا با استفاده از یک دستگاه شبه ( VN، گره مجازی): # vnconfig /dev/vn0c file.iso; mount -t cd9660 /dev/vn0c /mnt # umount /mnt; vnconfig -u /dev/vn0c # دستگاه شبه را پاک کنید

یک تصویر ISO ایجاد و رایت کنید

ما بخش به بخش سی دی یا دی وی دی را کپی می کنیم. # dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc استفاده mkisofsبرای ایجاد یک تصویر از یک فایل در یک دایرکتوری. برای غلبه بر محدودیت های نام فایل، از گزینه استفاده کنید -r، که شامل پسوند است راک ریج، اساسی برای سیستم های یونیکس, -جیشامل می شود جولیت، مورد استفاده مایکروسافت، اجازه می دهد ISO9660نام هایی که با نقطه شروع می شوند. # mkisofs -J -L -r -V TITLE -o imagefile.iso /path/to/dir در FreeBSD، mkisofsمی توان از /usr/ports/sysutils/cdrtools نصب کرد.

رایت تصاویر CD/DVD ISO

FreeBSD

FreeBSD نصب نمی شود DMAبر ATAPIدستگاه ها، این را می توان از طریق متغیر انجام داد sysctlیا در یک فایل /boot/loader.conf، ورودی های زیر. hw.ata.ata_dma="1" hw.ata.atapi_dma="1" استفاده کنید سوختهبرای دستگاه های ATAPI ( سوخته, برنامه استاندارد، بخشی از سیستم پایه) و cdrecord(از جانب /usr/ports/sysutils/cdrtools) برای دستگاه های SCSI. # burncd -f /dev/acd0 data imagefile.iso fixate # برای دستگاه های ATAPI# cdrecord -scanbus # ضبط کننده را پیدا کنید # cdrecord dev=1,0,0 imagefile.iso

لینوکس

همچنین استفاده کنید cdrecordهمانطور که در بالا توضیح داده شد. همچنین می توانید از رابط اصلی ATAPI استفاده کنید: # cdrecord dev=ATAPI -scanbus Record همانطور که در بالا توضیح داده شد.

dvd+rw-tools

بسته dvd+rw-tools (FreeBSD: ports/sysutils/dvd+rw-tools) تمامی عملکردهای مورد نیاز برای کار با دی وی دی ها را دارد، به علاوه رشدیوفس، برای رایت سی دی یا دی وی دی. مستندات همراه با مثال را می توان در کتاب راهنمای FreeBSD فصل 18.7 یافت # -dvd-compat دیسک را می بندد# growisofs -dvd-compat -Z /dev/dvd=imagefile.iso # موجود را بنویسید تصویر iso # growisofs -dvd-compat -Z /dev/dvd -J -R /p/to/data # ضبط مستقیم

تبدیل تصویر از فایل Nero .nrg به فایل iso

Nero یک هدر 300 کیلوبایتی به تصویر اضافه می کند که می توان آن را برش داد DD. # dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300

تبدیل تصویر bin/cue به .iso

این را می توان با یک برنامه کوچک، bchunk انجام داد. در FreeBSD می توان آن را در پورت ها یافت /usr/ports/sysutils/bchunk. # bchunk imagefile.bin imagefile.cue imagefile.iso

یک تصویر از یک فایل ایجاد کنید

به عنوان مثال، یک پارتیشن 1 گیگابایتی از فایل استفاده می کند /usr/vdisk.img. در این مورد از کلید استفاده می کنیم -u 0، اما عدد می تواند هر چیزی باشد.

FreeBSD

# dd if=/dev/random of=/usr/vdisk.img bs=1K count=1M # mdconfig -a -t vnode -f /usr/vdisk.img -u 0 # یک دستگاه ایجاد کنید /dev/md1 # bsdlabel -w /dev/md0 # newfs /dev/md0c # mount /dev/md0c /mnt # umount /mnt; mdconfig -d -u 0; rm /usr/vdisk.img # پاک کردن mdتصویر ایجاد شده از یک فایل را می توان در هنگام بوت شدن سیستم با نوشتن یک خط در آن نصب کرد /etc/rc.confو /etc/fstab. با استفاده از دستور می توانید بررسی کنید که آیا تنظیمات شما درست است یا خیر /etc/rc.d/mdconfig شروع کنید(قبلاً دستگاه را برداشته است md0با استفاده از دستور # mdconfig -d -u 0). به خاطر داشته باشید که نصب خودکار تصویر تنها در صورتی کار می کند که فایل تصویر در پارتیشن اصلی نباشد، زیرا اسکریپت /etc/rc.d/mdconfigدر مرحله اولیه بوت، زمانی که پارتیشن ریشه هنوز قابل نوشتن نیست، اجرا می شود. تصاویر واقع در خارج از پارتیشن ریشه بعداً توسط اسکریپت نصب می شوند /etc/rc.d/mdconfig2.
/boot/loader.conf: md_load="YES" /etc/rc.conf: mdconfig_md0="-t vnode -f /usr/vdisk.img" # /usrدر پارتیشن ریشه نیست/etc/fstab: (0 0 در پایان، بسیار مهم است، این نشان می دهد fsckبررسی دستگاه را نادیده بگیرید زیرا هنوز وجود ندارد) /dev/md0 /usr/vdisk ufs rw 0 0
علاوه بر این، بعداً می توانید اندازه تصویر را مثلاً 300 مگابایت افزایش دهید. # mount /mnt; mdconfig -d -u 0 # dd if=/dev/zero bs=1m count=300 >> /usr/vdisk.img # mdconfig -a -t vnode -f /usr/vdisk.img -u 0 # growfs /dev /md0 # mount /dev/md0c /mnt # اکنون پارتیشن فایل 300 مگابایت بزرگتر شده است

لینوکس

# dd if=/dev/zero of=/usr/vdisk.img bs=1024k count=1024 # mkfs.ext3 /usr/vdisk.img # mount -o loop /usr/vdisk.img /mnt # umount /mnt; rm /usr/vdisk.img # پاک کردن

لینوکس و از دست دادن

/dev/zeroخیلی سریعتر از تصادفی، اما امنیت کمتری برای رمزگذاری دارد. # dd if=/dev/urandom of=/usr/vdisk.img bs=1024k count=1024 # losttup /dev/loop0 /usr/vdisk.img # ايجاد كردن /dev/loop0 # mkfs.ext3 /dev/loop0 # mount /dev/loop0 /mnt # losttup -a # بررسی # umount /mnt # losttup -d /dev/loop0 # Detach # rm /usr/vdisk.img

ایجاد یک فایل سیستم در حافظه

سیستم فایل درون حافظه بسیار سریع است، استفاده از آن برای برنامه هایی با IO دیسک بالا منطقی است. بیایید یک پارتیشن 64 مگابایتی بسازیم و آن را سوار کنیم /memdisk:

FreeBSD

# mount_mfs -o rw -s 64M md /memdisk # umount /memdisk; mdconfig -d -u 0 #پاک کردن mdدستگاه md /memdisk mfs rw,-s64M 0 0 # نوشتن به /etc/fstab

لینوکس

# mount -t tmpfs -osize=64m tmpfs /memdisk

عملکرد را هدایت کنید

خواندن و نوشتن 1 گیگفایل در بخش ad4s3c (/خانه) # زمان dd if=/dev/ad4s3c of=/dev/null bs=1024k count=1000 # time dd if=/dev/zero bs=1024k count=1000 of=/home/1Gb.file # hdparm -tT / dev/hda # فقط لینوکس