Index: uspace/app/mkminix/mkminix.c
===================================================================
--- uspace/app/mkminix/mkminix.c	(revision e6aaa594dcfd8f0f308e71d9f4e4a9d8ae000756)
+++ uspace/app/mkminix/mkminix.c	(revision 9cfe0d55a31b3e0716d7cfe6773244af0c128a5d)
@@ -73,5 +73,6 @@
 static void	setup_superblock(struct mfs_superblock *sb, mfs_params_t *opt);
 static void	setup_superblock_v3(struct mfs3_superblock *sb, mfs_params_t *opt);
-static void	setup_bitmaps(devmap_handle_t handle, uint32_t ninodes, uint32_t nzones);
+static void	setup_bitmaps(devmap_handle_t handle, uint32_t ninodes,
+				uint32_t nzones, int bsize);
 static void	mark_bmap(uint8_t *bmap, int idx, int v);
 
@@ -212,5 +213,6 @@
 		}
 		setup_superblock_v3(sb3, &opt);
-		setup_bitmaps(handle, sb3->s_ninodes, sb3->s_total_zones);
+		setup_bitmaps(handle, sb3->s_ninodes,
+				sb3->s_total_zones, sb3->s_block_size);
 	} else {
 		sb = (struct mfs_superblock *) malloc(sizeof(struct mfs_superblock));
@@ -221,5 +223,5 @@
 		setup_superblock(sb, &opt);
 		block_write_direct(handle, MFS_SUPERBLOCK, 1, sb);
-		setup_bitmaps(handle, sb->s_ninodes, sb->s_nzones);
+		setup_bitmaps(handle, sb->s_ninodes, sb->s_nzones, MFS_BLOCKSIZE);
 	}
 
@@ -291,16 +293,17 @@
 }
 
-static void setup_bitmaps(devmap_handle_t handle, uint32_t ninodes, uint32_t nzones)
+static void setup_bitmaps(devmap_handle_t handle, uint32_t ninodes,
+				uint32_t nzones, int bsize)
 {
 	uint8_t *ibmap_buf, *zbmap_buf;
-	int ibmap_nblocks = 1 + (ninodes / 8) / MFS_BLOCKSIZE;
-	int zbmap_nblocks = 1 + (nzones / 8) / MFS_BLOCKSIZE;
+	int ibmap_nblocks = 1 + (ninodes / 8) / bsize;
+	int zbmap_nblocks = 1 + (nzones / 8) / bsize;
 	unsigned int i;
 
-	ibmap_buf = (uint8_t *) malloc(ibmap_nblocks * MFS_BLOCKSIZE);
-	zbmap_buf = (uint8_t *) malloc(zbmap_nblocks * MFS_BLOCKSIZE);
-
-	memset(ibmap_buf, 0xFF, ibmap_nblocks * MFS_BLOCKSIZE);
-	memset(zbmap_buf, 0xFF, zbmap_nblocks * MFS_BLOCKSIZE);
+	ibmap_buf = (uint8_t *) malloc(ibmap_nblocks * bsize);
+	zbmap_buf = (uint8_t *) malloc(zbmap_nblocks * bsize);
+
+	memset(ibmap_buf, 0xFF, ibmap_nblocks * bsize);
+	memset(zbmap_buf, 0xFF, zbmap_nblocks * bsize);
 
 	for (i = 2; i < ninodes; ++i) {
@@ -308,4 +311,7 @@
 		mark_bmap(zbmap_buf, i, FREE);
 	}
+
+	ibmap_nblocks *= bsize / MFS_BLOCKSIZE;
+	zbmap_nblocks *= bsize / MFS_BLOCKSIZE;
 
 	block_write_direct(handle, 2, ibmap_nblocks, ibmap_buf);
