Index: uspace/app/mkminix/mkminix.c
===================================================================
--- uspace/app/mkminix/mkminix.c	(revision 534d08e80617530aacb604fde58390afd47846ef)
+++ uspace/app/mkminix/mkminix.c	(revision e33100c8e1fce5650f426c8cf7f3721989fbd544)
@@ -366,11 +366,12 @@
 	memset(ino_buf, 0x00, MFS_BLOCKSIZE);
 
-	ino_buf[MFS_ROOT_INO].i_mode = S_IFDIR;
-	ino_buf[MFS_ROOT_INO].i_uid = 0;
-	ino_buf[MFS_ROOT_INO].i_gid = 0;
-	ino_buf[MFS_ROOT_INO].i_size = (sb->longnames ? MFSL_DIRSIZE : MFS_DIRSIZE) * 2;
-	ino_buf[MFS_ROOT_INO].i_mtime = sec;
-	ino_buf[MFS_ROOT_INO].i_nlinks = 2;
-	ino_buf[MFS_ROOT_INO].i_dzone[0] = sb->first_data_zone;
+	ino_buf[MFS_ROOT_INO - 1].i_mode = S_IFDIR;
+	ino_buf[MFS_ROOT_INO - 1].i_uid = 0;
+	ino_buf[MFS_ROOT_INO - 1].i_gid = 0;
+	ino_buf[MFS_ROOT_INO - 1].i_size = (sb->longnames ? MFSL_DIRSIZE :
+						MFS_DIRSIZE) * 2;
+	ino_buf[MFS_ROOT_INO - 1].i_mtime = sec;
+	ino_buf[MFS_ROOT_INO - 1].i_nlinks = 2;
+	ino_buf[MFS_ROOT_INO - 1].i_dzone[0] = sb->first_data_zone;
 
 	rc = write_block(itable_off, 1, ino_buf);
@@ -398,13 +399,13 @@
 	memset(ino_buf, 0x00, sb->block_size);
 
-	ino_buf[MFS_ROOT_INO].i_mode = S_IFDIR;
-	ino_buf[MFS_ROOT_INO].i_uid = 0;
-	ino_buf[MFS_ROOT_INO].i_gid = 0;
-	ino_buf[MFS_ROOT_INO].i_size = MFS3_DIRSIZE * 2;
-	ino_buf[MFS_ROOT_INO].i_mtime = sec;
-	ino_buf[MFS_ROOT_INO].i_atime = sec;
-	ino_buf[MFS_ROOT_INO].i_ctime = sec;
-	ino_buf[MFS_ROOT_INO].i_nlinks = 2;
-	ino_buf[MFS_ROOT_INO].i_dzone[0] = sb->first_data_zone;
+	ino_buf[MFS_ROOT_INO - 1].i_mode = S_IFDIR;
+	ino_buf[MFS_ROOT_INO - 1].i_uid = 0;
+	ino_buf[MFS_ROOT_INO - 1].i_gid = 0;
+	ino_buf[MFS_ROOT_INO - 1].i_size = MFS3_DIRSIZE * 2;
+	ino_buf[MFS_ROOT_INO - 1].i_mtime = sec;
+	ino_buf[MFS_ROOT_INO - 1].i_atime = sec;
+	ino_buf[MFS_ROOT_INO - 1].i_ctime = sec;
+	ino_buf[MFS_ROOT_INO - 1].i_nlinks = 2;
+	ino_buf[MFS_ROOT_INO - 1].i_dzone[0] = sb->first_data_zone;
 
 	rc = write_block(itable_off, 1, ino_buf);
@@ -564,5 +565,5 @@
 	memset(zbmap_buf, 0xFF, zbmap_nblocks * sb->block_size);
 
-	for (i = 2; i < sb->n_inodes; ++i)
+	for (i = 2; i < sb->n_inodes + 1; ++i)
 		mark_bmap(ibmap_buf, i, FREE);
 
Index: uspace/srv/fs/minixfs/mfs_inode.c
===================================================================
--- uspace/srv/fs/minixfs/mfs_inode.c	(revision 534d08e80617530aacb604fde58390afd47846ef)
+++ uspace/srv/fs/minixfs/mfs_inode.c	(revision e33100c8e1fce5650f426c8cf7f3721989fbd544)
@@ -82,5 +82,8 @@
 	sbi = instance->sbi;
 	assert(sbi);
-	
+
+	/*inode 0 does not exist*/
+	inum -= 1;
+
 	const int ino_off = inum % sbi->ino_per_block;
 	const size_t ino_size = sizeof(struct mfs_inode);
@@ -146,4 +149,7 @@
 	sbi = instance->sbi;
 	assert(sbi);
+
+	/*inode 0 does not exist*/
+	inum -= 1;
 
 	const int itable_off = sbi->itable_off;
