518
523
createChkBox("nostrictatime",
519
524
tr("Use the kernel's default behaviour for inode access time updates."));
520
525
createChkBox("nosuid",
521
tr("Do not allow set-user-identifier or set-group-identifier bits to take effect.\n"
522
"(This seems safe, but is in fact rather unsafe if you have suidperl(1)\n"
526
tr("Do not allow set-user-identifier or set-group-identifier bits to take\n"
527
"effect. This seems safe, but is in fact rather unsafe if you have\n"
528
"suidperl(1) installed.)"));
524
529
createChkBox("nouser",
525
530
tr("Forbid an ordinary (i.e., non-root) user to mount the filesystem.\n"
526
531
"This is the default."));
527
532
createChkBox("relatime",
528
tr("Update inode access times relative to modify or change time. Access time is only\n"
529
"updated if the previous access time was earlier than the current modify or\n"
530
"change time. (Similar to noatime, but doesn't break mutt or other applications\n"
531
"that need to know if a file has been read since the last time it was modified.)\n\n"
532
"Since Linux 2.6.30, the kernel defaults to the behavior provided by this option\n"
533
"(unless noatime was specified), and the strictatime option is required to obtain\n"
534
"traditional semantics. In addition, since Linux 2.6.30, the file's last access\n"
535
"time is always updated if it is more than 1 day old."));
533
tr("Update inode access times relative to modify or change time. Access time is\n"
534
"only updated if the previous access time was earlier than the current\n"
535
"modify or change time. (Similar to noatime, but doesn't break mutt or other\n"
536
"applications that need to know if a file has been read since the last time\n"
537
"it was modified.)\n\n"
538
"Since Linux 2.6.30, the kernel defaults to the behavior provided by this\n"
539
"option (unless noatime was specified), and the strictatime option is\n"
540
"required to obtain traditional semantics. In addition, since Linux 2.6.30,\n"
541
"the file's last access time is always updated if it is more than 1 day old."));
536
542
createChkBox("ro",
537
543
tr("Mount the filesystem read-only."));
538
544
createChkBox("rw",
539
545
tr("Mount the filesystem read-write."));
540
546
createChkBox("strictatime",
541
tr("Allows to explicitly requesting full atime updates. This makes it possible for\n"
542
"kernel to default to relatime or noatime but still allow userspace to override\n"
543
"it. For more details about the default system mount options see /proc/mounts."));
547
tr("Allows to explicitly requesting full atime updates. This makes it possible\n"
548
"for kernel to default to relatime or noatime but still allow userspace to\n"
549
"override it. For more details about the default system mount options see\n"
544
551
createChkBox("suid",
545
552
tr("Allow set-user-identifier or set-group-identifier bits to take effect."));
546
553
createChkBox("sync",
547
tr("All I/O to the filesystem should be done synchronously. In case of media with\n"
548
"limited number of write cycles (e.g. some flash drives) 'sync'' may cause\n"
549
"life-cycle shortening."));
554
tr("All I/O to the filesystem should be done synchronously. In case of media\n"
555
"with limited number of write cycles (e.g. some flash drives) 'sync'' may\n"
556
"cause life-cycle shortening."));
550
557
createChkBox("user",
551
tr("Allow an ordinary user to mount the filesystem. The name of the mounting user\n"
552
"is written to mtab so that he can unmount the filesystem again. This option\n"
553
"implies the options noexec, nosuid, and nodev (unless overridden by subsequent\n"
554
"options, as in the option line user,exec,dev,suid)."));
558
tr("Allow an ordinary user to mount the filesystem. The name of the mounting\n"
559
"user is written to mtab so that he can unmount the filesystem again. This\n"
560
"option implies the options noexec, nosuid, and nodev (unless overridden by\n"
561
"subsequent options, as in the option line user,exec,dev,suid)."));
557
564
void OptionsDlg::fs_btrfs() {
559
566
OptChkBox* chkBox;
561
568
createChkBox("autodefrag",
562
tr("Will detect random writes into existing files and kick off background defragging."));
569
tr("Will detect random writes into existing files and kick off background\n"
563
571
chkBox = createChkBox("commit=",
564
tr("If checked, right click to change value.\n\n"
565
"Set the interval of periodic commit, 30 seconds by default. Higher values defer\n"
566
"data being synced to permanent storage with obvious consequences when the\n"
567
"system crashes. The upper bound is not forced, but a warning is printed if it's\n"
568
"more than 300 seconds (5 minutes)."));
572
tr("Set the interval of periodic commit, 30 seconds by default. Higher values\n"
573
"defer data being synced to permanent storage with obvious consequences when\n"
574
"the system crashes. The upper bound is not forced, but a warning is printed\n"
575
"if it's more than 300 seconds (5 minutes)."));
569
576
chkBox->setParamType(pint);
570
577
chkBox = createChkBox("compress=",
571
tr("If checked, right click to change value.\n\n"
572
"Enable compression. Starting with kernel 2.6.38 you can choose the algorithm for\n"
578
tr("Enable compression. Starting with kernel 2.6.38 you can choose the algorithm\n"
579
"for compression:\n\n"
574
580
" compress=zlib - Better compression ratio. It's the default and safe for\n"
575
581
" olders kernels.\n"
576
582
" compress=lzo - Faster compression.\n"
580
586
chkBox->addValue("lzo");
581
587
chkBox->addValue("no");
582
588
createChkBox("discard",
583
tr("Enables discard/TRIM on freed blocks. This can decrease performance on devices\n"
584
"that do not support queued TRIM command, like SATA prior to revision 3.1.\n"
585
"Alternatively, you can run fstrim command periodically."));
589
tr("Enables discard/TRIM on freed blocks. This can decrease performance on\n"
590
"devices that do not support queued TRIM command, like SATA prior to\n"
591
"revision 3.1. Alternatively, you can run fstrim command periodically."));
586
592
createChkBox("noacl",
587
593
tr("Do not enable ACL's."));
588
594
createChkBox("nobarrier",
589
595
tr("Do not use device barriers. NOTE: Using this option greatly increases the\n"
590
"chances of you experiencing data corruption during a power failure situation.\n"
591
"This means full filesystem corruption, and not just losing or corrupting data\n"
592
"that was being written during a power cut or kernel panic."));
596
"chances of you experiencing data corruption during a power failure\n"
597
"situation. This means full filesystem corruption, and not just losing or\n"
598
"corrupting data that was being written during a power cut or kernel panic."));
593
599
createChkBox("nodatacow",
594
tr("Do not copy-on-write data for newly created files, existing files are unaffected.\n"
595
"This also turns off checksumming! IOW, nodatacow implies nodatasum. datacow is\n"
596
"used to ensure the user either has access to the old version of a file, or to\n"
597
"the newer version of the file. datacow makes sure we never have partially updated\n"
598
"files written to disk. nodatacow gives slight performance boost by directly\n"
599
"overwriting data (like ext[234]), at the expense of potentially getting partially\n"
600
"updated files on system failures. Performance gain is usually < 5% unless the\n"
601
"workload is random writes to large database files, where the difference can\n"
602
"become very large. NOTE: switches off compression !"));
600
tr("Do not copy-on-write data for newly created files, existing files are\n"
601
"unaffected. This also turns off checksumming! IOW, nodatacow implies\n"
602
"nodatasum. datacow is used to ensure the user either has access to the old\n"
603
"version of a file, or to the newer version of the file. datacow makes sure\n"
604
"we never have partially updated files written to disk. nodatacow gives\n"
605
"slight performance boost by directly overwriting data (like ext[234]), at\n"
606
"the expense of potentially getting partially updated files on system\n"
607
"failures. Performance gain is usually < 5% unless the workload is random\n"
608
"writes to large database files, where the difference can become very large.\n"
609
"NOTE: switches off compression !"));
603
610
createChkBox("nodatasum",
604
tr("Do not checksum data for newly created files. Means bit flips and bit rot might\n"
605
"go undetected, but allows for slightly faster operation since data checksum\n"
606
"does not have to be calculated. On most modern CPUs this option does not result\n"
607
"in any reasonable performance improvement."));
611
tr("Do not checksum data for newly created files. Means bit flips and bit rot\n"
612
"might go undetected, but allows for slightly faster operation since data\n"
613
"checksum does not have to be calculated. On most modern CPUs this option\n"
614
"does not result in any reasonable performance improvement."));
608
615
chkBox = createChkBox("subvol=",
609
tr("Mount a subvolume instead of the root subvolume. The subvolume path is relative\n"
610
"to the toplevel subvolume. Note: until kernels 3.2 the subvolume had to be in\n"
611
"the toplevel subvolume. There was a bandaid to specify the parent subvolume\n"
612
"instead of the toplevel via subvolrootid."));
616
tr("Mount a subvolume instead of the root subvolume. The subvolume path is\n"
617
"relative to the toplevel subvolume. Note: until kernels 3.2 the subvolume\n"
618
"had to be in the toplevel subvolume. There was a bandaid to specify the\n"
619
"parent subvolume instead of the toplevel via subvolrootid."));
613
620
chkBox->setParamType(pstr);
623
630
createChkBox("auto",
624
631
tr("Can be mounted with the -a option."));
625
632
chkBox = createChkBox("cache=",
626
tr("Cache mode. See the section in the mount.cifs man page on CACHE COHERENCY for\n"
627
"details. Allowed values are:\n\n"
633
tr("Cache mode. See the section in the mount.cifs man page on CACHE COHERENCY\n"
634
"for details. Allowed values are:\n\n"
628
635
" none: do not cache file data at all\n\n"
629
636
" strict: follow the CIFS/SMB2 protocol strictly\n\n"
630
637
" loose: allow loose caching semantics\n\n"
631
"The default in kernels prior to 3.7 was 'loose'. As of kernel 3.7 the default\n"
638
"The default in kernels prior to 3.7 was 'loose'. As of kernel 3.7 the\n"
639
"default is 'strict'."));
633
640
chkBox->setParamType(pitm);
634
641
chkBox->addValue("none");
635
642
chkBox->addValue("strict");
636
643
chkBox->addValue("loose");
637
644
chkBox = createChkBox("credentials=",
638
tr("Specifies a file that contains a username and/or password and optionally the\n"
639
"name of the workgroup. The format of the file is:\n\n"
645
tr("Specifies a file that contains a username and/or password and optionally\n"
646
"the name of the workgroup. The format of the file is:\n\n"
640
647
" username=value\n"
641
648
" password=value\n"
642
649
" domain=value\n\n"
643
"This is preferred over having passwords in plaintext in a shared file, such as\n"
644
"/etc/fstab. Be sure to protect any credentials file properly."));
650
"This is preferred over having passwords in plaintext in a shared file, such\n"
651
"as /etc/fstab. Be sure to protect any credentials file properly."));
645
652
chkBox->setParamType(pstr);
646
653
chkBox = createChkBox("dir_mode=",
647
654
tr("If the server does not support the CIFS Unix extensions this overrides the\n"
658
665
chkBox->setParamType(poct);
659
666
createChkBox("forcegid",
660
667
tr("Instructs the client to ignore any gid provided by the server for files and\n"
661
"directories and to always assign the owner to be the value of the gid= option.\n"
662
"See the section in the mount.cifs man page on FILE AND DIRECTORY OWNERSHIP AND\n"
663
"PERMISSIONS for more information."));
668
"directories and to always assign the owner to be the value of the gid=\n"
669
"option. See the section in the mount.cifs man page on FILE AND DIRECTORY\n"
670
"OWNERSHIP AND PERMISSIONS for more information."));
664
671
createChkBox("forceuid",
665
672
tr("Instructs the client to ignore any uid provided by the server for files and\n"
666
"directories and to always assign the owner to be the value of the uid= option.\n"
667
"See the section in the mount.cifs man page on FILE AND DIRECTORY OWNERSHIP AND\n"
668
"PERMISSIONS for more information."));
673
"directories and to always assign the owner to be the value of the uid=\n"
674
"option. See the section in the mount.cifs man page on FILE AND DIRECTORY\n"
675
"OWNERSHIP AND PERMISSIONS for more information."));
669
676
chkBox = createChkBox("gid=",
670
tr("Sets the gid that will own all files or directories on the mounted filesystem\n"
671
"when the server does not provide ownership information. It may be specified as\n"
672
"either a groupname or a numeric gid. When not specified, the default is gid 0.\n"
673
"The mount.cifs helper must be at version 1.10 or higher to support specifying\n"
674
"the gid in non-numeric form. See the section in the mount.cifs man page on\n"
675
"FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS for more information."));
677
tr("Sets the gid that will own all files or directories on the mounted\n"
678
"filesystem when the server does not provide ownership information. It may\n"
679
"be specified as either a groupname or a numeric gid. When not specified,\n"
680
"the default is gid 0. The mount.cifs helper must be at version 1.10 or\n"
681
"higher to support specifying the gid in non-numeric form. See the section\n"
682
"in the mount.cifs man page on FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS\n"
683
"for more information."));
676
684
chkBox->setParamType(pstr);
677
685
createChkBox("group",
678
tr("Allow an ordinary (i.e., non-root) user to mount the filesystem if one of his\n"
679
"groups matches the group of the device. This option implies the options nosuid\n"
680
"and nodev (unless overridden by subse‐quent options, as in the option line group,\n"
686
tr("Allow an ordinary (i.e., non-root) user to mount the filesystem if one of\n"
687
"his groups matches the group of the device. This option implies the options\n"
688
"nosuid and nodev (unless overridden by subse‐quent options, as in the\n"
689
"option line group,dev,suid)."));
682
690
createChkBox("guest",
683
691
tr("Don´t prompt for a password."));
684
692
createChkBox("hard",
703
711
"(and most cifs servers do not yet support requesting advisory byte range\n"
705
713
createChkBox("nocase",
706
tr("Request case insensitive path name matching (case sensitive is the default if\n"
707
"the server suports it)."));
714
tr("Request case insensitive path name matching (case sensitive is the default\n"
715
"if the server suports it)."));
708
716
createChkBox("noexec",
709
717
tr("Do not allow direct execution of any binaries on the mounted filesystem."));
710
718
createChkBox("noperm",
711
tr("Client does not do permission checks. This can expose files on this mount to\n"
712
"access by other users on the local client system. It is typically only needed\n"
713
"when the server supports the CIFS Unix Extensions but the UIDs/GIDs on the\n"
714
"client and server system do not match closely enough to allow access by the\n"
715
"user doing the mount. Note that this does not affect the normal ACL check on\n"
716
"the target machine done by the server software (of the server ACL against the\n"
717
"user name provided at mount time)."));
719
tr("Client does not do permission checks. This can expose files on this mount\n"
720
"to access by other users on the local client system. It is typically only\n"
721
"needed when the server supports the CIFS Unix Extensions but the UIDs/GIDs\n"
722
"on the client and server system do not match closely enough to allow access\n"
723
"by the user doing the mount. Note that this does not affect the normal ACL\n"
724
"check on the target machine done by the server software (of the server ACL\n"
725
"against the user name provided at mount time)."));
718
726
createChkBox("nosetuids",
719
tr("The client will not attempt to set the uid and gid on on newly created files,\n"
720
"directories, and devices (create, mkdir, mknod) which will result in the\n"
721
"server setting the uid and gid to the default (usually the server uid of the\n"
722
"user who mounted the share). Letting the server (rather than the client) set\n"
723
"the uid and gid is the default.If the CIFS Unix Extensions are not negotiated\n"
724
"then the uid and gid for new files will appear to be the uid (gid) of the\n"
725
"mounter or the uid (gid) parameter specified on the mount."));
727
tr("The client will not attempt to set the uid and gid on on newly created\n"
728
"files, directories, and devices (create, mkdir, mknod) which will result in\n"
729
"the server setting the uid and gid to the default (usually the server uid\n"
730
"of the user who mounted the share). Letting the server (rather than the\n"
731
"client) set the uid and gid is the default.If the CIFS Unix Extensions are\n"
732
"not negotiated then the uid and gid for new files will appear to be the uid\n"
733
"(gid) of the mounter or the uid (gid) parameter specified on the mount."));
726
734
createChkBox("nouser",
727
735
tr("Forbid an ordinary (i.e., non-root) user to mount the filesystem.\n"
728
736
"This is the default."));
729
737
chkBox = createChkBox("password=",
730
tr("Specifies the CIFS password. If this option is not given then the environment\n"
731
"variable PASSWD is used. If the password is not specified directly or\n"
732
"indirectly via an argument to mount, mount.cifs will prompt for a password,\n"
733
"unless the guest option is specified.\n\n"
734
"Note that a password which contains the delimiter character (i.e. a comma ',')\n"
735
"will fail to be parsed correctly on the command line. However, the same\n"
736
"password defined in the PASSWD environment variable or via a credentials file\n"
737
"or entered at the password prompt will be read correctly."));
738
tr("Specifies the CIFS password. If this option is not given then the\n"
739
"environment variable PASSWD is used. If the password is not specified\n"
740
"directly or indirectly via an argument to mount, mount.cifs will prompt for\n"
741
"a password, unless the guest option is specified.\n\n"
742
"Note that a password which contains the delimiter character (i.e. a comma\n"
743
"',') will fail to be parsed correctly on the command line. However, the\n"
744
"same password defined in the PASSWD environment variable or via a\n"
745
"credentials file or entered at the password prompt will be read correctly."));
738
746
chkBox->setParamType(pstr);
739
747
createChkBox("perm",
740
tr("Client does permission checks (vfs_permission check of uid and gid of the file\n"
741
"against the mode and desired operation), Note that this is in addition to the\n"
742
"normal ACL check on the target machine done by the server software. Client\n"
743
"permission checking is enabled by default."));
748
tr("Client does permission checks (vfs_permission check of uid and gid of the\n"
749
"file against the mode and desired operation), Note that this is in addition\n"
750
"to the normal ACL check on the target machine done by the server software.\n"
751
"Client permission checking is enabled by default."));
744
752
chkBox = createChkBox("port=",
745
753
tr("Sets the port number on which the client will attempt to contact the CIFS\n"
746
"server. If this value is specified, look for an existing connection with this\n"
747
"port, and use that if one exists. If one doesn't exist, try to create a new\n"
748
"connection on that port. If that connection fails, return an error. If this\n"
749
"value isn't specified, look for an existing connection on port 445 or 139. If\n"
750
"no such connection exists, try to connect on port 445 first and then port 139\n"
751
"if that fails. Return an error if both fail."));
754
"server. If this value is specified, look for an existing connection with\n"
755
"this port, and use that if one exists. If one doesn't exist, try to create\n"
756
"a new connection on that port. If that connection fails, return an error.\n"
757
"If this value isn't specified, look for an existing connection on port 445\n"
758
"or 139. If no such connection exists, try to connect on port 445 first and\n"
759
"then port 139 if that fails. Return an error if both fail."));
752
760
chkBox->setParamType(pint);
753
761
chkBox->setMinValue(1);
754
762
chkBox->setMaxValue(65535);
788
797
chkBox->addValue("ntlmssp");
789
798
chkBox->addValue("ntlmsspi");
790
799
chkBox = createChkBox("servernetbiosname=",
791
tr("Specify the server netbios name (RFC1001 name) to use when attempting to setup\n"
792
"a session to the server. Although rarely needed for mounting to newer servers,\n"
793
"this option is needed for mounting to some older servers (such as OS/2 or\n"
794
"Windows 98 and Windows ME) since when connecting over port 139 they, unlike\n"
795
"most newer servers, do not support a default server name. A server name can be\n"
796
"up to 15 characters long and is usually uppercased."));
800
tr("Specify the server netbios name (RFC1001 name) to use when attempting to\n"
801
"setup a session to the server. Although rarely needed for mounting to newer\n"
802
"servers, this option is needed for mounting to some older servers (such as\n"
803
"OS/2 or Windows 98 and Windows ME) since when connecting over port 139\n"
804
"they, unlike most newer servers, do not support a default server name. A\n"
805
"server name can be up to 15 characters long and is usually uppercased."));
797
806
chkBox->setParamType(pstr);
798
807
createChkBox("setuids",
799
808
tr("If the CIFS Unix extensions are negotiated with the server the client will\n"
800
"attempt to set the effective uid and gid of the local process on newly created\n"
801
"files, directories, and devices (create, mkdir, mknod). If the CIFS Unix\n"
802
"Extensions are not negotiated, for newly created files and directories instead\n"
803
"of using the default uid and gid specified on the the mount, cache the new\n"
804
"file´s uid and gid locally which means that the uid for the file can change\n"
805
"when the inode is reloaded (or the user remounts the share)."));
809
"attempt to set the effective uid and gid of the local process on newly\n"
810
"created files, directories, and devices (create, mkdir, mknod). If the CIFS\n"
811
"Unix Extensions are not negotiated, for newly created files and directories\n"
812
"instead of using the default uid and gid specified on the the mount, cache\n"
813
"the new file´s uid and gid locally which means that the uid for the file\n"
814
"can change when the inode is reloaded (or the user remounts the share)."));
806
815
createChkBox("soft",
807
816
tr("(default) The program accessing a file on the cifs mounted file system will\n"
808
817
"not hang when the server crashes and will return errors to the user\n"
809
818
"application."));
810
819
createChkBox("sync",
811
tr("All I/O to the filesystem should be done synchronously. In case of media with\n"
812
"limited number of write cycles (e.g. some flash drives) 'sync' may cause\n"
813
"life-cycle shortening."));
820
tr("All I/O to the filesystem should be done synchronously. In case of media\n"
821
"with limited number of write cycles (e.g. some flash drives) 'sync' may\n"
822
"cause life-cycle shortening."));
814
823
chkBox = createChkBox("uid=",
815
tr("Sets the uid that will own all files or directories on the mounted filesystem\n"
816
"when the server does not provide ownership information. It may be specified as\n"
817
"either a username or a numeric uid. When not specified, the default is uid 0.\n"
818
"The mount.cifs helper must be at version 1.10 or higher to support specifying\n"
819
"the uid in non-numeric form. See the section in the mount.cifs man page on\n"
820
"FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS for more information."));
824
tr("Sets the uid that will own all files or directories on the mounted\n"
825
"filesystem when the server does not provide ownership information. It may\n"
826
"be specified as either a username or a numeric uid. When not specified,\n"
827
"the default is uid 0. The mount.cifs helper must be at version 1.10 or\n"
828
"higher to support specifying the uid in non-numeric form. See the section\n"
829
"in the mount.cifs man page on FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS\n"
830
"for more information."));
821
831
chkBox->setParamType(pstr);
822
832
createChkBox("user",
823
tr("Allow an ordinary user to mount the filesystem. The name of the mounting user\n"
824
"is written to mtab so that he can unmount the filesystem again. This option\n"
825
"implies the options noexec, nosuid, and nodev (unless overridden by subsequent\n"
826
"options, as in the option line user,exec,dev,suid)."));
833
tr("Allow an ordinary user to mount the filesystem. The name of the mounting\n"
834
"user is written to mtab so that he can unmount the filesystem again. This\n"
835
"option implies the options noexec, nosuid, and nodev (unless overridden by\n"
836
"subsequent options, as in the option line user,exec,dev,suid)."));
827
837
chkBox = createChkBox("username=",
828
838
tr("Specifies the username to connect as. If this is not given, then the\n"
829
839
"environment variable USER is used.\n\n"
830
"Earlier versions of mount.cifs also allowed one to specify the username in a\n"
831
"'user%password' or 'workgroup/user' or 'workgroup/user%password' to allow the\n"
832
"password and workgroup to be specified as part of the username. Support for\n"
833
"those alternate username formats is now deprecated and should no longer be\n"
834
"used. Users should use the discrete 'password=' and 'domain=' to specify those\n"
835
"values. While some versions of the cifs kernel module accept 'user=' as an\n"
836
"abbreviation for this option, its use can confuse the standard mount program\n"
837
"into thinking that this is a non-superuser mount. It is therefore recommended\n"
838
"to use the full 'username=' option name."));
840
"Earlier versions of mount.cifs also allowed one to specify the username in\n"
841
"a 'user%password' or 'workgroup/user' or 'workgroup/user%password' to allow\n"
842
"the password and workgroup to be specified as part of the username. Support\n"
843
"for those alternate username formats is now deprecated and should no longer\n"
844
"be used. Users should use the discrete 'password=' and 'domain=' to specify\n"
845
"those values. While some versions of the cifs kernel module accept 'user='\n"
846
"as an abbreviation for this option, its use can confuse the standard mount\n"
847
"program into thinking that this is a non-superuser mount. It is therefore\n"
848
"recommended to use the full 'username=' option name."));
839
849
chkBox->setParamType(pstr);
840
850
chkBox = createChkBox("vers=",
841
851
tr("SMB protocol version. Allowed values are:\n\n"
842
852
" 1.0 - The classic CIFS/SMBv1 protocol. This is the default.\n\n"
843
853
" 2.0 - The SMBv2.002 protocol. This was initially introduced in Windows\n"
844
" Vista Service Pack 1, and Windows Server 2008. Note that the initial\n"
845
" release version of Windows Vista spoke a slightly different dialect\n"
846
" (2.000) that is not supported.\n\n"
847
" 2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7 and\n"
848
" Windows Server 2008R2.\n\n"
849
" 3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8 and\n"
850
" Windows Server 2012.\n\n"
854
" Vista Service Pack 1, and Windows Server 2008. Note that the\n"
855
" initial release version of Windows Vista spoke a slightly\n"
856
" different dialect (2.000) that is not supported.\n\n"
857
" 2.1 - The SMBv2.1 protocol that was introduced in Microsoft Windows 7\n"
858
" and Windows Server 2008R2.\n\n"
859
" 3.0 - The SMBv3.0 protocol that was introduced in Microsoft Windows 8\n"
860
" and Windows Server 2012.\n\n"
851
861
"Note too that while this option governs the protocol version used, not all\n"
852
862
"features of each version are available."));
853
863
chkBox->setParamType(pitm);
887
897
createChkBox("acl",
888
898
tr("Enable POSIX Access Control Lists. See the acl(5) manual page."));
889
899
chkBox = createChkBox("barrier=",
890
tr("This enables/disables barriers. barrier=0 disables it, barrier=1 enables it.\n"
891
"Write barriers enforce proper on-disk ordering of journal commits, making\n"
892
"volatile disk write caches safe to use, at some performance penalty. The ext3\n"
893
"filesystem does not enable write barriers by default. Be sure to enable\n"
894
"barriers unless your disks are battery-backed one way or another. Otherwise\n"
895
"you risk filesystem corruption in case of power failure."));
900
tr("This enables/disables barriers. barrier=0 disables it, barrier=1 enables\n"
901
"it. Write barriers enforce proper on-disk ordering of journal commits,\n"
902
"making volatile disk write caches safe to use, at some performance penalty.\n"
903
"The ext3 filesystem does not enable write barriers by default. Be sure to\n"
904
"enable barriers unless your disks are battery-backed one way or another.\n"
905
"Otherwise you risk filesystem corruption in case of power failure."));
896
906
chkBox->setParamType(pitm);
897
907
chkBox->addValue("0");
898
908
chkBox->addValue("1");
899
909
chkBox = createChkBox("commit=",
900
tr("Sync all data and metadata every n sec seconds. The default value is 5 seconds.\n"
901
"Zero means default."));
910
tr("Sync all data and metadata every n sec seconds. The default value is 5\n"
911
"seconds. Zero means default."));
902
912
chkBox->setParamType(pint);
903
913
chkBox->setMinValue(0);
904
914
chkBox->setMaxValue(0);
905
915
chkBox = createChkBox("data=",
906
916
tr("Specifies the journalling mode for file data. Metadata is always journaled.\n"
907
"To use modes other than ordered on the root filesystem, pass the mode to the\n"
908
"kernel as boot parameter, e.g. root-flags=data=journal.\n\n"
917
"To use modes other than ordered on the root filesystem, pass the mode to\n"
918
"the kernel as boot parameter, e.g. root-flags=data=journal.\n\n"
910
920
" All data is committed into the journal prior to being written into the\n"
911
921
" main filesystem.\n\n"
947
957
tr("Enable POSIX Access Control Lists. See the acl(5) manual page."));
948
958
chkBox = createChkBox("barrier=",
949
959
tr("This enables/disables the use of write barriers in the jbd code. barrier=0\n"
950
"disables, barrier=1 enables. This also requires an IO stack which can support\n"
951
"barriers, and if jbd gets an error on a barrier write, it will disable again\n"
952
"with a warning. Write barriers enforce proper on-disk ordering of journal\n"
953
"commits, making volatile disk write caches safe to use, at some performance\n"
954
"penalty. If your disks are battery-backed in one way or another, disabling\n"
955
"barriers may safely improve performance. The mount options 'barrier' and\n"
956
"'nobarrier' can also be used to enable or disable barriers, for consistency\n"
957
"with other ext4 mount options.\n\n"
960
"disables, barrier=1 enables. This also requires an IO stack which can\n"
961
"support barriers, and if jbd gets an error on a barrier write, it will\n"
962
"disable again with a warning. Write barriers enforce proper on-disk\n"
963
"ordering of journal commits, making volatile disk write caches safe to\n"
964
"use, at some performance penalty. If your disks are battery-backed in one\n"
965
"way or another, disabling barriers may safely improve performance. The\n"
966
"mount options 'barrier' and 'nobarrier' can also be used to enable or\n"
967
"disable barriers, for consistency with other ext4 mount options.\n\n"
958
968
"The ext4 filesystem enables write barriers by default."));
959
969
chkBox->setParamType(pitm);
960
970
chkBox->addValue("0");
961
971
chkBox->addValue("1");
962
972
chkBox = createChkBox("commit=",
963
tr("Sync all data and metadata every n sec seconds. The default value is 5 seconds.\n"
964
"Zero means default."));
973
tr("Sync all data and metadata every n sec seconds. The default value is 5\n"
974
"seconds. Zero means default."));
965
975
chkBox->setParamType(pint);
966
976
chkBox->setMinValue(0);
967
977
chkBox->setMaxValue(0);
968
978
chkBox = createChkBox("data=",
969
tr("Specifies the journalling mode for file data. Metadata is always journaled. To\n"
970
"use modes other than ordered on the root filesystem, pass the mode to the\n"
971
"kernel as boot parameter, e.g. root-flags=data=journal.\n\n"
979
tr("Specifies the journalling mode for file data. Metadata is always journaled.\n"
980
"To use modes other than ordered on the root filesystem, pass the mode to\n"
981
"the kernel as boot parameter, e.g. root-flags=data=journal.\n\n"
973
983
" All data is committed into the journal prior to being written into the\n"
974
984
" main filesystem.\n\n"
990
1000
createChkBox("noacl",
991
1001
tr("Do not support POSIX Access Control Lists."));
992
1002
createChkBox("nodelalloc",
993
tr("Disable delayed allocation. Blocks are allocated when data is copied from user\n"
1003
tr("Disable delayed allocation. Blocks are allocated when data is copied from\n"
1004
"user to page cache."));
995
1005
createChkBox("nouser_xattr",
996
1006
tr("Do not support 'user' extended attribute"));
997
1007
chkBox = createChkBox("errors=",
998
tr("Define the behaviour when an error is encountered. (Either ignore errors and\n"
999
"just mark the filesystem erroneous and continue, or remount the filesystem\n"
1000
"read-only, or panic and halt the system.) The default is set in the filesystem\n"
1001
"superblock, and can be changed using tune2fs(8)."));
1008
tr("Define the behaviour when an error is encountered. (Either ignore errors\n"
1009
"and just mark the filesystem erroneous and continue, or remount the\n"
1010
"filesystem read-only, or panic and halt the system.) The default is set in\n"
1011
"the filesystem superblock, and can be changed using tune2fs(8)."));
1002
1012
chkBox->setParamType(pitm);
1003
1013
chkBox->addValue("continue");
1004
1014
chkBox->addValue("remount-ro");
1005
1015
chkBox->addValue("panic");
1006
1016
createChkBox("journal_checksum",
1007
tr("Enable checksumming of the journal transactions. This will allow the recovery\n"
1008
"code in e2fsck and the kernel to detect corruption in the kernel. It is a\n"
1009
"compatible change and will be ignored by older kernels."));
1017
tr("Enable checksumming of the journal transactions. This will allow the\n"
1018
"recovery code in e2fsck and the kernel to detect corruption in the kernel.\n"
1019
"It is a compatible change and will be ignored by older kernels."));
1010
1020
chkBox = createChkBox("max_batch_time=",
1011
tr("Maximum amount of time ext4 should wait for additional filesystem operations\n"
1012
"to be batch together with a synchronous write operation. Since a synchronous\n"
1013
"write operation is going to force a commit and then a wait for the I/O\n"
1014
"complete, it doesn't cost much, and can be a huge throughput win, we wait for\n"
1015
"a small amount of time to see if any other transactions can piggyback on the\n"
1016
"synchronous write. The algorithm used is designed to automatically tune for\n"
1017
"the speed of the disk, by measuring the amount of time (on average) that it\n"
1018
"takes to finish committing a transaction. Call this time the 'commit time'.\n"
1019
"If the time that the transaction has been running is less than the commit\n"
1020
"time, ext4 will try sleeping for the commit time to see if other operations\n"
1021
"will join the transaction. The commit time is capped by the max_batch_time,\n"
1022
"which defaults to 15000us (15ms). This optimization can be turned off entirely\n"
1023
"by setting max_batch_time to 0."));
1021
tr("Maximum amount of time ext4 should wait for additional filesystem\n"
1022
"operations to be batch together with a synchronous write operation.\n"
1023
"Since a synchronous write operation is going to force a commit and\n"
1024
"then a wait for the I/O complete, it doesn't cost much, and can be a\n"
1025
"huge throughput win, we wait for a small amount of time to see if any\n"
1026
"other transactions can piggyback on the synchronous write. The algorithm\n"
1027
"used is designed to automatically tune for the speed of the disk, by\n"
1028
"measuring the amount of time (on average) that it takes to finish\n"
1029
"committing a transaction. Call this time the 'commit time'. If the time\n"
1030
"that the transaction has been running is less than the commit time, ext4\n"
1031
"will try sleeping for the commit time to see if other operations will\n"
1032
"join the transaction. The commit time is capped by the max_batch_time,\n"
1033
"which defaults to 15000us (15ms). This optimization can be turned off\n"
1034
"entirely by setting max_batch_time to 0."));
1024
1035
chkBox->setParamType(pint);
1025
1036
chkBox->setMinValue(0);
1026
1037
chkBox->setMaxValue(0);
1043
1054
chkBox = createChkBox("check=",
1044
1055
tr("Three different levels of pickyness can be chosen:\n\n"
1046
" Upper and lower case are accepted and equivalent, long name parts are\n"
1047
" truncated (e.g. verylongname.foobar becomes verylong.foo), leading and\n"
1048
" embedded spaces are accepted in each name part (name and extension).\n\n"
1057
" Upper and lower case are accepted and equivalent, long name parts\n"
1058
" are truncated (e.g. verylongname.foobar becomes verylong.foo),\n"
1059
" leading and embedded spaces are accepted in each name part (name\n"
1060
" and extension).\n\n"
1050
" Like 'relaxed', but many special characters (*, ?, <, spaces, etc.) are\n"
1051
" rejected. This is the default.\n\n"
1062
" Like 'relaxed', but many special characters (*, ?, <, spaces, etc.)\n"
1063
" are rejected. This is the default.\n\n"
1053
1065
" Like 'normal', but names may not contain long parts and special\n"
1054
" characters that are sometimes used on Linux, but are not accepted by\n"
1055
" MS-DOS are rejected. (+, =, spaces, etc.)"));
1066
" characters that are sometimes used on Linux, but are not accepted\n"
1067
" by MS-DOS are rejected. (+, =, spaces, etc.)"));
1056
1068
chkBox->setParamType(pitm);
1057
1069
chkBox->addValue("relaxed");
1058
1070
chkBox->addValue("normal");
1099
1111
chkBox = createChkBox("check=",
1100
1112
tr("Three different levels of pickyness can be chosen:\n\n"
1102
" Upper and lower case are accepted and equivalent, long name parts are\n"
1103
" truncated (e.g. verylongname.foobar becomes verylong.foo), leading and\n"
1104
" embedded spaces are accepted in each name part (name and extension).\n\n"
1114
" Upper and lower case are accepted and equivalent, long name parts\n"
1115
" are truncated (e.g. verylongname.foobar becomes verylong.foo),\n"
1116
" leading and embedded spaces are accepted in each name part (name\n"
1117
" and extension).\n\n"
1106
" Like 'relaxed', but many special characters (*, ?, <, spaces, etc.) are\n"
1107
" rejected. This is the default.\n\n"
1119
" Like 'relaxed', but many special characters (*, ?, <, spaces, etc.)\n"
1120
" are rejected. This is the default.\n\n"
1109
1122
" Like 'normal', but names may not contain long parts and special\n"
1110
" characters that are sometimes used on Linux, but are not accepted by\n"
1111
" MS-DOS are rejected. (+, =, spaces, etc.)"));
1123
" characters that are sometimes used on Linux, but are not accepted\n"
1124
" by MS-DOS are rejected. (+, =, spaces, etc.)"));
1112
1125
chkBox->setParamType(pitm);
1113
1126
chkBox->addValue("relaxed");
1114
1127
chkBox->addValue("normal");
1134
1147
"name~num.ext."));
1135
1148
chkBox = createChkBox("shortname=",
1136
1149
tr("Defines the behaviour for creation and display of filenames which fit into\n"
1137
"8.3 characters. If a long name for a file exists, it will always be preferred\n"
1138
"display. There are four modes:\n\n"
1150
"8.3 characters. If a long name for a file exists, it will always be\n"
1151
"preferred display. There are four modes:\n\n"
1140
" Force the short name to lower case upon display; store a long name when\n"
1141
" the short name is not all upper case.\n\n"
1153
" Force the short name to lower case upon display; store a long name\n"
1154
" when the short name is not all upper case.\n\n"
1143
" Force the short name to upper case upon display; store a long name when\n"
1144
" the short name is not all upper case.\n\n"
1156
" Force the short name to upper case upon display; store a long name\n"
1157
" when the short name is not all upper case.\n\n"
1146
" Display the shortname as is; store a long name when the short name is\n"
1147
" not all lower case or all upper case.\n\n"
1159
" Display the shortname as is; store a long name when the short name is\n"
1160
" not all lower case or all upper case.\n\n"
1149
" Display the short name as is; store a long name when the short name is\n"
1150
" not all upper case. This mode is the default since Linux 2.6.32."));
1162
" Display the short name as is; store a long name when the short name\n"
1163
" is not all upper case. This mode is the default since Linux 2.6.32."));
1151
1164
chkBox->setParamType(pitm);
1152
1165
chkBox->addValue("lower");
1153
1166
chkBox->addValue("win95");
1171
1184
"default is the umask of the current process. The value is given in octal."));
1172
1185
chkBox->setParamType(poct);
1173
1186
createChkBox("uni_xlate",
1174
tr("Translate unhandled Unicode characters to special escaped sequences. This lets\n"
1175
"you backup and restore filenames that are created with any Unicode characters.\n"
1176
"Without this option, a '?' is used when no translation is possible. The escape\n"
1177
"character is ':' because it is otherwise illegal on the vfat filesystem. The\n"
1178
"escape sequence that gets used, where u is the unicode character, is: ':',\n"
1179
"(u & 0x3f), ((u>>6) & 0x3f), (u>>12)."));
1187
tr("Translate unhandled Unicode characters to special escaped sequences. This\n"
1188
"lets you backup and restore filenames that are created with any Unicode\n"
1189
"characters. Without this option, a '?' is used when no translation is\n"
1190
"possible. The escape character is ':' because it is otherwise illegal on\n"
1191
"the vfat filesystem. The escape sequence that gets used, where u is the\n"
1192
"unicode character, is: ':', (u & 0x3f), ((u>>6) & 0x3f), (u>>12)."));
1180
1193
createChkBox("utf8",
1181
1194
tr("UTF8 is the filesystem safe 8-bit encoding of Unicode that is used by the\n"
1182
1195
"console. It can be enabled for the filesystem with this option."));
1190
1203
OptChkBox *chkBox;
1192
1205
chkBox = createChkBox("gid=",
1193
tr("Set the file permission on the filesystem. By default, the files are owned by\n"
1194
"root and not readable by somebody else."));
1206
tr("Set the file permission on the filesystem. By default, the files are owned\n"
1207
"by root and not readable by somebody else."));
1195
1208
chkBox->setParamType(pint);
1196
1209
chkBox->setMinValue(0);
1197
1210
chkBox->setMaxValue(0);
1198
1211
chkBox = createChkBox("uid=",
1199
tr("Set the file permission on the filesystem. By default, the files are owned by\n"
1200
"root and not readable by somebody else."));
1212
tr("Set the file permission on the filesystem. By default, the files are owned\n"
1213
"by root and not readable by somebody else."));
1201
1214
chkBox->setParamType(pint);
1202
1215
chkBox->setMinValue(0);
1203
1216
chkBox->setMaxValue(0);
1204
1217
chkBox = createChkBox("umask=",
1205
tr("Set the file permission on the filesystem. The umask value is given in octal.\n"
1206
"By default, the files are owned by root and not readable by somebody else."));
1218
tr("Set the file permission on the filesystem. The umask value is given in\n"
1219
"octal. By default, the files are owned by root and not readable by somebody\n"
1207
1221
chkBox->setParamType(poct);
1208
1222
chkBox = createChkBox("uni_xlate=",
1209
tr("For 0, do not use escape sequences for unknown Unicode characters. For 1 or 2,\n"
1210
"use vfat-style 4-byte escape sequences starting with ':'. Here 2 give a\n"
1223
tr("For 0, do not use escape sequences for unknown Unicode characters. For 1 or\n"
1224
"2, use vfat-style 4-byte escape sequences starting with ':'. Here 2 give a\n"
1211
1225
"little-endian encoding and 1 a byteswapped bigendian encoding."));
1212
1226
chkBox->setParamType(pitm);
1213
1227
chkBox->addValue("0");
1222
1236
OptChkBox *chkBox;
1224
1238
chkBox = createChkBox("hash=",
1225
tr("{Choose which hash function reiserfs will use to find files within directories.\n\n"
1239
tr("Choose which hash function reiserfs will use to find files within\n"
1227
" A hash invented by Yury Yu. Rupasov. It is fast and preserves locality,\n"
1228
" mapping lexicographically close file names to close hash values. This\n"
1229
" option should not be used, as it causes a high probability of hash\n"
1242
" A hash invented by Yury Yu. Rupasov. It is fast and preserves\n"
1243
" locality, mapping lexicographically close file names to close hash\n"
1244
" values. This option should not be used, as it causes a high\n"
1245
" probability of hash collisions.\n\n"
1232
" A Davis-Meyer function implemented by Jeremy Fitzhardinge. It uses hash\n"
1233
" permuting bits in the name. It gets high randomness and, therefore, low\n"
1234
" probability of hash collisions at some CPU cost. This may be used if\n"
1235
" EHASHCOLLISION errors are experienced with the r5 hash.\n\n"
1247
" A Davis-Meyer function implemented by Jeremy Fitzhardinge. It uses\n"
1248
" hash permuting bits in the name. It gets high randomness and,\n"
1249
" therefore, low probability of hash collisions at some CPU cost.\n"
1250
" This may be used if EHASHCOLLISION errors are experienced with the\n"
1237
" A modified version of the rupasov hash. It is used by default and is\n"
1238
" the best choice unless the filesystem has huge directories and unusual\n"
1239
" file-name patterns.\n\n"
1253
" A modified version of the rupasov hash. It is used by default and\n"
1254
" is the best choice unless the filesystem has huge directories and\n"
1255
" unusual file-name patterns.\n\n"
1241
" Instructs mount to detect which hash function is in use by examining the\n"
1242
" filesystem being mounted, and to write this information into the reiserfs\n"
1243
" superblock. This is only useful on the first mount of an old format filesystem."));
1257
" Instructs mount to detect which hash function is in use by\n"
1258
" examining the filesystem being mounted, and to write this\n"
1259
" information into the reiserfs superblock. This is only useful\n"
1260
" on the first mount of an old format filesystem."));
1244
1261
chkBox->setParamType(pitm);
1245
1262
chkBox->addValue("rupasov");
1246
1263
chkBox->addValue("tea");
1247
1264
chkBox->addValue("r5");
1248
1265
chkBox->addValue("detect");
1249
1266
createChkBox("hashed_relocation",
1250
tr("Tunes the block allocator. This may provide performance improvements in some\n"
1267
tr("Tunes the block allocator. This may provide performance improvements in\n"
1268
"some situations."));
1252
1269
createChkBox("noborder",
1253
tr("Disable the border allocator algorithm invented by Yury Yu. Rupasov. This may\n"
1254
"provide performance improvements in some situations."));
1270
tr("Disable the border allocator algorithm invented by Yury Yu. Rupasov. This\n"
1271
"may provide performance improvements in some situations."));
1255
1272
createChkBox("notail",
1256
tr("By default, reiserfs stores small files and `file tails' directly into its tree.\n"
1257
"This confuses some utilities such as LILO(8). This option is used to disable\n"
1258
"packing of files into the tree."));
1273
tr("By default, reiserfs stores small files and `file tails' directly into its\n"
1274
"tree. This confuses some utilities such as LILO(8). This option is used to\n"
1275
"disable packing of files into the tree."));
1259
1276
createChkBox("no_unhashed_relocation",
1260
tr("Tunes the block allocator. This may provide performance improvements in some\n"
1277
tr("Tunes the block allocator. This may provide performance improvements in\n"
1278
"some situations."));
1264
1281
void OptionsDlg::fs_xfs() {
1265
1282
createChkBox("barrier",
1266
tr("Enables the use of block layer write barriers for writes into the journal and\n"
1267
"unwritten extent conversion. This allows for drive level write caching to be\n"
1268
"enabled, for devices that support write barriers."));
1283
tr("Enables the use of block layer write barriers for writes into the journal\n"
1284
"and unwritten extent conversion. This allows for drive level write caching\n"
1285
"to be enabled, for devices that support write barriers."));
1269
1286
createChkBox("grpid",
1270
1287
tr("These options define what group ID a newly created file gets. When grpid is\n"
1271
"set, it takes the group ID of the directory in which it is created; otherwise\n"
1272
"(the default) it takes the fsgid of the current process, unless the directory\n"
1273
"has the setgid bit set, in which case it takes the gid from the parent\n"
1274
"directory, and also gets the setgid bit set if it is a directory itself."));
1288
"set, it takes the group ID of the directory in which it is created;\n"
1289
"otherwise (the default) it takes the fsgid of the current process, unless\n"
1290
"the directory has the setgid bit set, in which case it takes the gid from\n"
1291
"the parent directory, and also gets the setgid bit set if it is a directory\n"
1275
1293
createChkBox("nogrpid",
1276
1294
tr("These options define what group ID a newly created file gets. When grpid is\n"
1277
"set, it takes the group ID of the directory in which it is created; otherwise\n"
1278
"(the default) it takes the fsgid of the current process, unless the directory\n"
1279
"has the setgid bit set, in which case it takes the gid from the parent\n"
1280
"directory, and also gets the setgid bit set if it is a directory itself."));
1295
"set, it takes the group ID of the directory in which it is created;\n"
1296
"otherwise (the default) it takes the fsgid of the current process, unless\n"
1297
"the directory has the setgid bit set, in which case it takes the gid from\n"
1298
"the parent directory, and also gets the setgid bit set if it is a directory\n"
1281
1300
createChkBox("osyncisosync",
1282
1301
tr("Make O_SYNC writes implement true O_SYNC. WITHOUT this option, Linux XFS\n"
1283
"behaves as if an osyncisdsync option is used, which will make writes to files\n"
1284
"opened with the O_SYNC flag set behave as if the O_DSYNC flag had been used\n"
1285
"instead. This can result in better performance without compromising data\n"
1286
"safety. However if this option is not in effect, timestamp updates from O_SYNC\n"
1287
"writes can be lost if the system crashes. If timestamp updates are critical,\n"
1288
"use the osyncisosync option."));
1302
"behaves as if an osyncisdsync option is used, which will make writes to\n"
1303
"files opened with the O_SYNC flag set behave as if the O_DSYNC flag had\n"
1304
"been used instead. This can result in better performance without\n"
1305
"compromising data safety. However if this option is not in effect,\n"
1306
"timestamp updates from O_SYNC writes can be lost if the system crashes.\n"
1307
"If timestamp updates are critical, use the osyncisosync option."));
1291
1310
void OptionsDlg::fs_swap() {