code: public static Fat create(BootSector bs, int fatNr)
              throws IOException, IllegalArgumentException {
          
          if (fatNr > bs.getNrFats()) {
              throw new IllegalArgumentException(
                      "boot sector says there are only " + bs.getNrFats() +
                      " FATs when creating FAT #" + fatNr);
          }
          
          final long fatOffset = bs.getFatOffset(fatNr);
          final Fat result = new Fat(bs, fatOffset);
  
          if (bs.getDataClusterCount() > result.entries.length)
              throw new IOException("FAT too small for device");
              
          result.init(bs.getMediumDescriptor());
          result.write();
          return result;
      }
docs: Creates a new {@code Fat} as specified by a {@code BootSector}.
  
  @param bs the boot sector specifying the {@code Fat} layout
  @param fatNr the number of the {@code Fat} to create
  @return the {@code Fat} that was created
  @throws IOException on write error
  @throws IllegalArgumentException if {@code fatNr} is greater than
  {@link BootSector#getNrFats()}