لینوکس فرمان - fdisk را یاد بگیرید

نام

fdisk - دستیار جدول پارتیشن برای لینوکس

خلاصه داستان

fdisk [-u] [-b sectorsize ] [-C cyls ] [-H heads ] [-S sects ] device

fdisk -l [-u] [ دستگاه ... ]

fdisk -s پارتیشن ...

fdisk -v

شرح

هارد دیسک را می توان به یک یا چند دیسک منطقی تقسیم کرد . این بخش در جدول پارتیشن موجود در بخش 0 دیسک شرح داده شده است.

در جهان BSD یکی در مورد "برش دیسک" و یک "disklabel" صحبت می کند.

لینوکس حداقل یک پارتیشن دارد، یعنی برای سیستم فایل ریشه. می تواند از فایل های مبادله و / یا پارتیشن های مبادله استفاده کند، اما دومی کارآمدتر است. بنابراین، معمولا یک پارتیشن دوم لینوکس به عنوان پارتیشن swap اختصاص داده می شود. در سخت افزار سازگار با اینتل، BIOS که سیستم را چک می کند اغلب تنها می تواند اولین 1024 سیلندر دیسک دسترسی داشته باشد. به همین علت، افرادی که دارای دیسک های بزرگ هستند اغلب پارتیشن سوم را ایجاد می کنند، فقط چند MB بزرگ، معمولا بر روی / boot نصب شده اند، برای ذخیره تصویر هسته و چند فایل کمکی مورد نیاز در زمان بوت، به منظور اطمینان از اینکه این موارد قابل دسترسی به BIOS. ممکن است دلایل امنیت، سهولت مدیریت و تهیه نسخه پشتیبان یا تست، برای استفاده از بیش از حداقل تعداد پارتیشن ها وجود داشته باشد.

مسائل مربوط به چاپ را حل کن، صرفه جویی در زمان با نرم افزار مدیریت صف صف چاپ.

fdisk (در اولین فرم فراخوانی) یک برنامه منحصر به فرد برای ایجاد و دستکاری جداول پارتیشن است. آن را می داند جداول پارتیشن نوع DOS و BSD یا SUN نوع disklable.

این دستگاه معمولا یکی از موارد زیر است:

/ dev / hda / dev / hdb / dev / sda / dev / sdb

/ dev / hd [ah] برای دیسک های IDE، / dev / sd [ap] برای دیسک های SCSI، / dev / ed [ad] برای دیسک های ESDI، / dev / xd [ab] برای دیسک های XT). نام دستگاه به کل دیسک اشاره دارد.

پارتیشن یک نام دستگاه و شماره پارتیشن است. به عنوان مثال، / dev / hda1 اولین پارتیشن در اولین دیسک سخت IDE در سیستم است. دیسک ها می توانند تا 15 پارتیشن داشته باشند. همچنین ببینید /usr/src/linux/Documentation/devices.txt .

یک disklable نوع BSD / SUN می تواند 8 پارتیشن را توصیف کند، سوم آن باید یک پارتیشن کامل دیسک باشد. یک پارتیشن را که در واقع از بخش اول خود (مانند پارتیشن swap) در سیلندر 0 استفاده می کنید شروع نکنید، زیرا این disklabel را نابود خواهد کرد.

یک دیسک ریز نوع IRIX / SGI می تواند 16 پارتیشن را توصیف کند، یازدهم آن باید یک پارتیشن کامل 'volume' باشد، در حالی که نهم باید 'header volume' نام گذاری شود. هدر حجم نیز جدول پارتیشن را پوشش می دهد، یعنی آن را در بلوک صفر شروع می کند و به طور پیش فرض بیش از پنج سیلندر گسترش می یابد. فضای باقیمانده در header volume ممکن است از نوشته های دایرکتوری header استفاده شود. بدون پارتیشن ممکن است با هدر حجم همپوشانی داشته باشد. همچنین نوع آن را تغییر ندهید و برخی از سیستم فایل را بر روی آن ایجاد کنید، زیرا جدول پارتیشن را از دست خواهید داد. استفاده از این نوع برچسب تنها در هنگام کار با لینوکس بر روی دستگاه های IRIX / SGI یا دیسک های IRIX / SGI تحت لینوکس.

جدول پارتیشن نوع DOS می تواند تعداد نامحدودی از پارتیشن ها را توصیف کند. در بخش 0، برای توصیف 4 پارتیشن (به نام «اولیه») وجود دارد. یکی از این ها ممکن است یک پارتیشن گسترده باشد؛ این یک جعبه است که پارتیشن های منطقی را نگه می دارد، با توصیف های موجود در یک لیست مرتبط از بخش ها، هر یک قبل از پارتیشن های منطقی مربوطه. چهار پارتیشن اصلی، در حال حاضر یا نه، اعداد 1-4 را دریافت می کنند. پارتیشن های منطقی شروع به شماره گذاری از 5.

