# German translations for dosfstools package
#
msgid ""
msgstr ""
"Project-Id-Version: dosfstools VERSION\n"
"POT-Creation-Date: 2015-05-16 00:40+0200\n"
"PO-Revision-Date: 2013-06-06 09:34+0300\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. type: TH
#: en/fatlabel.8:22 en/fsck.fat.8:22 en/mkfs.fat.8:22
#, no-wrap
msgid "2015-05-16"
msgstr ""

#. type: TH
#: en/fatlabel.8:22 en/fsck.fat.8:22 en/mkfs.fat.8:22
#, no-wrap
msgid "3.0.28"
msgstr ""

#. type: TH
#: en/fatlabel.8:22 en/fsck.fat.8:22 en/mkfs.fat.8:22
#, no-wrap
msgid "dosfstools"
msgstr ""

#. type: SH
#: en/fatlabel.8:23 en/fsck.fat.8:23 en/mkfs.fat.8:23
#, no-wrap
msgid "NAME"
msgstr ""

#. type: SH
#: en/fatlabel.8:26 en/fsck.fat.8:26 en/mkfs.fat.8:26
#, no-wrap
msgid "SYNOPSIS"
msgstr ""

#. type: SH
#: en/fatlabel.8:29 en/fsck.fat.8:29 en/mkfs.fat.8:29
#, no-wrap
msgid "DESCRIPTION"
msgstr ""

#. type: SH
#: en/fatlabel.8:36 en/fsck.fat.8:99 en/mkfs.fat.8:36
#, no-wrap
msgid "OPTIONS"
msgstr ""

#. type: SH
#: en/fatlabel.8:42 en/fsck.fat.8:183 en/mkfs.fat.8:155
#, no-wrap
msgid "SEE ALSO"
msgstr ""

#.  ----------------------------------------------------------------------------
#. type: Plain text
#: en/fatlabel.8:44 en/mkfs.fat.8:160
msgid "B<fsck.fat>(8)"
msgstr ""

#. type: SH
#: en/fatlabel.8:47 en/fsck.fat.8:188 en/mkfs.fat.8:160
#, no-wrap
msgid "HOMEPAGE"
msgstr ""

#.  ----------------------------------------------------------------------------
#. type: Plain text
#: en/fatlabel.8:53 en/fsck.fat.8:194 en/mkfs.fat.8:166
msgid ""
"The home for the B<dosfstools> project is its E<.UR https://github.com/"
"dosfstools/dosfstools> GitHub project page E<.UE .>"
msgstr ""

#. type: SH
#: en/fatlabel.8:53 en/fsck.fat.8:194 en/mkfs.fat.8:166
#, no-wrap
msgid "AUTHORS"
msgstr ""

#. type: Plain text
#: en/fatlabel.8:55 en/fsck.fat.8:196 en/mkfs.fat.8:168
msgid "B<dosfstools> were written by"
msgstr ""

#. type: Plain text
#: en/fatlabel.8:57 en/fsck.fat.8:198 en/mkfs.fat.8:170
msgid "Werner Almesberger"
msgstr ""

#. type: Plain text
#: en/fatlabel.8:60 en/fsck.fat.8:201 en/mkfs.fat.8:173
msgid "Roman Hodek"
msgstr ""

#. type: Plain text
#: en/fatlabel.8:63 en/fsck.fat.8:204 en/mkfs.fat.8:176
msgid "and others.  The current maintainer is"
msgstr ""

#. type: Plain text
#: en/fatlabel.8:65 en/fsck.fat.8:206 en/mkfs.fat.8:178
msgid "Andreas Bombe"
msgstr ""

#. type: IP
#: en/fsck.fat.8:100 en/mkfs.fat.8:37
#, no-wrap
msgid "B<-a>"
msgstr ""

#. type: IP
#: en/fsck.fat.8:146 en/mkfs.fat.8:138
#, no-wrap
msgid "B<-v>"
msgstr ""

#. type: SH
#: en/fsck.fat.8:177 en/mkfs.fat.8:149
#, no-wrap
msgid "BUGS"
msgstr ""

#. type: Plain text
#: en/fsck.fat.8:185 en/mkfs.fat.8:157
msgid "B<fatlabel>(8)"
msgstr ""

#. type: TH
#: en/mkfs.fat.8:22
#, no-wrap
msgid "MKFS.FAT"
msgstr ""

