دستور mkfs برای ساخت فایل سیستم های مختلف مثل ext4 ,ext2 ,ext3, reiserfs و.... مورد استفاده قرار می گیرد . این دستور خودش به صورت مستقل توانایی ساخت فایل سیستم رو دارا نیستش برای همین وقتی مثلا فایل سیستم با فرمت ext4 می خواهیم بسازیم دستور اصلی که برای این کار در دست رس هست(mke2fs) رو فراخوانی می کنه و فایل سیستم مورد نظر ما رو می سازه , به صورت ساده تر می شه گفت دستور mkfs روش راحت تر و سریع تری برای ساخت فایل سیستم های مختلف هست که با استفاده از اون لازم نیست که دستورات مختلف برای ساخت فایل سیستم های مختلف رو ازبر کنیم
ساده ترین شکل استفاده از این دستور به شکل زیر هست که به صورت پیش فرض یک فایل سیستم با فرمت ext2 می سازه:
aliabry@lp:~$ sudo mkfs /dev/sdb1 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 91968 inodes, 367528 blocks 18376 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=377487360 12 block groups 32768 blocks per group, 32768 fragments per group 7664 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done
تعیین سایز
سایز رو هم میتونین تعیین کنین که دستور به شکل زیر میشه :
در زیر یک فایل سیستم با سایز 1 گیگابایت می سازیم
aliabry@lp:~$ sudo mkfs -t ext4 /dev/sdb1 1G mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done
نکته : این سایزی که این جا تعیین میکنیم عددی مستقل از سایر خود پارتیشن هست . یعنی ممکن پارتیشن ما 100 گیگابایت باشه ولی توش یک فایل سیستم با سایز 80 گیگابایت بسازیم که در نتیجه اون فقط از 80 گیگ از فضای پارتیشن 100 گیگابایتی مون می تونیم استفاده کنیم .
نکته : امکان تعیین سایز با mkfs برای همه نوع فایل سیستم امکان پذیر نیست .
اپشن های mkfs
t-
: از این اپشن برای تعیین نوع فایل سیستمی که میخوایم بسازیم استفاده میشه
در زیر یک فایل سیستم از نوع ext4 می سازیم
aliabry@lp:~$ sudo mkfs -t ext4 /dev/sdb1 [sudo] password for aliabry: mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 91968 inodes, 367528 blocks 18376 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=377487360 12 block groups 32768 blocks per group, 32768 fragments per group 7664 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done
یا برای ساخت فایل سیستم با فرمت reiserfs
aliabry@lp:~$ sudo mkfs -t reiserfs /dev/sdb1 mkfs.reiserfs 3.6.21 (2009 www.namesys.com) A pair of credits: Hans Reiser was the project initiator, source of all funding for the first 5.5 years. He is the architect and official maintainer. Nikita Danilov wrote most of the core balancing code, plugin infrastructure, and directory code. He steadily worked long hours, and is the reason so much of the Reiser4 plugin infrastructure is well abstracted in its details. The carry function, and the use of non-recursive balancing, are his idea. Guessing about desired format.. Kernel 3.2.0-40-generic is running. Format 3.6 with standard journal Count of blocks on the device: 367520 Number of blocks consumed by mkreiserfs formatting process: 8223 Blocksize: 4096 Hash function used to sort names: "r5" Journal Size 8193 blocks (first block 18) Journal Max transaction length 1024 inode generation number: 0 UUID: 0ceb26d3-0e0e-4a43-9681-e5d25c93725a ATTENTION: YOU SHOULD REBOOT AFTER FDISK! ALL DATA WILL BE LOST ON '/dev/sdb1'! Continue (y/n):y Initializing journal - 0%....20%....40%....60%....80%....100% Syncing..ok ReiserFS is successfully created on /dev/sdb1.
ٰV-
: برای دریافت اطلاعات بیشتر در مورد اتفاقاتی که در حال رخ دادن هست مورد استفاده قرار میگیره . بیشتر از یک دونه V هم میتونین استفاده کنین که بستگی به اون فایل سیستمی که تعیین کردین داره .
حالا چرا بستگی به فایل سیستم داره ؟
اگر یادتون باشه در اول اموزش گفتیم که دستور mkfs خودش توانایی ساخت فایل سیستمی رو نداره و از دستورات دیگری برای این کار استفاده میکنه (مثلا mke2fs برای ساخت ext4 ) حالا وقتی از اپشن V- استفاده میکنیم باید اون دستوری(مثلا mke2fs) که mkfs برای ساخت فایل سیستم از اون استفاده میکنه این اپشن براش تعریف شده باشه.
فرستادن اپشن خاص
از جایی که دستور mkfs خودش از دستورات دیگری برای ساخت فایل سیستم مورد نظرمون استفاده میکنه مثلا mke2fs برای ساخت فایل سیستم های ext2,3,4 ; این قابلیت رو هم داره که پارامتر خاصی رو مستقیم به همون دستور (mke2fs) بفرسته :
مثلا در زیر میگیم که اپشن L Video- رو به mke2fs بفرسته . این اپشن در دستور mke2fs برای تعیین lable فایل سیستممون هست که در واقع میشه اسم اون درایومون مثلا درایو Music, Game , Film یا هر اسم دیگه ای که دوست دارین رو اون درایوتون داشته باشین من در زیر Video رو تعیین کردم:
aliabry@lp:~$ sudo mkfs -t ext4 -L Video /dev/sdb1 1G mke2fs 1.42 (29-Nov-2011) Filesystem label=Video OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done
بستگی به اون فایل سیستمی که تعیین می کنین اپشن های مختلفی رو میتونین مورد استفاده قرار بدین مثلا برای تعیین lable در فایل سیستم vfat از اپشن n- باید استفاده کنین یا برای reiserfs از l- استفاده کنین.