On Wed, Apr 10, 2024 at 08:31:26AM -0000, Stuart Henderson wrote:

> On 2024-04-09, Stanislav Syekirin 
> <stanislav.syeki...@studium.fernuni-hagen.de> wrote:
> > Hi,
> >
> > I'm trying to figure out the best way to format a USB stick as FAT32. 
> > This is what I've tried:
> >
> > $ time doas newfs_msdos /dev/rsd1c
> > /dev/rsd1c: 60007944 sectors in 7500993 FAT32 clusters (4096 
> > bytes/cluster)
> > bps=512 spc=8 res=32 nft=2 mid=0xf0 spt=63 hds=255 hid=0 bsec=60125184 
> > bspf=58602 rdcl=2 infs=1 bkbs=2
> >     20m08.34s real  0m00.35s user   0m12.81s system
> >
> > As you can see, it takes many minutes, and the elapsed time is much 
> > larger than the CPU time. Looking at top while the command runs shows 
> > that newfs_msdos has PRI -5, its CPU usage fluctuates around 0.5%, 
> > STATE is mostly "sleep" with WAIT being "physio".
> >
> > The same happens if I call newfs_ext2fs -I.
> >
> > For comparison, `newfs /dev/rsd1c` is almost instantaneous: 0m00.88s 
> > real 0m00.06s user 0m00.16s system. It doesn't work if the disk is 
> 
> IIUC newfs_msdos has to wrote a lot more than FFS2 newfs.
> And writes to USB drives are not particularly quick on OpenBSD.
> 
> > already formatted as FAT32, though: I have to call `fdisk -e sd1`, and 
> > reinit, otherwise I get a "can't rewrite disk label" error; I'm not 
> > sure why newfs cares and newfs_msdos doesn't, maybe I'm doing it wrong 
> > somehow.
> 
> sd1c shouldn't be used for filesystems. It is a special device node for
> "the entire disk". See disklabel(8). For a single filesystem on a drive,
> use either a BSD disklabel with an 'a' partition, or a DOS/GPT partition
> (whuch you can setup with fdisk) and the 'spoofed' partition letter
> (/dev/sd1i for the first one).
> 
> > How can I speed the creation of a FAT32 or Ext2 file system up?
> 
> Maybe increasing block size will help. If not, I don't think there's
> really much you can do. There's no "quick format" option for newfs_msdos
> lile there is on Windows.
> 
> 
> -- 
> Please keep replies on the mailing list.
> 

On a side note: when using newfs with ffs1 it does a full write of all
the (empty) inode tables and is also much slower than ffs2. In the
ffs2 case (default since quite a while) a lazy approach is used; only
the superblocks and a small set of inodes is initialized, the rest is
done while the fs is being used and there is need for more inodes.

        -Otto

Reply via email to