#.  ----------------------------------------------------------------------------
#. type: Plain text
#: en/mkfs.fat.8:26
msgid "B<mkfs.fat> - create an MS-DOS filesystem under Linux"
msgstr ""

#.  ----------------------------------------------------------------------------
#. type: Plain text
#: en/mkfs.fat.8:29
msgid "B<mkfs.fat> [I<OPTIONS>] I<DEVICE> [I<BLOCK-COUNT>]"
msgstr ""

#.  ----------------------------------------------------------------------------
#. type: Plain text
#: en/mkfs.fat.8:36
msgid ""
"B<mkfs.fat> is used to create an MS-DOS filesystem under Linux on a device "
"(usually a disk partition).  I<DEVICE> is the special file corresponding to "
"the device (e.g. /dev/sdXX).  I<BLOCK-COUNT> is the number of blocks on the "
"device.  If omitted, B<mkfs.fat> automatically determines the filesystem "
"size."
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:45
msgid ""
"Normally, for any filesystem except very small ones, B<mkfs.fat> will align "
"all the data structures to cluster size, to make sure that as long as the "
"partition is properly aligned, so will all the data structures in the "
"filesystem.  This option disables alignment; this may provide a handful of "
"additional clusters of storage at the expense of a significant performance "
"degradation on RAIDs, flash media or large-sector hard disks."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:45
#, no-wrap
msgid "B< -A>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:60
msgid ""
"Use Atari variation of the MS-DOS filesystem.  This is default if B<mkfs."
"fat> is run on an Atari, then this option turns off Atari format.  There are "
"some differences when using Atari format: If not directed otherwise by the "
"user, B<mkfs.fat> will always use 2 sectors per cluster, since GEMDOS "
"doesn't like other values very much.  It will also obey the maximum number "
"of sectors GEMDOS can handle.  Larger filesystems are managed by raising the "
"logical sector size.  Under Atari format, an Atari-compatible serial number "
"for the filesystem is generated, and a 12 bit FAT is used only for "
"filesystems that have one of the usual floppy sizes (720k, 1.2M, 1.44M, "
"2.88M), a 16 bit FAT otherwise.  This can be overridden with the B<-F> "
"option.  Some PC-specific boot sector fields aren't written, and a boot "
"message (option B<-m>) is ignored."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:60
#, no-wrap
msgid "B<-b> I<SECTOR-OF-BACKUP>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:64
msgid ""
"Selects the location of the backup boot sector for FAT32.  Default depends "
"on number of reserved sectors, but usually is sector 6.  The backup must be "
"within the range of reserved sectors."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:64
#, no-wrap
msgid "B<-c>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:66
msgid "Check the device for bad blocks before creating the filesystem."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:66
#, no-wrap
msgid "B<-C>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:80
msgid ""
"Create the file given as I<DEVICE> on the command line, and write the to-be-"
"created filesystem to it.  This can be used to create the new filesystem in "
"a file instead of on a real device, and to avoid using B<dd> in advance to "
"create a file of appropriate size.  With this option, the I<BLOCK-COUNT> "
"must be given, because otherwise the intended size of the filesystem "
"wouldn't be known.  The file created is a sparse file, which actually only "
"contains the meta-data areas (boot sector, FATs, and root directory).  The "
"data portions won't be stored on the disk, but the file nevertheless will "
"have the correct size.  The resulting file can be copied later to a floppy "
"disk or other device, or mounted through a loop device."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:80
#, no-wrap
msgid "B<-D> I<DRIVE-NUMBER>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:84
msgid ""
"Specify the BIOS drive number to be stored in the FAT boot sector.  This "
"value is usually 0x80 for hard disks and 0x00 for floppy devices or "
"partitions to be used for floppy emulation."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:84
#, no-wrap
msgid "B<-f> I<NUMBER-OF-FATS>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:87
msgid ""
"Specify the number of file allocation tables in the filesystem.  The default "
"is 2."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:87
#, no-wrap
msgid "B<-F> I<FAT-SIZE>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:91
msgid ""
"Specifies the type of file allocation tables used (12, 16 or 32 bit).  If "
"nothing is specified, B<mkfs.fat> will automatically select between 12, 16 "
"and 32 bit, whatever fits better for the filesystem size."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:91
#, no-wrap
msgid "B<-h> I<NUMBER-OF-HIDDEN-SECTORS>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:95
msgid ""
"Select the number of hidden sectors in the volume.  Apparently some digital "
"cameras get indigestion if you feed them a CF card without such hidden "
"sectors, this option allows you to satisfy them."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:95
#, no-wrap
msgid "B<-i> I<VOLUME-ID>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:99
msgid ""
"Sets the volume ID of the newly created filesystem; I<VOLUME-ID> is a 32-bit "
"hexadecimal number (for example, 2e24ec82).  The default is a number which "
"depends on the filesystem creation time."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:99
#, no-wrap
msgid "B<-I>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:108
msgid ""
"It is typical for fixed disk devices to be partitioned so, by default, you "
"are not permitted to create a filesystem across the entire device.  B<mkfs."
"fat> will complain and tell you that it refuses to work.  This is different "
"when using MO disks.  One doesn't always need partitions on MO disks.  The "
"filesystem can go directly to the whole disk.  Under other OSes this is "
"known as the 'superfloppy' format.  This switch will force B<mkfs.fat> to "
"work properly."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:108
#, no-wrap
msgid "B<-l> I<FILENAME>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:110
msgid "Read the bad blocks list from I<FILENAME>."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:110
#, no-wrap
msgid "B<-m> I<MESSAGE-FILE>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:116
msgid ""
"Sets the message the user receives on attempts to boot this filesystem "
"without having properly installed an operating system.  The message file "
"must not exceed 418 bytes once line feeds have been converted to carriage "
"return-line feed combinations, and tabs have been expanded.  If the filename "
"is a hyphen (-), the text is taken from standard input."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:116
#, no-wrap
msgid "B<-M> I<FAT-MEDIA-TYPE>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:120
msgid ""
"Specify the media type to be stored in the FAT boot sector.  This value is "
"usually 0xF8 for hard disks and is 0xF0 or a value from 0xF9 to 0xFF for "
"floppies or partitions to be used for floppy emulation."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:120
#, no-wrap
msgid "B<-n> I<VOLUME-NAME>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:124
msgid ""
"Sets the volume name (label) of the filesystem.  The volume name can be up "
"to 11 characters long.  The default is no label."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:124
#, no-wrap
msgid "B<-r> I<ROOT-DIR-ENTRIES>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:127
msgid ""
"Select the number of entries available in the root directory.  The default "
"is 112 or 224 for floppies and 512 for hard disks."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:127
#, no-wrap
msgid "B<-R> I<NUMBER-OF-RESERVED-SECTORS>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:131
msgid ""
"Select the number of reserved sectors.  With FAT32 format at least 2 "
"reserved sectors are needed, the default is 32.  Otherwise the default is 1 "
"(only the boot sector)."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:131
#, no-wrap
msgid "B<-s> I<SECTORS-PER-CLUSTER>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:134
msgid ""
"Specify the number of disk sectors per cluster.  Must be a power of 2, i.e. "
"1, 2, 4, 8, ... 128."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:134
#, no-wrap
msgid "B<-S> I<LOGICAL-SECTOR-SIZE>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:138
msgid ""
"Specify the number of bytes per logical sector.  Must be a power of 2 and "
"greater than or equal to 512, i.e. 512, 1024, 2048, 4096, 8192, 16384, or "
"32768."
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:140
msgid "Verbose execution."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:140
#, no-wrap
msgid "B<--invariant>"
msgstr ""

#. type: Plain text
#: en/mkfs.fat.8:146
msgid ""
"Use constants for normally randomly generated or time based data such as "
"volume ID and creation time.  Multiple runs of B<mkfs.fat> on the same "
"device create identical results with this option.  Its main purpose is "
"testing B<mkfs.fat>."
msgstr ""

#. type: IP
#: en/mkfs.fat.8:146
#, no-wrap
msgid "B<--help>"
msgstr ""

#.  ----------------------------------------------------------------------------
#. type: Plain text
#: en/mkfs.fat.8:149
msgid "Display option summary and exit."
msgstr ""

#.  ----------------------------------------------------------------------------
#. type: Plain text
#: en/mkfs.fat.8:155
msgid ""
"B<mkfs.fat> can not create boot-able filesystems.  This isn't as easy as you "
"might think at first glance for various reasons and has been discussed a lot "
"already.  B<mkfs.fat> simply will not support it ;)"
msgstr ""
