package fs::format; use diagnostics; use strict; use String::ShellQuote; use run_program; use common; use fs::type; use fs::loopback; use log; =head1 SYNOPSYS B enables to format filesystems. =head1 Variables =over =item %cmds Commands to format filesystem: For each filesystem, list: [ package_name, command_to_use, options_to_use ] =cut my %cmds = ( ext2 => [ 'e2fsprogs', 'mkfs.ext2', '-F' ], ext3 => [ 'e2fsprogs', 'mkfs.ext3', '-F' ], ext4 => [ 'e2fsprogs', 'mkfs.ext4', '-F' ], f2fs => [ 'f2fs-tools', 'mkfs.f2fs', '-f' ], reiserfs => [ 'reiserfsprogs', 'mkfs.reiserfs', '-ff' ], xfs => [ 'xfsprogs', 'mkfs.xfs', '-f', '-q' ], jfs => [ 'jfsutils', 'mkfs.jfs', '-f' ], hfs => [ 'hfsutils', 'hformat' ], dos => [ 'dosfstools', 'mkfs.fat' ], vfat => [ 'dosfstools', 'mkfs.fat', '-F', '32' ], exfat => [ 'exfatprogs', 'mkfs.exfat' ], swap => [ 'util-linux', 'mkswap' ], ntfs => [ 'ntfs-3g', 'mkfs.ntfs', '--fast' ], 'ntfs-3g' => [ 'ntfs-3g', 'mkfs.ntfs', '--fast' ], btrfs => [ 'btrfs-progs', 'mkfs.btrfs', '-f' ], nilfs2 => [ 'nilfs-utils', 'mkfs.nilfs2', '-f' ], ); =item %LABELs mkfs option to use in order to set the label + label specs. For each filesystem, list: [ option, max_length, handled_by_mount ] =cut my %LABELs = ( ext2 => [ '-L', 16, 1 ], ext3 => [ '-L', 16, 1 ], ext4 => [ '-L', 16, 1 ], exfat => [ '-L', 16, 1 ], f2fs => [ '-l', 16, 1 ], reiserfs => [ '-l', 16, 1 ], xfs => [ '-L', 12, 1 ], jfs => [ '-L', 16, 1 ], hfs => [ '-l', 27, 0 ], dos => [ '-n', 11, 0 ], vfat => [ '-n', 11, 0 ], swap => [ '-L', 15, 1 ], ntfs => [ '-L', 128, 0 ], 'ntfs-3g' => [ '-L', 128, 0 ], btrfs => [ '-L', 256, 1 ], nilfs2 => [ '-L', 16, 1 ], ); =item %edit_LABEL Commands to set the file system label. For each filesystem, list: [ package, command, option ] If option is defined, run