#####################################
$ mkfs.minix   image
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912

return mkfs: 0
$ fsck.minix -lavsf image
Forcing filesystem check on image.
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912
Filesystem state=1
namelen=30


     1 inodes used (0%)
    59 zones used (1%)

     0 regular files
     1 directories
     0 character device files
     0 block device files
     0 links
     0 symbolic links
------
     1 files
return fsck: 0
#####################################
$ mkfs.minix  -n 14 image
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912

return mkfs: 0
$ fsck.minix -lavsf image
Forcing filesystem check on image.
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912
Filesystem state=1
namelen=14


     1 inodes used (0%)
    59 zones used (1%)

     0 regular files
     1 directories
     0 character device files
     0 block device files
     0 links
     0 symbolic links
------
     1 files
return fsck: 0
#####################################
$ mkfs.minix  -n 30 image
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912

return mkfs: 0
$ fsck.minix -lavsf image
Forcing filesystem check on image.
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912
Filesystem state=1
namelen=30


     1 inodes used (0%)
    59 zones used (1%)

     0 regular files
     1 directories
     0 character device files
     0 block device files
     0 links
     0 symbolic links
------
     1 files
return fsck: 0
#####################################
$ mkfs.minix  -n 60 image
mkfs.minix: unsupported name length: 60
return mkfs: 8
#####################################
$ mkfs.minix -1  image
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912

return mkfs: 0
$ fsck.minix -lavsf image
Forcing filesystem check on image.
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912
Filesystem state=1
namelen=30


     1 inodes used (0%)
    59 zones used (1%)

     0 regular files
     1 directories
     0 character device files
     0 block device files
     0 links
     0 symbolic links
------
     1 files
return fsck: 0
#####################################
$ mkfs.minix -1 -n 14 image
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912

return mkfs: 0
$ fsck.minix -lavsf image
Forcing filesystem check on image.
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912
Filesystem state=1
namelen=14


     1 inodes used (0%)
    59 zones used (1%)

     0 regular files
     1 directories
     0 character device files
     0 block device files
     0 links
     0 symbolic links
------
     1 files
return fsck: 0
#####################################
$ mkfs.minix -1 -n 30 image
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912

return mkfs: 0
$ fsck.minix -lavsf image
Forcing filesystem check on image.
1728 inodes
5120 blocks
Firstdatazone=58 (58)
Zonesize=1024
Maxsize=268966912
Filesystem state=1
namelen=30


     1 inodes used (0%)
    59 zones used (1%)

     0 regular files
     1 directories
     0 character device files
     0 block device files
     0 links
     0 symbolic links
------
     1 files
return fsck: 0
#####################################
$ mkfs.minix -1 -n 60 image
mkfs.minix: unsupported name length: 60
return mkfs: 8
#####################################
$ mkfs.minix -2  image
1712 inodes
5120 blocks
Firstdatazone=111 (111)
Zonesize=1024
Maxsize=2147483647

return mkfs: 0
$ fsck.minix -lavsf image
Forcing filesystem check on image.
1712 inodes
5120 blocks
Firstdatazone=111 (111)
Zonesize=1024
Maxsize=2147483647
Filesystem state=1
namelen=30


     1 inodes used (0%)
   112 zones used (2%)

     0 regular files
     1 directories
     0 character device files
     0 block device files
     0 links
     0 symbolic links
------
     1 files
return fsck: 0
#####################################
$ mkfs.minix -2 -n 14 image
1712 inodes
5120 blocks
Firstdatazone=111 (111)
Zonesize=1024
Maxsize=2147483647

return mkfs: 0
$ fsck.minix -lavsf image
Forcing filesystem check on image.
1712 inodes
5120 blocks
Firstdatazone=111 (111)
Zonesize=1024
Maxsize=2147483647
Filesystem state=1
namelen=14


     1 inodes used (0%)
   112 zones used (2%)

     0 regular files
     1 directories
     0 character device files
     0 block device files
     0 links
     0 symbolic links
------
     1 files
return fsck: 0
#####################################
$ mkfs.minix -2 -n 30 image
1712 inodes
5120 blocks
Firstdatazone=111 (111)
Zonesize=1024
Maxsize=2147483647

return mkfs: 0
$ fsck.minix -lavsf image
Forcing filesystem check on image.
1712 inodes
5120 blocks
Firstdatazone=111 (111)
Zonesize=1024
Maxsize=2147483647
Filesystem state=1
namelen=30


     1 inodes used (0%)
   112 zones used (2%)

     0 regular files
     1 directories
     0 character device files
     0 block device files
     0 links
     0 symbolic links
------
     1 files
return fsck: 0
#####################################
$ mkfs.minix -2 -n 60 image
mkfs.minix: unsupported name length: 60
return mkfs: 8
#####################################
$ mkfs.minix -3  image
1712 inodes
5120 blocks
Firstdatazone=111 (111)
Zonesize=1024
Maxsize=2147483647

return mkfs: 0
$ fsck.minix -lavsf image
Forcing filesystem check on image.
1712 inodes
5120 blocks
Firstdatazone=111 (111)
Zonesize=1024
Maxsize=2147483647
namelen=60


     1 inodes used (0%)
   112 zones used (2%)

     0 regular files
     1 directories
     0 character device files
     0 block device files
     0 links
     0 symbolic links
------
     1 files
return fsck: 0
#####################################
$ mkfs.minix -3 -n 14 image
mkfs.minix: unsupported name length: 14
return mkfs: 8
#####################################
$ mkfs.minix -3 -n 30 image
mkfs.minix: unsupported name length: 30
return mkfs: 8
#####################################
$ mkfs.minix -3 -n 60 image
1712 inodes
5120 blocks
Firstdatazone=111 (111)
Zonesize=1024
Maxsize=2147483647

return mkfs: 0
$ fsck.minix -lavsf image
Forcing filesystem check on image.
1712 inodes
5120 blocks
Firstdatazone=111 (111)
Zonesize=1024
Maxsize=2147483647
namelen=60


     1 inodes used (0%)
   112 zones used (2%)

     0 regular files
     1 directories
     0 character device files
     0 block device files
     0 links
     0 symbolic links
------
     1 files
return fsck: 0
