10

I am trying to automate formatting of USB drives. What I do is:

  1. Unmount USB drive
  2. terminal: sudo parted /dev/sdb1 mktable msdos

This is when I get the following error:

Error: Partition(s) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
58, 59, 60, 61, 62, 63, 64 on /dev/sdb1 have been written, but we have been
unable to inform the kernel of the change, probably because it/they are in use.
As a result, the old partition(s) will remain in use.  You should reboot now
before making further changes.

When I create a partition table on the same USB stick in GParted I don't have to reboot!

What do I have to enter into the terminal so I don't have to reboot? I mean GParted is simply the GUI to parted right?

1 Answer 1

13

First, it looks like you're trying to create a partition table, on a partition
/dev/sdb1
instead of on the disk itself
/dev/sdb

I'm guessing that could lead to some strange errors... are you really trying to create 64 partitions on a USB drive, or that could be a strange error.

After sorting out the partition table, I think these commands should work:

  1. Create MBR (msdos) partition table

    sudo parted /dev/sdb mktable msdos
    
  2. Make a partition (a primary partition, with FS ID ext3, starting at 1MB & using 100% of space) (If start at 0% or 0MB, it's not aligned to MB's and complains):

    sudo parted /dev/sdb mkpart primary ext3 1 100%
    
  3. Apparently gparted does a wipefs on new or existing partitions when they're formatted, to avoid problems with old filesystem signatures. So could do this too:

    sudo wipefs -a /dev/sdb1
    
  4. Then make the filesystem on the first partition (sdb1) just created (-L label is optional, see the mkfs.ext3/mke2fs man page for lots of options):

    sudo mkfs.ext3 -L "NewLabel" /dev/sdb1
    

Here's the built-in help from parted <dummydevicefile> help mkpart (seems more detailed than the man/info page):

mkpart PART-TYPE [FS-TYPE] START END     make a partition

    PART-TYPE is one of: primary, logical, extended  
    FS-TYPE is one of: zfs, btrfs, ext4, ext3, ext2, fat32, fat16, hfsx,
    hfs+, hfs, jfs, swsusp, linux-swap(v1), linux-swap(v0), ntfs, reiserfs,
    freebsd-ufs, hp-ufs, sun-ufs, xfs, apfs2, apfs1, asfs, amufs5, amufs4,
    amufs3, amufs2, amufs1, amufs0, amufs, affs7, affs6, affs5, affs4,
    affs3, affs2, affs1, affs0, linux-swap, linux-swap(new),
    linux-swap(old)
    START and END are disk locations, such as 4GB or 10%.  Negative values
    count from the end of the disk.  For example, -1s specifies exactly the
    last sector.

    'mkpart' makes a partition without creating a new file system on the
    partition.  FS-TYPE may be specified to set an appropriate partition
    ID.
6
  • Thats it, thanks a lot! Could you please help me out with the additional steps I have to take to create one partition with an ext3 filesystem that spans the whole USB drive?
    – schmiddl
    Jan 26, 2015 at 16:47
  • I always use gparted, but it uses the parted libraries so it's like a gui front end... and it has a "view output" (or similar) that lets you see the results of commands it uses, I think it shows the commands themselves too, so try using it and see if it tells you what commands it does. man parted should have some good explanations too...
    – Xen2050
    Jan 27, 2015 at 3:14
  • @schmiddl I tried following gparted myself, it didn't show the exact parted commands, but did describe what it does, so I filled in some blanks
    – Xen2050
    Jan 27, 2015 at 10:29
  • Great, works like a charm, thank you so much! There is one more thing: It won't mount automatically. What I did was make a directory in the /media/ folder and manually mount it in the terminal. Is there a terminal command to make the partition mount automatically when I plug the usb stick into the computer?
    – schmiddl
    Jan 27, 2015 at 10:41
  • The different desktop environments can do their "own thing" with removable media, in XFCE it's Settings has a "Removable Drives and Media" where you can tell it to mount/browse/autorun when inserted or "hot-plugged". Unity should have similar settings somewhere. I think many use udisks/udisksd, and most file managers have a "disks" listing where you can click-to-mount. Or a program like Disks (gnome-disk-utility) usually works for browsing partitions & mounting/unmounting.
    – Xen2050
    Jan 27, 2015 at 10:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .