mkfs - ساخت فایل سیستم

دستور 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- استفاده کنین.