در جدول پارتیشن نوع DOS، فونت شروع و اندازه هر پارتیشن به دو روش ذخیره می شود: به عنوان یک تعداد مطلق از بخش ها (داده شده در 32 بیت) و به عنوان یک سیلندر / سر / بخش سه گانه (داده شده در 10 + 8 + 6 بیت) اولین مورد خوب است - با بخش های 512 بایت این کار تا 2 توتری کار می کند. دومی دارای دو مشکل مختلف است. اول از همه، این فیلدها C / H / S را می توان تنها زمانی که تعداد سر و تعداد بخش ها در هر مسیر شناخته شده است پر کنید. ثانیا، حتی اگر ما می دانیم این عدد باید چه باشد، 24 بیت که در دسترس هستند، کافی نیست. DOS تنها از C / H / S استفاده می کند، ویندوز از هر دو استفاده می کند، لینوکس هرگز از C / H / S استفاده نمی کند.

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

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

هر بار که یک جدول پارتیشن چاپ می شود، بررسی صحت بر روی نوشته های جدول پارتیشن انجام می شود. این چک تأیید می کند که شروع و پایان های فیزیکی و منطقی یکسان است و پارتیشن شروع و پایان می یابد به مرز سیلندر (به جز برای پارتیشن اول).

بعضی از نسخه های MS-DOS یک پارتیشن اول ایجاد می کنند که بر روی مرز سیلندر آغاز نمی شود، بلکه در بخش 2 سیلندر اول است. پارتیشن هایی که در سیلندر 1 شروع می شوند بر روی یک سیلندر شروع نمی شوند، اما بعید به نظر می رسد دشوار باشد، مگر اینکه OS / 2 در دستگاه شما داشته باشد.

sync () و BLKRRPART ioctl () (table partition reeread از دیسک) قبل از خروج از زمانی که جدول پارتیشن به روز شده است انجام می شود. مدتها قبل لازم بود پس از استفاده از fdisk دوباره راه اندازی شود. من فکر نمی کنم این مورد دیگر باشد - در واقع، راه اندازی مجدد سیستم خیلی سریع می تواند باعث از بین رفتن اطلاعاتی که هنوز نوشته نشده است را از دست بدهد. توجه داشته باشید که هر دو هسته و سخت افزار دیسک ممکن است داده ها را باطل کند.

هشدار Dos 6.x

فرمان DOS 6.x FORMAT به دنبال اطلاعاتی در بخش اول ناحیه داده پارتیشن است و این اطلاعات را به عنوان اطمینان بیشتری نسبت به اطلاعات در جدول پارتیشن بررسی می کند. فرمت DOS انتظار DOS FDISK برای پاک کردن اولین 512 بایت ناحیه داده پارتیشن هر زمان که تغییر اندازه رخ می دهد. FORMAT DOS به این اطلاعات اضافی حتی اگر پرچم / U داده شده نگاه کنید - ما این را یک مشکل در DOS FORMAT و DOS FDISK می دانیم.

خط پایین این است که اگر از cfdisk یا fdisk برای تغییر اندازه یک جدول جدول پارتیشن DOS استفاده می کنید، قبل از استفاده از DOS FORMAT برای فرمت کردن پارتیشن، باید از dd استفاده کنید تا صفر از 512 بایت اول آن پارتیشن صفر شود. برای مثال، اگر از cfdisk برای ایجاد یک جدول جدول DOS برای / dev / hda1 استفاده کردید، پس (بعد از خروج fdisk یا cfdisk و راه اندازی مجدد لینوکس به طوری که اطلاعات جدول پارتیشن معتبر باشد) شما از دستور "dd if = / dev / zero of = / dev / hda1 bs = 512 count = 1 "به صفر از 512 بایت اول پارتیشن.

بطور فوق العاده مراقب باشید اگر از فرمان dd استفاده می کنید، زیرا یک تایپ کوچک می تواند تمام اطلاعات روی دیسک شما را بی فایده سازد.

برای بهترین نتایج، شما همیشه باید از برنامه جدول پارتیشن خاص سیستم عامل استفاده کنید. برای مثال، شما باید پارتیشن های DOS را با برنامه DOS FDISK و پارتیشن های لینوکس با برنامه fdisk لینوکس یا cfdisk لینوکس بسازید.

گزینه ها

-b بخش کردن

اندازه سایز دیسک را مشخص کنید. ارزش های معتبر 512، 1024 یا 2048 هستند. (کرنل های اخیر اندازه بخش را می دانند. از این تنها در هسته های قدیمی استفاده می شود و یا بر خلاف ایده های هسته ای).

C سیلندر

تعداد سیلندرهای دیسک را مشخص کنید. من هیچ نظری ندارم چرا کسی می خواهد این کار را انجام دهد.

-H سر

تعداد سرهای دیسک را مشخص کنید. (البته شماره فیزیکی، البته، اما تعداد مورد استفاده برای جداول پارتیشن.) مقادیر منطقی 255 و 16 است.

-S فرقه ها

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

-l

لیست جداول پارتیشن برای دستگاه های مشخص شده و سپس خروج. اگر هیچ دستگاهی داده نشود، آنهایی که در / proc / پارتیشن ذکر شده اند (در صورت وجود) استفاده می شوند.

-u

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

-s پارتیشن

اندازه پارتیشن (در بلوک) بر روی خروجی استاندارد چاپ می شود.

-v

نسخه نسخه نسخه برنامه fdisk و خروج