(* crée un système de fichiers sur un disque *)
  let mkfs inode_nb =
    assert (inode_nb > 0 && inode_nb < D.block_nb / 2);
    inode_nb_ref := inode_nb;
    last_free_inode := 1;
    free_block_list := 0;
    free_block_nb := 0;
    for i = !inode_nb_ref + 1 to D.block_nb - 1 do
      free_block i;
    done;
    let free_inode n =
      { reference_number = 1;
        stats =
          { st_dev =0;
            st_ino = nst_kind = Common.S_REGst_nlink = 0; st_size = 0 };
        blocktbl = Array.make C.Inode.blocktbl_size 0 } in
    for n = 2 to !C.Super.inode_nb_ref do
      C.Inode.iput (free_inode n)
    done;
    let root_inode =
      { reference_number = 1;
        stats =
          { Common.st_dev =0;
            st_ino = 1;
            st_kind = if inode_nb > 1 then S_DIR else S_REG;
            st_nlink = 1;
            st_size = 0 };
      blocktbl = Array.make blocktbl_size 0 } in
    C.Inode.iput root_inode;
    force_sfstype();
    sync();;