#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: 2018-12-08 14:45-0200\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" msgid "translator-credits" msgstr "" #. (itstool) path: info/title #: article.translate.xml:4 msgid "Implementing UFS Journaling on a Desktop PC" msgstr "" #. (itstool) path: affiliation/address #: article.translate.xml:8 #, no-wrap msgid "manolis@FreeBSD.org" msgstr "" #. (itstool) path: info/author #: article.translate.xml:7 msgid "" "ManolisKiagias <_:address-1/> " msgstr "" #. (itstool) path: info/copyright #: article.translate.xml:11 msgid "" "2008 Manolis " "Kiagias" msgstr "" #. (itstool) path: info/pubdate #. (itstool) path: info/releaseinfo #: article.translate.xml:16 article.translate.xml:18 msgid "" "$FreeBSD: head/en_US.ISO8859-1/articles/gjournal-desktop/article.xml 51348 " "2017-12-30 22:56:56Z eadler $" msgstr "" #. (itstool) path: legalnotice/para #: article.translate.xml:21 msgid "FreeBSD is a registered trademark of the FreeBSD Foundation." msgstr "" #. (itstool) path: legalnotice/para #: article.translate.xml:23 msgid "" "Many of the designations used by manufacturers and sellers to distinguish " "their products are claimed as trademarks. Where those designations appear in " "this document, and the FreeBSD Project was aware of the trademark claim, the " "designations have been followed by the or the ® symbol." msgstr "" #. (itstool) path: abstract/para #: article.translate.xml:32 msgid "" "A journaling file system uses a log to record all transactions that take " "place in the file system, and preserves its integrity in the event of a " "system crash or power failure. Although it is still possible to lose unsaved " "changes to files, journaling almost completely eliminates the possibility of " "file system corruption caused by an unclean shutdown. It also shortens to a " "minimum the time required for after-failure file system checking. Although " "the UFS file system employed by FreeBSD does not implement journaling " "itself, the new journal class of the GEOM framework in FreeBSD 7." "X can be used to provide file system independent " "journaling. This article explains how to implement UFS journaling on a " "typical desktop PC scenario." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:48 msgid "Introduction" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:50 msgid "" "While professional servers are usually well protected from unforeseen " "shutdowns, the typical desktop is at the mercy of power failures, accidental " "resets, and other user related incidents that can lead to unclean shutdowns. " "Soft Updates usually protect the file system efficiently in such cases, " "although most of the times a lengthy background check is required. On rare " "occasions, file system corruption reaches a point where user intervention is " "required and data may be lost." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:59 msgid "" "The new journaling capability provided by GEOM can greatly assist in such " "scenarios, by virtually eliminating the time required for file system " "checking, and ensuring that the file system is quickly restored to a " "consistent state." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:64 msgid "" "This article describes a procedure for implementing UFS journaling on a " "typical desktop PC scenario (one hard disk used for both operating system " "and data). It should be followed during a fresh installation of FreeBSD. The " "steps are simple enough and do not require overly complex interaction with " "the command line." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:70 msgid "After reading this article, you will know:" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:74 msgid "" "How to reserve space for journaling during a new installation of FreeBSD." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:79 msgid "" "How to load and enable the geom_journal module (or build " "support for it in your custom kernel)." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:84 msgid "" "How to convert your existing file systems to utilize journaling, and what " "options to use in /etc/fstab to mount them." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:90 msgid "How to implement journaling in new (empty) partitions." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:94 msgid "How to troubleshoot common problems associated with journaling." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:99 msgid "Before reading this article, you should be able to:" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:103 msgid "" "Understand basic UNIX and " "FreeBSD concepts." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:107 msgid "" "Be familiar with the installation procedure of FreeBSD and the " "sysinstall utility." msgstr "" #. (itstool) path: warning/para #: article.translate.xml:113 msgid "" "The procedure described here is intended for preparing a new installation " "where no actual user data is stored on the disk yet. While it is possible to " "modify and extend this procedure for systems already in production, you " "should backup all important data before doing so. " "Messing around with disks and partitions at a low level can lead to fatal " "mistakes and data loss." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:124 msgid "Understanding Journaling in FreeBSD" msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:126 msgid "" "The journaling provided by GEOM in FreeBSD 7.X is " "not file system specific (unlike for example the ext3 file system in " "Linux) but is functioning at the " "block level. Though this means it can be applied to different file systems, " "for FreeBSD 7.0-RELEASE, it can only be used on UFS2." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:132 msgid "" "This functionality is provided by loading the geom_journal.ko module into the kernel (or building it into a custom kernel) and " "using the gjournal command to configure the file systems. " "In general, you would like to journal large file systems, like /" "usr. You will need however (see the following section) to reserve " "some free disk space." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:140 msgid "" "When a file system is journaled, some disk space is needed to keep the " "journal itself. The disk space that holds the actual data is referred to as " "the data provider, while the one that holds the journal " "is referred to as the journal provider. The data and " "journal providers need to be on different partitions when journaling an " "existing (non-empty) partition. When journaling a new partition, you have " "the option to use a single provider for both data and journal. In any case, " "the gjournal command combines both providers to create " "the final journaled file system. For example:" msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:153 msgid "" "You wish to journal your /usr file system, stored in " "/dev/ad0s1f (which already contains data)." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:159 msgid "" "You reserved some free disk space in a partition in /dev/ad0s1g." msgstr "" #. (itstool) path: listitem/para #: article.translate.xml:164 msgid "" "Using gjournal, a new /dev/ad0s1f.journal device is created where /dev/ad0s1f is the " "data provider, and /dev/ad0s1g is the journal provider. " "This new device is then used for all subsequent file operations." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:172 msgid "" "The amount of disk space you need to reserve for the journal provider " "depends on the usage load of the file system and not on the size of the data " "provider. For example on a typical office desktop, a 1 GB journal provider " "for the /usr file system will suffice, while a machine " "that deals with heavy disk I/O (i.e. video editing) may need more. A kernel " "panic will occur if the journal space is exhausted before it has a chance to " "be committed." msgstr "" #. (itstool) path: note/para #: article.translate.xml:182 msgid "" "The journal sizes suggested here, are highly unlikely to cause problems in " "typical desktop use (such as web browsing, word processing and playback of " "media files). If your workload includes intense disk activity, use the " "following rule for maximum reliability: Your RAM size should fit in 30% of " "the journal provider's space. For example, if your system has 1 GB RAM, " "create an approximately 3.3 GB journal provider. (Multiply your RAM size " "with 3.3 to obtain the size of the journal)." msgstr "" #. (itstool) path: sect1/para #: article.translate.xml:192 msgid "" "For more information about journaling, please read the manual page of " "gjournal8." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:197 msgid "Steps During the Installation of FreeBSD" msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:200 msgid "Reserving Space for Journaling" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:202 msgid "" "A typical desktop machine usually has one hard disk that stores both the OS " "and user data. Arguably, the default partitioning scheme selected by " "sysinstall is more or less suitable: A desktop " "machine does not need a large /var partition, while " "/usr is allocated the bulk of the disk space, since " "user data and a lot of packages are installed into its subdirectories." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:210 msgid "" "The default partitioning (the one obtained by pressing A at " "the FreeBSD partition editor, called Disklabel) " "does not leave any unallocated space. Each partition that will be journaled, " "requires another partition for the journal. Since the /usr partition is the largest, it makes sense to shrink this partition " "slightly, to obtain the space required for journaling." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:217 msgid "" "In our example, an 80 GB disk is used. The following screenshot shows the " "default partitions created by Disklabel during " "installation:" msgstr "" #. (itstool) path: imageobject/imagedata #. This is a reference to an external file such as an image or video. When #. the file changes, the md5 hash will change to let you know you need to #. update your localized copy. The msgstr is not used at all. Set it to #. whatever you like once you have updated your copy of the file. #: article.translate.xml:223 msgctxt "_" msgid "external ref='disklabel1' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:227 msgid "" "If this is more or less what you need, it is very easy to adjust for " "journaling. Simply use the arrow keys to move the highlight to the " "/usr partition and press D to delete " "it." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:233 msgid "" "Now, move the highlight to the disk name at the top of the screen and press " "C to create a new partition for /usr. " "This new partition should be smaller by 1 GB (if you intend to journal " "/usr only), or 2 GB (if you intend to journal both " "/usr and /var). From the pop-up " "that appears, opt to create a file system, and type /usr as the mount point." msgstr "" #. (itstool) path: note/para #: article.translate.xml:243 msgid "" "Should you journal the /var partition? Normally, " "journaling makes sense on quite large partitions. You may decide not to " "journal /var, although doing so on a typical desktop " "will cause no harm. If the file system is lightly used (quite probable for a " "desktop) you may wish to allocate less disk space for its journal." msgstr "" #. (itstool) path: note/para #: article.translate.xml:250 msgid "" "In our example, we journal both /usr and /" "var. You may of course adjust the procedure to your own needs." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:255 msgid "" "To keep things as easy going as possible, we are going to use " "sysinstall to create the partitions required for " "journaling. However, during installation, sysinstall insists on asking a mount point for each partition you create. " "At this point, you do not have any mount points for the partitions that will " "hold the journals, and in reality you do not even need them. These are not partitions that we are ever going to mount " "somewhere." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:264 msgid "" "To avoid these problems with sysinstall, we are " "going to create the journal partitions as swap space. Swap is never mounted, " "and sysinstall has no problem creating as many " "swap partitions as needed. After the first reboot, /etc/fstab will have to be edited, and the extra swap space entries removed." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:272 msgid "" "To create the swap, again use the arrow keys to move the highlight to the " "top of Disklabel screen, so that the disk name " "itself is highlighted. Then press N, enter the desired size " "(1024M), and select swap space " "from the pop-up menu that appears. Repeat for every journal you wish to " "create. In our example, we create two partitions to provide for the journals " "of /usr and /var. The final result " "is shown in the following screenshot:" msgstr "" #. (itstool) path: imageobject/imagedata #. This is a reference to an external file such as an image or video. When #. the file changes, the md5 hash will change to let you know you need to #. update your localized copy. The msgstr is not used at all. Set it to #. whatever you like once you have updated your copy of the file. #: article.translate.xml:285 msgctxt "_" msgid "external ref='disklabel2' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:289 msgid "" "When you have completed creating the partitions, we suggest you write down " "the partition names, and mount points, so you can easily refer to this " "information during the configuration phase. This will help alleviate " "mistakes that may damage your installation. The following table shows our " "notes for the sample configuration:" msgstr "" #. (itstool) path: table/title #: article.translate.xml:296 msgid "Partitions and Journals" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:300 msgid "Partition" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:301 msgid "Mount Point" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:302 msgid "Journal" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:308 msgid "ad0s1d" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:309 msgid "/var" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:310 msgid "ad0s1h" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:314 msgid "ad0s1f" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:315 msgid "/usr" msgstr "" #. (itstool) path: row/entry #: article.translate.xml:316 msgid "ad0s1g" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:322 msgid "" "Continue the installation as you would normally do. We would however suggest " "you postpone installation of third party software (packages) until you have " "completely setup journaling." msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:328 msgid "Booting for the first time" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:330 msgid "" "Your system will come up normally, but you will need to edit /etc/" "fstab and remove the extra swap partitions you created for the " "journals. Normally, the swap partition you will actually use is the one with " "the b suffix (i.e. ad0s1b in our example). Remove all other " "swap space entries and reboot so that FreeBSD will stop using them." msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:337 msgid "" "When the system comes up again, we will be ready to configure journaling." msgstr "" #. (itstool) path: sect1/title #: article.translate.xml:343 msgid "Setting Up Journaling" msgstr "" #. (itstool) path: sect2/title #: article.translate.xml:346 msgid "Executing gjournal" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:348 msgid "" "Having prepared all the required partitions, it is quite easy to configure " "journaling. We will need to switch to single user mode, so login as " "root and type:" msgstr "" #. (itstool) path: sect2/screen #. (itstool) path: answer/screen #: article.translate.xml:352 article.translate.xml:584 #, no-wrap msgid "# shutdown now" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:354 msgid "" "Press Enter to get the default shell. We will need to " "unmount the partitions that will be journaled, in our example /" "usr and /var:" msgstr "" #. (itstool) path: sect2/screen #. (itstool) path: answer/screen #: article.translate.xml:358 article.translate.xml:588 #, no-wrap msgid "# umount /usr /var" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:360 msgid "Load the module required for journaling:" msgstr "" #. (itstool) path: sect2/screen #: article.translate.xml:362 #, no-wrap msgid "# gjournal load" msgstr "" #. (itstool) path: sect2/para #: article.translate.xml:364 msgid "" "Now, use your notes to determine which partition will be used for each " "journal. In our example, /usr is ad0s1f and its journal will be ad0s1g, while " "/var is ad0s1d and will be " "journaled to ad0s1h. The following commands are " "required:" msgstr "" #. (itstool) path: sect2/screen #: article.translate.xml:372 #, no-wrap msgid "" "# gjournal label ad0s1f ad0s1g\n" "\n" "GEOM_JOURNAL: Journal 2948326772: ad0s1f contains data.\n" "GEOM_JOURNAL: Journal 2948326772: ad0s1g contains journal.\n" "\n" "# gjournal label ad0s1d ad0s1h\n" "\n" "GEOM_JOURNAL: Journal 3193218002: ad0s1d contains data.\n" "GEOM_JOURNAL: Journal 3193218002: ad0s1h contains journal." msgstr "" #. (itstool) path: note/para #: article.translate.xml:383 msgid "" "If the last sector of either partition is used, gjournal " "will return an error. You will have to run the command using the