diff options
author | Warren Block <wblock@FreeBSD.org> | 2016-10-21 14:27:10 +0000 |
---|---|---|
committer | Warren Block <wblock@FreeBSD.org> | 2016-10-21 14:27:10 +0000 |
commit | 29abb0961ed5019593fec90e486d8b71f36f398d (patch) | |
tree | 32314114478d702b0633207b90d436c55cc23db4 /zh_TW.UTF-8/books/handbook | |
parent | ceee27743462f13bd3300ee234f5a6a2dfa6e08c (diff) | |
download | doc-29abb0961ed5019593fec90e486d8b71f36f398d.tar.gz doc-29abb0961ed5019593fec90e486d8b71f36f398d.zip |
Traditional Chinese Translation of handbook (Update ZFS).
Submitted by: cwlin0416_gmail.com
Approved by: kevlo
Differential Revision: https://reviews.freebsd.org/D8273
Notes
Notes:
svn path=/head/; revision=49533
Diffstat (limited to 'zh_TW.UTF-8/books/handbook')
-rw-r--r-- | zh_TW.UTF-8/books/handbook/book.xml | 3327 | ||||
-rw-r--r-- | zh_TW.UTF-8/books/handbook/zh_TW.po | 23621 |
2 files changed, 13181 insertions, 13767 deletions
diff --git a/zh_TW.UTF-8/books/handbook/book.xml b/zh_TW.UTF-8/books/handbook/book.xml index 19bed48e15..722dec5a00 100644 --- a/zh_TW.UTF-8/books/handbook/book.xml +++ b/zh_TW.UTF-8/books/handbook/book.xml @@ -249,6 +249,7 @@ <!ENTITY pgpkey.jonathan SYSTEM "jonathan.key"> <!ENTITY pgpkey.josef SYSTEM "josef.key"> <!ENTITY pgpkey.jpaetzel SYSTEM "jpaetzel.key"> +<!ENTITY pgpkey.jrm SYSTEM "jrm.key"> <!ENTITY pgpkey.jsa SYSTEM "jsa.key"> <!ENTITY pgpkey.jtl SYSTEM "jtl.key"> <!ENTITY pgpkey.junovitch SYSTEM "junovitch.key"> @@ -263,6 +264,7 @@ <!ENTITY pgpkey.kensmith SYSTEM "kensmith.key"> <!ENTITY pgpkey.keramida SYSTEM "keramida.key"> <!ENTITY pgpkey.kevlo SYSTEM "kevlo.key"> +<!ENTITY pgpkey.keymaster SYSTEM "keymaster.key"> <!ENTITY pgpkey.kib SYSTEM "kib.key"> <!ENTITY pgpkey.kmoore SYSTEM "kmoore.key"> <!ENTITY pgpkey.knu SYSTEM "knu.key"> @@ -447,6 +449,7 @@ <!ENTITY pgpkey.sephe SYSTEM "sephe.key"> <!ENTITY pgpkey.sepotvin SYSTEM "sepotvin.key"> <!ENTITY pgpkey.sergei SYSTEM "sergei.key"> +<!ENTITY pgpkey.sevan SYSTEM "sevan.key"> <!ENTITY pgpkey.sgalabov SYSTEM "sgalabov.key"> <!ENTITY pgpkey.shaun SYSTEM "shaun.key"> <!ENTITY pgpkey.sheldonh SYSTEM "sheldonh.key"> @@ -768,7 +771,7 @@ </listitem> <listitem> - <para><xref linkend="disks"/> 新增了像是:USB 隨身碟、檔案系統快照 (Snapshot)、檔案系統配額 (Quota) 、檔案及網路的備援檔案系統、以及如何對硬碟分割區作加密等詳解。</para> + <para><xref linkend="disks"/> 新增了像是:USB 隨身碟、檔案系統快照 (Snapshot)、檔案系統配額 (Quota) 、檔案與網路為基礎的檔案系統、以及如何對硬碟分割區作加密等詳解。</para> </listitem> <listitem> @@ -816,7 +819,7 @@ </listitem> <listitem> - <para>內容架構重新組織成三大部分: <quote>入門</quote>、<quote>系統管理</quote> 以及 <quote>附錄</quote>。</para> + <para>內容架構重新組織成三大部分:<quote>入門</quote>、<quote>系統管理</quote> 以及 <quote>附錄</quote>。</para> </listitem> <listitem> @@ -1321,7 +1324,7 @@ </sect1> <sect1 xml:id="nutshell"> - <title>歡迎使用 FreeBSD!</title> + <title>歡迎使用 FreeBSD!</title> <indexterm xml:lang="en"><primary>4.4BSD-Lite</primary></indexterm> @@ -1604,7 +1607,7 @@ <listitem> <para><link xlink:href="http://www.sandvine.com/">Sandvine</link> <indexterm> <primary>Sandvine</primary> - </indexterm> - Sandvine 使用 FreeBSD 作為它們的高性能即時網路處理平台,來建立它門的智慧網路策略控制產品。</para> + </indexterm> - Sandvine 使用 FreeBSD 作為它們的高性能即時網路處理平台,來建立它們的智慧網路策略控制產品。</para> </listitem> <listitem> @@ -1971,7 +1974,7 @@ <sect2 xml:id="third-party-programs"> <title>第三方程式</title> - <para>除了基礎發行版之外,FreeBSD 提供了擁有上千個常用的程式的移植軟體的套件集,在撰寫本文的同時,已有超過 24,000 個 Port! Port 的範圍從 HTTP 伺服器到遊戲、語系、編輯器,幾乎所有東西都在裡面。完整的 Port 套件集需要將近 500 MB。要編譯一個 Port 您只需要切換目錄到您想安裝的程式目錄,然後輸入 <command>make install</command>,接著系統便會處理剩下的動作。您編譯的每個 Port 完整原始發行版內容是動態下載的,所以您只需要有足夠的磁碟空間來編譯您想要的 Port。幾乎所有 Port 都提供以預先編譯好的<quote>套件</quote>,您可以透過簡單的指令來安裝 (<command>pkg install</command>),提供那些不想要自行從原始碼編譯的人使用。更多有關套件與 Port 的資訊可於 <xref linkend="ports"/> 取得。</para> + <para>除了基礎發行版之外,FreeBSD 提供了擁有上千個常用的程式的移植軟體的套件集,在撰寫本文的同時,已有超過 24,000 個 Port!Port 的範圍從 HTTP 伺服器到遊戲、語系、編輯器,幾乎所有東西都在裡面。完整的 Port 套件集需要將近 500 MB。要編譯一個 Port 您只需要切換目錄到您想安裝的程式目錄,然後輸入 <command>make install</command>,接著系統便會處理剩下的動作。您編譯的每個 Port 完整原始發行版內容是動態下載的,所以您只需要有足夠的磁碟空間來編譯您想要的 Port。幾乎所有 Port 都提供已經預先編譯好的<quote>套件</quote>,您可以透過簡單的指令來安裝 (<command>pkg install</command>),提供那些不想要自行從原始碼編譯的人使用。更多有關套件與 Port 的資訊可於 <xref linkend="ports"/> 取得。</para> </sect2> <sect2> @@ -2074,7 +2077,7 @@ <indexterm><primary>安裝</primary></indexterm> - <para>自從 FreeBSD 9.0-RELEASE 開始, FreeBSD 提供一個易用,文字介面的安裝程式 <application>bsdinstall</application>。 本章描述如何用 <application>bsdinstall</application> 來安裝 FreeBSD。</para> + <para>自從 FreeBSD 9.0-RELEASE 開始,FreeBSD 提供一個易用,文字介面的安裝程式 <application>bsdinstall</application>。 本章描述如何用 <application>bsdinstall</application> 來安裝 FreeBSD。</para> <para>一般來說,本章所寫的安裝說明是針對 <trademark>i386</trademark> 和 <acronym>AMD64</acronym> 架構。如果可以用於其他平台,將會列表說明。 安裝程式和本章所敘述的內容可能會有些微差異,所以請將本章視為通用的指引,而不是完全照著來做。</para> @@ -2125,7 +2128,7 @@ <para>安裝 FreeBSD 的硬體需求隨 FreeBSD 的版本和硬體架構而不同。 FreeBSD 發行版支援的硬體架構和裝置會列在 <link xlink:href="@@URL_RELPREFIX@@/releases/index.html">FreeBSD 發佈資訊</link> 頁面。<link xlink:href="@@URL_RELPREFIX@@/where.html">FreeBSD 下載頁面</link> 也有建議如何正確的選擇在不同架構使用的映像檔。</para> - <para>FreeBSD 安裝程序需要至少 64 MB 的 <acronym>RAM</acronym> 以及 1.5 GB 的硬碟空間。然而,這樣少的記憶體及磁碟空間只適合在客製的應用上,如嵌入式設備,一般用途的桌面系統會需要更多的資源,2-4 GB RAM 與至少 8 GB 的硬碟空間是不錯的起點。</para> + <para>FreeBSD 安裝程序需要至少 96 MB 的 <acronym>RAM</acronym> 以及 1.5 GB 的硬碟空間。然而,如此少的記憶體及磁碟空間只適合在客製的應用上,如嵌入式設備。一般用途的桌面系統會需要更多的資源,2-4 GB RAM 與至少 8 GB 的硬碟空間是不錯的起點。</para> <para>每一種架構的處理器需求概述如下:</para> @@ -2272,29 +2275,29 @@ <para xml:id="bsdinstall-installation-media-uefi">還有另一種安裝檔是給使用 <acronym>UEFI</acronym> (Unified Extensible Firmware Interface) 開機的電腦使用,這些安裝檔的名稱會含有 <filename>uefi</filename>。</para> - <para>檔案類型:</para> + <para>檔案類型:</para> <itemizedlist> <listitem> - <para><literal>-bootonly.iso</literal>: 這是最精簡的安裝檔,檔案中只含安裝程式。 安裝時需要網際網路連線來下載所需的檔案以完成 FreeBSD 安裝。這個檔案應使用 <acronym>CD</acronym> 燒錄應用程式燒錄到 <acronym>CD</acronym> 使用。</para> + <para><literal>-bootonly.iso</literal>:這是最精簡的安裝檔,檔案中只含安裝程式。 安裝時需要網際網路連線來下載所需的檔案以完成 FreeBSD 安裝。這個檔案應使用 <acronym>CD</acronym> 燒錄應用程式燒錄到 <acronym>CD</acronym> 使用。</para> </listitem> <listitem> - <para><literal>-disc1.iso</literal>: 這個檔案含有所有安裝 FreeBSD 所需的檔案,包含原始碼及 Port 套件集。這個檔案應使用 <acronym>CD</acronym> 燒錄應用程式燒錄到 <acronym>CD</acronym> 使用。</para> + <para><literal>-disc1.iso</literal>:這個檔案含有所有安裝 FreeBSD 所需的檔案,包含原始碼及 Port 套件集。這個檔案應使用 <acronym>CD</acronym> 燒錄應用程式燒錄到 <acronym>CD</acronym> 使用。</para> </listitem> <listitem> - <para><literal>-dvd1.iso</literal>: 這個檔案含有所有安裝 FreeBSD 所需的檔案,包含原始碼及 Port 套件集,也內含熱門的 Binary 套件可安裝視窗管理程式以及一些應用程式,如此便可從媒體安裝完整的系統,無須連線到網際網路。這個檔案應使用 <acronym>DVD</acronym> 燒錄應用程式燒錄到 <acronym>DVD</acronym> 使用。</para> + <para><literal>-dvd1.iso</literal>:這個檔案含有所有安裝 FreeBSD 所需的檔案,包含原始碼及 Port 套件集,也內含熱門的 Binary 套件可安裝視窗管理程式以及一些應用程式,如此便可從媒體安裝完整的系統,無須連線到網際網路。這個檔案應使用 <acronym>DVD</acronym> 燒錄應用程式燒錄到 <acronym>DVD</acronym> 使用。</para> </listitem> <listitem> - <para><literal>-memstick.img</literal>: 這個檔案含有所有安裝 FreeBSD 所需的檔案,包含原始碼及 Port 套件集。這個檔案應依據以下操作指示寫入到 <acronym>USB</acronym> 隨身碟使用。</para> + <para><literal>-memstick.img</literal>:這個檔案含有所有安裝 FreeBSD 所需的檔案,包含原始碼及 Port 套件集。這個檔案應依據以下操作指示寫入到 <acronym>USB</acronym> 隨身碟使用。</para> </listitem> </itemizedlist> - <para>映像檔下載完成之後,下載同一個目錄之中的 <filename>CHECKSUM.SHA256</filename>。FreeBSD 提供 <citerefentry><refentrytitle>sha256</refentrytitle><manvolnum>1</manvolnum></citerefentry> 可用來計算映像檔的 <firstterm>校驗和 (Checksum)</firstterm>,使用方式為 <command>sha256 <replaceable>imagefilename</replaceable></command>,其他作業系統也會有類似的程式。</para> + <para>映像檔下載完成之後,下載同一個目錄之中的 <filename>CHECKSUM.SHA256</filename>。FreeBSD 提供 <citerefentry><refentrytitle>sha256</refentrytitle><manvolnum>1</manvolnum></citerefentry> 可用來計算映像檔的 <firstterm>校驗碼 (Checksum)</firstterm>,使用方式為 <command>sha256 <replaceable>imagefilename</replaceable></command>,其他作業系統也會有類似的程式。</para> - <para>比對計算後的 checksum 與 <filename>CHECKSUM.SHA256</filename> 檔案中的值,checksum 應該要完全相符,若 checksum 不相符,則代表該映像檔是損壞的,必須再下載一次。</para> + <para>比對計算後的校驗碼與 <filename>CHECKSUM.SHA256</filename> 檔案中的值,校驗碼應該要完全相符,若校驗碼不相符,則代表該映像檔是損壞的,必須再下載一次。</para> <sect3 xml:id="bsdinstall-usb"> <title>寫入映象檔到 <acronym>USB</acronym></title> @@ -2360,14 +2363,14 @@ commit your changes?</programlisting> <para>在這個警告訊息之前可以隨時中止安裝,若有任何設定錯誤的疑慮,只需在此時關閉電腦,將不會對系統磁碟做任何更改。</para> </important> - <para>本節將介紹如何使用根據 <xref linkend="bsdinstall-installation-media"/> 指示所準備的安裝媒體來開機。要使用可開機的 USB,請在開啟電腦前插入 <acronym>USB</acronym> 隨身碟。要使用 <acronym>CD</acronym> 或<acronym>DVD</acronym>,則可開啟電腦後在第一時間插入媒體。如何設定系統使用插入的媒體開機依不同的系統架構會有所不同。</para> + <para>本節將介紹如何使用根據 <xref linkend="bsdinstall-installation-media"/> 指示所準備的安裝媒體來開機。要使用可開機的 USB,請在開啟電腦前插入 <acronym>USB</acronym> 隨身碟。要使用 <acronym>CD</acronym> 或 <acronym>DVD</acronym>,則可開啟電腦後在第一時間插入媒體。如何設定系統使用插入的媒體開機依不同的系統架構會有所不同。</para> <sect2 xml:id="bsdinstall-starting-i386"> <title>在 <trademark>i386</trademark> 及 amd64 開機</title> <para>這兩種架構提供了 <acronym>BIOS</acronym> 選單可選擇開機的裝置,依據要使用的安裝媒體類型,選擇 <acronym>CD</acronym>/<acronym>DVD</acronym> 或 <acronym>USB</acronym> 裝置做為第一個開機裝置。大多數的系統也會提供快速鍵可在啟動時選擇開機裝置,而不需要進入<acronym>BIOS</acronym>,通常這個按鍵可能是 <keycap>F10</keycap>, <keycap>F11</keycap>, <keycap>F12</keycap> 或 <keycap>Escape</keycap> 其中之一。</para> - <para>若電腦仍載入了現有的作業系統,而不是 FreeBSD 安裝程式,原因可能為:</para> + <para>若電腦仍載入了現有的作業系統,而不是 FreeBSD 安裝程式,原因可能為:</para> <orderedlist> <listitem> @@ -2397,7 +2400,7 @@ commit your changes?</programlisting> <para>大多數 <trademark class="registered">SPARC64</trademark> 系統會自動從磁碟開機,要從 <acronym>CD</acronym> 安裝 FreeBSD 需要進入 <acronym>PROM</acronym>。</para> - <para>要進入 <acronym>PROM</acronym>,需重新開機系統然後等候開機訊息出現。訊息會依機型而有所不同,但大致結果會如:</para> + <para>要進入 <acronym>PROM</acronym>,需重新開機系統然後等候開機訊息出現。訊息會依機型而有所不同,但大致結果會如:</para> <screen xml:lang="en">Sun Blade 100 (UltraSPARC-IIe), Keyboard Present Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved. @@ -2428,23 +2431,23 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> <itemizedlist> <listitem> - <para>啟動多使用者模式 (<literal>Boot Multi User</literal>): 這個選項會繼續 FreeBSD 開機程序,若開機計時器已經暫停,可按 <keycap>1</keycap>、大寫或小寫 <keycap>B</keycap> 或 <keycap>Enter</keycap> 鍵。</para> + <para>啟動多使用者模式 (<literal>Boot Multi User</literal>):這個選項會繼續 FreeBSD 開機程序,若開機計時器已經暫停,可按 <keycap>1</keycap>、大寫或小寫 <keycap>B</keycap> 或 <keycap>Enter</keycap> 鍵。</para> </listitem> <listitem> - <para>啟動單使用者模式 (<literal>Boot Single User</literal>): 這個模式用來修正已安裝的 FreeBSD,如 <xref linkend="boot-singleuser"/> 所述。可按 <keycap>2</keycap>、大寫或小寫 <keycap>S</keycap> 進入這個模式。</para> + <para>啟動單使用者模式 (<literal>Boot Single User</literal>):這個模式用來修正已安裝的 FreeBSD,如 <xref linkend="boot-singleuser"/> 所述。可按 <keycap>2</keycap>、大寫或小寫 <keycap>S</keycap> 進入這個模式。</para> </listitem> <listitem> - <para>離開到載入程式提示 (<literal>Escape to loader prompt</literal>): 這個選項會開機進入修復提示,這個模式含有有限數量的低階指令,這個模式詳細說明於 <xref linkend="boot-loader"/>。可按 <keycap>3</keycap> 或 <keycap>Esc</keycap> 進入這個提示。</para> + <para>離開到載入程式提示 (<literal>Escape to loader prompt</literal>):這個選項會開機進入修復提示,這個模式含有有限數量的低階指令,這個模式詳細說明於 <xref linkend="boot-loader"/>。可按 <keycap>3</keycap> 或 <keycap>Esc</keycap> 進入這個提示。</para> </listitem> <listitem> - <para>重新開機 (<literal>Reboot</literal>): 重新開啟系統。</para> + <para>重新開機 (<literal>Reboot</literal>):重新開啟系統。</para> </listitem> <listitem> - <para>設定開機選項 (<literal>Configure Boot Options</literal>): 開啟內部選單,詳細說明於 <xref linkend="bsdinstall-boot-options-menu"/>。</para> + <para>設定開機選項 (<literal>Configure Boot Options</literal>):開啟內部選單,詳細說明於 <xref linkend="bsdinstall-boot-options-menu"/>。</para> </listitem> </itemizedlist> @@ -2464,19 +2467,19 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> <itemizedlist> <listitem> - <para>ACPI 支援 (<literal>ACPI Support</literal>): 若系統在開機時卡住,可嘗試切換這個選項為關 (<literal>Off</literal>)。</para> + <para>ACPI 支援 (<literal>ACPI Support</literal>):若系統在開機時卡住,可嘗試切換這個選項為關 (<literal>Off</literal>)。</para> </listitem> <listitem> - <para>安全模式 (<literal>Safe Mode</literal>): 若系統在 ACPI 支援 (<literal>ACPI Support</literal>) 設為關 (<literal>Off</literal>) 時開機時仍然會卡住,可嘗試將此選項設為開 (<literal>On</literal>)。</para> + <para>安全模式 (<literal>Safe Mode</literal>):若系統在 ACPI 支援 (<literal>ACPI Support</literal>) 設為關 (<literal>Off</literal>) 時開機時仍然會卡住,可嘗試將此選項設為開 (<literal>On</literal>)。</para> </listitem> <listitem> - <para>單使用者 (<literal>Single User</literal>): 切換這個選項為開 (<literal>On</literal>) 來修正已存在的 FreeBSD 如 <xref linkend="boot-singleuser"/> 所述,問題修正後,將其設回關 (<literal>Off</literal>)。</para> + <para>單使用者 (<literal>Single User</literal>):切換這個選項為開 (<literal>On</literal>) 來修正已存在的 FreeBSD 如 <xref linkend="boot-singleuser"/> 所述,問題修正後,將其設回關 (<literal>Off</literal>)。</para> </listitem> <listitem> - <para>詳細資訊 (<literal>Verbose</literal>): 切換這個選項為開 (<literal>On</literal>) 來查看開機程序中更詳細的訊息,這在診斷硬體問題時非常有用。</para> + <para>詳細資訊 (<literal>Verbose</literal>):切換這個選項為開 (<literal>On</literal>) 來查看開機程序中更詳細的訊息,這在診斷硬體問題時非常有用。</para> </listitem> </itemizedlist> @@ -2535,7 +2538,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> <para>設定鍵盤配置時,可使用上與下方向鍵來選擇最接近已連接到系統的鍵盤的鍵盤對應表 (Keymap),然後按下 <keycap>Enter</keycap> 儲存選項。</para> <note> - <para>按 <keycap>Esc</keycap> 會離開這個選單然後使用預設的鍵盤對應表,若不清選要使用那種鍵盤對應表,<guimenuitem>United States of America ISO-8859-1</guimenuitem> 是也是保險的選項。</para> + <para>按 <keycap>Esc</keycap> 會離開這個選單然後使用預設的鍵盤對應表,若不清楚要使用那種鍵盤對應表,<guimenuitem>United States of America ISO-8859-1</guimenuitem> 是也是保險的選項。</para> </note> <para>在 FreeBSD 10.0-RELEASE 以及之後的版本,已經加強了這個選單,會顯示完整的鍵盤對應表選項,並預先選擇預設值。另外,當選擇其他鍵盤對應用時,在繼續之前會顯示對話框讓使用者測試鍵盤對應表來確認。</para> @@ -2585,7 +2588,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> </mediaobject> </figure> - <para>決定要安裝的元件主要會根據系統的用途以及可用的磁碟空間容量。FreeBSD 核心 (Kernel) 及 Userland 統稱為 <firstterm>基礎系統 (Base system)</firstterm>,是必須安裝的部份。依據系統的架構,部份元件可能不會顯示:</para> + <para>決定要安裝的元件主要會根據系統的用途以及可用的磁碟空間容量。FreeBSD 核心 (Kernel) 及 Userland 統稱為 <firstterm>基礎系統 (Base system)</firstterm>,是必須安裝的部份。依據系統的架構,部份元件可能不會顯示:</para> <itemizedlist> <listitem> @@ -2688,9 +2691,9 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> <primary><filename>/usr</filename></primary> </indexterm> - <para>配置檔案系統時要記得硬碟的傳輸資料外軌較內軌的速度快,因此較小且大量存取的檔案系統應要較接近磁碟的外軌,而較大的分割區如 <filename>/usr</filename> 應放置在磁碟較內部,建議建立分割區的順序如下: <filename>/</filename>, swap, <filename>/var</filename> 然後 <filename>/usr</filename>。</para> + <para>配置檔案系統時要記得硬碟的資料傳輸的速度外軌較內軌快,因此較小且大量存取的檔案系統應要較接近磁碟的外軌,而較大的分割區如 <filename>/usr</filename> 應放置在磁碟較內部,建議建立分割區的順序如下:<filename>/</filename>, swap, <filename>/var</filename> 然後 <filename>/usr</filename>。</para> - <para>機器預期的用途會反映在 <filename>/var</filename> 分割區的大小,這個分割區用來保存郵件 (Mailbox)、記錄檔 (Log file) 及印表機緩衝 (Spool)。依使用者數及保存的期間,郵件及記錄檔可能成長到無法預期的大小,一般來說大部份的使用很少會在 <filename>/var</filename> 需要超過 1 GB 的可用磁碟空間。</para> + <para>機器預期的用途會反映到 <filename>/var</filename> 分割區的大小,這個分割區用來保存郵件 (Mailbox)、日誌檔 (Log file) 及印表機緩衝 (Spool)。依使用者數及保存的期間,郵件及日誌檔可能成長到無法預期的大小,一般來說大部份的使用很少會在 <filename>/var</filename> 需要超過 1 GB 的可用磁碟空間。</para> <note> <para>有時在 <filename>/var/tmp</filename> 會需要較多的空間,當新軟體安裝,套件工具會從套件中取出暫存的複本置於 <filename>/var/tmp</filename>。若在 <filename>/var/tmp</filename> 沒有足夠的空間,要安裝大型軟體套件,例如 <application>Firefox</application>, <application>Apache OpenOffice</application> 或 <application>LibreOffice</application> 會很困難。</para> @@ -2769,7 +2772,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> </mediaobject> </figure> - <para>選擇要安裝的磁碟機 (在這個例子為 <filename>ada0</filename>) 然後選擇 <guibutton>[ Create ]</guibutton> 會以選單顯示可用的分割表格式 (Partition scheme):</para> + <para>選擇要安裝的磁碟機 (在這個例子為 <filename>ada0</filename>) 然後選擇 <guibutton>[ Create ]</guibutton> 會以選單顯示可用的分割表格式 (Partition scheme):</para> <figure xml:id="bsdinstall-part-manual-partscheme"> <title>手動建立分割區</title> @@ -2840,7 +2843,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> </mediaobject> </figure> - <para>標準的 FreeBSD <acronym>GPT</acronym> 安裝會使用至少三種分割區:</para> + <para>標準的 FreeBSD <acronym>GPT</acronym> 安裝會使用至少三種分割區:</para> <itemizedlist> <listitem> @@ -2860,10 +2863,10 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> <para>檔案系統分割區可建立多個,且有部份人會偏好使用傳統的配置方式將 <filename>/</filename>, <filename>/var</filename>, <filename>/tmp</filename> 以及 <filename>/usr</filename> 分開存放在不同的分割區。請參考 <xref linkend="bsdinstall-part-manual-splitfs"/> 的範例。</para> - <para>大小 (<literal>Size</literal>) 欄位可以使用常用的縮寫來輸入: <emphasis>K</emphasis> 代表 KB, <emphasis>M</emphasis> 代表 MB, <emphasis>G</emphasis> 代表 GB。</para> + <para>大小 (<literal>Size</literal>) 欄位可以使用常用的縮寫來輸入:<emphasis>K</emphasis> 代表 KB, <emphasis>M</emphasis> 代表 MB, <emphasis>G</emphasis> 代表 GB。</para> <tip> - <para>適當的對齊磁碟扇區 (Sector) 會提供最佳的效能,而且讓分割區大小為 4 KB 的偶數倍數可協助確保對齊在磁碟機上的 512-byte 或 4K-byte 扇區。一般來說,使用分割區大小為 1M 或 1G 的偶數倍數是最簡單的方式確保每個分割區以 4K 的偶數倍數做為開始。唯一一個例外是: <emphasis>freebsd-boot</emphasis> 分割區因目前開機程式 (Boot code) 的限制,不可大於 512K。</para> + <para>適當的對齊磁碟扇區 (Sector) 會提供最佳的效能,而且讓分割區大小為 4 KB 的偶數倍數可協助確保對齊在磁碟機上的 512-byte 或 4K-byte 扇區。一般來說,使用分割區大小為 1M 或 1G 的偶數倍數是最簡單的方式確保每個分割區以 4K 的偶數倍數做為開始。唯一一個例外是:<emphasis>freebsd-boot</emphasis> 分割區因目前開機程式 (Boot code) 的限制,不可大於 512K。</para> </tip> <para>若分割區內含檔案系統便會需要一個掛載點 (<literal>Mountpoint</literal>),若只要建立一個 <acronym>UFS</acronym> 分割區,那麼掛載點應設為 <filename>/</filename>。</para> @@ -3059,7 +3062,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> <para>安裝時間會依據選擇的發行版、安裝媒體、電腦的速度而有所不同,接下來會有一系列訊息會告知目前的進度。</para> - <para>首先,安裝程式會格式化選擇的磁碟,然後初始化分割區。然後,若使用僅可開機 (Boot only) 的媒體則會開始下載選擇的元件:</para> + <para>首先,安裝程式會格式化選擇的磁碟,然後初始化分割區。然後,若使用僅可開機 (Boot only) 的媒體則會開始下載選擇的元件:</para> <figure xml:id="bsdinstall-distfile-fetching"> <title>取得發行版檔案</title> @@ -3071,7 +3074,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> </mediaobject> </figure> - <para>接著,會檢驗發行版的檔案完整性來確保沒有因下載過程中或安裝媒體的讀取過程中讀取錯誤造成的損壞:</para> + <para>接著,會檢驗發行版的檔案完整性來確保沒有因下載過程中或安裝媒體的讀取過程中讀取錯誤造成的損壞:</para> <figure xml:id="bsdinstall-distfile-verify"> <title>檢驗發行版檔案</title> @@ -3083,7 +3086,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> </mediaobject> </figure> - <para>最後,檢驗過的發行版檔案會被取出儲存至磁碟:</para> + <para>最後,檢驗過的發行版檔案會被取出儲存至磁碟:</para> <figure xml:id="bsdinstall-distfile-extract"> <title>解開發行版檔案</title> @@ -3142,7 +3145,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> </mediaobject> </figure> - <para>若選擇的是乙太網路介面卡,安裝程式會跳過這部份直接到 <xref linkend="bsdinstall-configure-net-ipv4"/>,若選擇的是無線網路介面卡,系統則會開始掃描無線存取點 (Wireless Access Point):</para> + <para>若選擇的是乙太網路介面卡,安裝程式會跳過這部份直接到 <xref linkend="bsdinstall-configure-net-ipv4"/>,若選擇的是無線網路介面卡,系統則會開始掃描無線存取點 (Wireless Access Point):</para> <figure xml:id="bsdinstall-wireless-scan"> <title>掃描無線網路存取點</title> @@ -3178,7 +3181,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> </mediaobject> </figure> - <para>接下來,選擇是否要設定乙太網路或無線網路介面卡的 <acronym>IPv4</acronym> 位址: </para> + <para>接下來,選擇是否要設定乙太網路或無線網路介面卡的 <acronym>IPv4</acronym> 位址:</para> <figure xml:id="bsdinstall-configure-net-ipv4"> <title>選擇 <acronym>IPv4</acronym> 網路</title> @@ -3208,7 +3211,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> </mediaobject> </figure> - <para>若沒有可用的 <acronym>DHCP</acronym> 伺服器,則選擇 <guibutton>[ No ]</guibutton> 然後在這個選單中輸入以下位址資訊:</para> + <para>若沒有可用的 <acronym>DHCP</acronym> 伺服器,則選擇 <guibutton>[ No ]</guibutton> 然後在這個選單中輸入以下位址資訊:</para> <figure xml:id="bsdinstall-net-ipv4-static"> <title><acronym>IPv4</acronym> 靜態位置設定</title> @@ -3260,7 +3263,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> </mediaobject> </figure> - <para>若沒有可用的 <acronym>IPv6</acronym> 路由器,請選擇 <guibutton>[ No ]</guibutton> 然後在這個選單中輸入以下位址資訊:</para> + <para>若沒有可用的 <acronym>IPv6</acronym> 路由器,請選擇 <guibutton>[ No ]</guibutton> 然後在這個選單中輸入以下位址資訊:</para> <figure xml:id="bsdinstall-net-ipv6-static"> <title>IPv6 靜態位置設定</title> @@ -3378,7 +3381,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> </mediaobject> </figure> - <para>這是可以在這個選單開啟的服務摘要:</para> + <para>這是可以在這個選單開啟的服務摘要:</para> <itemizedlist> <listitem> @@ -3445,7 +3448,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> </mediaobject> </figure> - <para>這裡是要輸入的資訊摘要:</para> + <para>這裡是要輸入的資訊摘要:</para> <itemizedlist> <listitem> @@ -3605,7 +3608,7 @@ Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen> <para>要查看開機過程顯示的訊息可按 <keycap>Scroll-Lock</keycap> 鍵來開啟卷軸暫存,然後可使用 <keycap>PgUp</keycap>, <keycap>PgDn</keycap> 以及方向鍵來捲動訊息。查看完成之後再按 <keycap>Scroll-Lock</keycap> 鍵一次來解除畫面鎖定並返回 Console。系統開機一段時間之後要查看這些訊息可在指令提示後輸入 <command>less /var/run/dmesg.boot</command>,查看後按下 <keycap>q</keycap> 鍵便可返回指令列。</para> - <para>若在 <xref linkend="bsdinstall-config-serv"/> 有開啟 <application>sshd</application>,因系統會產生 <acronym>RSA</acronym> 及 <acronym>DSA</acronym> 金鑰第一次開機可能會有點慢,之後的開機便會恢復正常速度。接著會顯示金鑰的指紋 (Fingerprint),如這個範例:</para> + <para>若在 <xref linkend="bsdinstall-config-serv"/> 有開啟 <application>sshd</application>,因系統會產生 <acronym>RSA</acronym> 及 <acronym>DSA</acronym> 金鑰第一次開機可能會有點慢,之後的開機便會恢復正常速度。接著會顯示金鑰的指紋 (Fingerprint),如這個範例:</para> <screen xml:lang="en">Generating public/private rsa1 key pair. Your identification has been saved in /etc/ssh/ssh_host_key. @@ -3647,7 +3650,7 @@ Starting sshd.</screen> <para>FreeBSD 預設並不會安裝圖型化介面,請參考 <xref linkend="x11"/> 取得有關安裝與設定圖型化視窗管理程式的資訊。</para> - <para>正確的將 FreeBSD 電腦關機對保護資料及避免硬體損壞有幫助。<emphasis>在系統尚未正常關機之前請不要關閉電源! </emphasis> 若使用者為 <systemitem class="groupname">wheel</systemitem> 群組的成員之一,可在指令列輸入 <command>su</command> 然後輸入 <systemitem class="username">root</systemitem> 密碼來成為超級使用者。接著輸入 <command>shutdown -p now</command> 系統便會關機,若硬體支援的話,電腦會自行關閉電源。</para> + <para>正確的將 FreeBSD 電腦關機對保護資料及避免硬體損壞有幫助。<emphasis>在系統尚未正常關機之前請不要關閉電源!</emphasis> 若使用者為 <systemitem class="groupname">wheel</systemitem> 群組的成員之一,可在指令列輸入 <command>su</command> 然後輸入 <systemitem class="username">root</systemitem> 密碼來成為超級使用者。接著輸入 <command>shutdown -p now</command> 系統便會關機,若硬體支援的話,電腦會自行關閉電源。</para> </sect2> </sect1> @@ -3668,7 +3671,7 @@ Starting sshd.</screen> <para>製造商通常會建議若沒有特殊原因盡量避免升級主機板 <acronym>BIOS</acronym></para> </note> - <para>若系統在開機偵測硬體時卡住或安裝時運作異常,可能主因為 <acronym>ACPI</acronym>,FreeBSD 在 i386, amd64 及 ia64 平台廣泛的使用了系統 <acronym>ACPI</acronym> 服務來協助設定系統組態,若在開機時有偵測到該功能。不幸的是,<acronym>ACPI</acronym> 驅動程式與系統主機板及 <acronym>BIOS</acronym> 韌體之間仍存在部份問題。可於開機載入程式的第三階段設定 <literal>hint.acpi.0.disabled</literal> Hint 來關閉 <acronym>ACPI</acronym>:</para> + <para>若系統在開機偵測硬體時卡住或安裝時運作異常,可能主因為 <acronym>ACPI</acronym>,FreeBSD 在 i386, amd64 及 ia64 平台廣泛的使用了系統 <acronym>ACPI</acronym> 服務來協助設定系統組態,若在開機時有偵測到該功能。不幸的是,<acronym>ACPI</acronym> 驅動程式與系統主機板及 <acronym>BIOS</acronym> 韌體之間仍存在部份問題。可於開機載入程式的第三階段設定 <literal>hint.acpi.0.disabled</literal> Hint 來關閉 <acronym>ACPI</acronym>:</para> <screen xml:lang="en"><userinput>set hint.acpi.0.disabled="1"</userinput></screen> @@ -3680,7 +3683,7 @@ Starting sshd.</screen> <para>如 <xref linkend="bsdinstall-choose-mode"/> 所示 <application>bsdinstall</application> 的歡迎選單提供了 <guibutton>[ Live CD ]</guibutton> 選項,這對那些對 FreeBSD 是否為正確的作業系統尚存疑慮的人非常有幫助,這可讓這些人在安裝前測試一部份功能。</para> - <para>在使用 <guibutton>[ Live CD ]</guibutton> 之前必須注意以下幾點事項:</para> + <para>在使用 <guibutton>[ Live CD ]</guibutton> 之前必須注意以下幾點事項:</para> <itemizedlist> <listitem> @@ -3812,7 +3815,7 @@ login:</screen> <para>請參考 <citerefentry><refentrytitle>kbdcontrol</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>vidcontrol</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>atkbd</refentrytitle><manvolnum>4</manvolnum></citerefentry>, <citerefentry><refentrytitle>syscons</refentrytitle><manvolnum>4</manvolnum></citerefentry> 以及 <citerefentry><refentrytitle>vt</refentrytitle><manvolnum>4</manvolnum></citerefentry> 來取得更多有關 FreeBSD Console 及鍵盤驅動程式的技術說明。</para> - <para>FreeBSD 中虛擬 Console 的數量設定在 <filename>/etc/ttys</filename> 檔案中的下列章節:</para> + <para>FreeBSD 中虛擬 Console 的數量設定在 <filename>/etc/ttys</filename> 檔案中的下列章節:</para> <programlisting xml:lang="en"># name getty type status comments # @@ -3838,7 +3841,7 @@ ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</programlisting> <para>FreeBSD 開機選單會提供一個選項為 <quote>Boot Single User</quote>,若選擇該項目,系統將會進入所謂 <quote>單使用者模式</quote> 的特殊模式。 此模式通常用在修復系統無法開機或重設已忘掉的 <systemitem class="username">root</systemitem> 密碼。 在當使用者模式中無法使用網路及其他虛擬 Console,但有完整 <systemitem class="username">root</systemitem> 對系統的存取權限,而且預設是不須要輸入 <systemitem class="username">root</systemitem> 密碼。 也因此,要能透過實體鍵盤操作才能進入此模式,在考量 FreeBSD 系統安全時須要限制可操作實體鍵盤的人員。</para> - <para>有關單使用者模式的設定可在 <filename>/etc/ttys</filename> 中的以下章節中找到:</para> + <para>有關單使用者模式的設定可在 <filename>/etc/ttys</filename> 中的以下章節中找到:</para> <programlisting xml:lang="en"># name getty type status comments # @@ -4521,7 +4524,7 @@ uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)</screen> <primary>directories</primary> </indexterm> - <para>使用 <citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></citerefentry> 指令時,可以加上 <option>-l</option> 參數, 來檢視詳細的目錄清單。 清單中欄位的資訊包含檔案對所有者、群組及其他人的權限。 在任一個目錄底下執行 <command>ls -l</command>,會顯示如下的結果:</para> + <para>使用 <citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></citerefentry> 指令時,可以加上 <option>-l</option> 參數, 來檢視詳細的目錄清單。 清單中欄位的資訊包含檔案對所有者、群組及其他人的權限。 在任一個目錄底下執行 <command>ls -l</command>,會顯示如下的結果:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>ls -l</userinput> total 530 @@ -4559,7 +4562,7 @@ total 530 <secondary>symbolic</secondary> </indexterm> - <para>權限符號可稱做符號表示,使用字元的方式來取代使用數值來設定檔案或目錄的權限。 符號表示的格式依序為 (某人)(動作)(權限),可使用的符號如下:</para> + <para>權限符號可稱做符號表示,使用字元的方式來取代使用數值來設定檔案或目錄的權限。 符號表示的格式依序為 (某人)(動作)(權限),可使用的符號如下:</para> <informaltable frame="none" pgwide="1"> <tgroup cols="3"> @@ -4647,7 +4650,7 @@ total 530 </tgroup> </informaltable> - <para>如先前同樣使用 <citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>1</manvolnum></citerefentry> 指令來設定,但使用的參數為這些字元。 例如,您可以使用下列指令禁止其他使用者存取檔案 <replaceable>FILE</replaceable>:</para> + <para>如先前同樣使用 <citerefentry><refentrytitle>chmod</refentrytitle><manvolnum>1</manvolnum></citerefentry> 指令來設定,但使用的參數為這些字元。 例如,您可以使用下列指令禁止其他使用者存取檔案 <replaceable>FILE</replaceable>:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>chmod go= FILE</userinput></screen> @@ -4738,7 +4741,7 @@ total 530 <screen xml:lang="en">Changing local password for trhodes Old Password:</screen> - <para>於終端機 B:</para> + <para>於終端機 B:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>ps aux | grep passwd</userinput></screen> @@ -4988,7 +4991,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen> <para>檔案或目錄的對應是藉由給定的檔案或目錄名稱,然後加上正斜線符號 (<literal>/</literal>);之後再視需要加上其他的目錄名稱。 如果您有一個目錄 <filename>foo</filename> ,裡面有一個目錄叫作 <filename>bar</filename>,這個目錄中又包含了一個叫 <filename>readme.txt</filename> 的檔案,那麼這個檔案的全名,或者說檔案的<firstterm>路徑 (Path)</firstterm>就是 <filename>foo/bar/readme.txt</filename>。注意這與 <trademark class="registered">Windows</trademark> 用來分隔檔案與目錄名稱所使用的 <literal>\</literal> 不同,且 FreeBSD 在路徑上並不使用磁碟機代號或其他磁碟機名稱,意思是,在 FreeBSD 上不會有人輸入 <filename>c:\foo\bar\readme.txt</filename> 這種路徑。</para> - <para>目錄及檔案儲存在檔案系統 (File system) 之中。 每個檔案系統都有唯一一個最上層的目錄,叫做<firstterm>根目錄 (Root directory)</firstterm>。 然後在這個根目錄下面才能有其他的目錄。其中一個檔案系統會被指定成為<firstterm>根檔案系統 (Root file system)</firstterm> 或 <literal>/</literal>,其他的檔案系統均會<firstterm>掛載 (mounted)</firstterm> 在該根檔案系統之下,不論在 FreeBSD 有多少個磁碟,所有目錄都會成為該磁碟的一部份。</para> + <para>目錄及檔案儲存在檔案系統 (File system) 之中。 每個檔案系統都有唯一一個最上層的目錄,叫做<firstterm>根目錄 (Root directory)</firstterm>。 然後在這個根目錄下面才能有其他的目錄。其中一個檔案系統會被指定成為<firstterm>根檔案系統 (Root file system)</firstterm> 或 <literal>/</literal>,其他的檔案系統均會<firstterm>掛載 (Mount)</firstterm> 在該根檔案系統之下,不論在 FreeBSD 有多少個磁碟,所有目錄都會成為該磁碟的一部份。</para> <para>假設您有三個檔案系統,分別叫作 <literal>A</literal>, <literal>B</literal> 及 <literal>C</literal>。 每個檔案系統都包含兩個目錄,叫做 <literal>A1</literal>, <literal>A2</literal> (以此類推得 <literal>B1</literal>, <literal>B2</literal> 及 <literal>C1</literal>, <literal>C2</literal>)。</para> @@ -5008,7 +5011,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen> </textobject> </mediaobject> - <para>一個檔案系統必須以目錄形式掛載於另一個檔案系統上。 因此,假設您將 <literal>B</literal> 掛載於 <literal>A1</literal> 之上,則 <literal>B</literal> 的根目錄就變成了 <literal>A1</literal>,而在 <literal>B</literal> 之下的任何目錄的路徑也隨之改變:</para> + <para>一個檔案系統必須以目錄形式掛載於另一個檔案系統上。 因此,假設您將 <literal>B</literal> 掛載於 <literal>A1</literal> 之上,則 <literal>B</literal> 的根目錄就變成了 <literal>A1</literal>,而在 <literal>B</literal> 之下的任何目錄的路徑也隨之改變:</para> <mediaobject> <imageobject> @@ -5028,7 +5031,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen> </textobject> </mediaobject> - <para>在 <literal>B1</literal> 或 <literal>B2</literal> 目錄中的任何檔案必須經由路徑 <filename>/A1/B1</filename> 或 <filename>/A1/B2</filename> 才能達到。 所有原來在 <filename>/A1</filename> 中的檔案會暫時被隱藏起來,直到 <literal>B</literal> 被<firstterm>解除掛載 (Unmounted)</firstterm> 後才會再顯現出來。</para> + <para>在 <literal>B1</literal> 或 <literal>B2</literal> 目錄中的任何檔案必須經由路徑 <filename>/A1/B1</filename> 或 <filename>/A1/B2</filename> 才能達到。 所有原來在 <filename>/A1</filename> 中的檔案會暫時被隱藏起來,直到 <literal>B</literal> 被<firstterm>卸載 (Unmount)</firstterm> 後才會再顯現出來。</para> <para>如果 <literal>B</literal> 掛載在 <literal>A2</literal> 之上,則會變成:</para> @@ -5305,7 +5308,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen> </sect1> <sect1 xml:id="mount-unmount"> - <title>掛載與缷載檔案系統</title> + <title>掛載與卸載檔案系統</title> <para>檔案系統就像一顆樹。<filename>/</filename> 就像是樹根,而 <filename>/dev</filename>,<filename>/usr</filename> 以及其他在根目錄下的目錄就像是樹枝,而這些樹枝上面又還有分支,像是 <filename>/usr/local</filename> 等。</para> @@ -5389,7 +5392,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen> <secondary>mounting</secondary> </indexterm> - <para><citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry> 指令是拿來掛載檔案系統用的。基本的操作指令格式如下:</para> + <para><citerefentry><refentrytitle>mount</refentrytitle><manvolnum>8</manvolnum></citerefentry> 指令是拿來掛載檔案系統用的。基本的操作指令格式如下:</para> <informalexample> <screen xml:lang="en"><prompt>#</prompt> <userinput>mount <replaceable>device</replaceable> <replaceable>mountpoint</replaceable></userinput></screen> @@ -5505,7 +5508,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen> <para>有些程式並不是設計成一直在接收使用者的輸入的, 而是在開始執行的時候就從中斷與終端機的連線。 例如說, 網頁伺服器整天都在回應網頁方面的要求,它通常不需要您輸入任何東西。 另外,像是把信從一個站傳送到另一個站的程式,也是這種類型的應用程式。我們把這種程式稱作 <firstterm>Daemon</firstterm>。 Daemon 一詞是來自是希臘神話中的角色:祂們既不屬於善良陣營或邪惡陣營,祂們在背地裡做一些有用的事情。這也就是為何 BSD 的吉祥物,是一隻穿著帆布鞋拿著三叉耙的快樂小惡魔的原因。</para> - <para>通常來說做為 Deamon 執行的程式名字後面都會加一個字母 <quote>d</quote>。 <application>BIND</application> 是 Berkeley Internet Name Domain 的縮寫,但實際上執行的程式名稱是 <command>named</command>、<application>Apache</application> 網頁伺服器的程式名稱是 <command>httpd</command>、行列式印表機緩衝服務(Line Printer Spooling) Daemon 是 <command>lpd</command>,依此類推。 但這是習慣用法,並沒有硬性規定,例如 <application>Sendmail</application> 主要的寄信 Daemon 是叫做 <command>sendmail</command> 而不是 <literal>maild</literal>。</para> + <para>通常來說做為 Deamon 執行的程式名字後面都會加一個字母 <quote>d</quote>。 <application>BIND</application> 是 Berkeley Internet Name Domain 的縮寫,但實際上執行的程式名稱是 <command>named</command>、<application>Apache</application> 網頁伺服器的程式名稱是 <command>httpd</command>、行列式印表機緩衝服務 (Line Printer Spooling) Daemon 是 <command>lpd</command>,依此類推。 但這是習慣用法,並沒有硬性規定,例如 <application>Sendmail</application> 主要的寄信 Daemon 是叫做 <command>sendmail</command> 而不是 <literal>maild</literal>。</para> <sect2> <title>檢視程序</title> @@ -5558,7 +5561,7 @@ Swap: 2048M Total, 2048M Free <para>要與執行中的程序或 Daemon 溝通唯一的方法是透過 <citerefentry><refentrytitle>kill</refentrytitle><manvolnum>1</manvolnum></citerefentry> 指令傳送<firstterm>信號 (Signal)</firstterm>。 信號有很多種,有些有特定的意義,有些則是會由應用程式來解讀,應用程式的說明文件會告訴您該程式是如何解讀信號。 使用者只能送信號給自己所擁有的程序,送信號給其他人的程序會出現權限不足的錯誤。 唯一的例外是 <systemitem class="username">root</systemitem>使用者,他可以送信號給任何人的程序。</para> - <para>作業系統在某些情況也會送信號給應用程式。 假設有個應用程式寫得不好,企圖要存取它不該碰的記憶體的時候,FreeBSD 會送一個 <quote>Segmentation Violation</quote> 信號 (<literal>SIGSEGV</literal>) 給這個程序。 如果有一個應用程式用了 <citerefentry><refentrytitle>alarm</refentrytitle><manvolnum>3</manvolnum></citerefentry> 的系統呼叫 (System call) 要求系統在過一段時間之後發出通知,時間到了的時候系統就會發出通知信號 (SIGALRM) 給該程式。</para> + <para>作業系統在某些情況也會送信號給應用程式。 假設有個應用程式寫得不好,企圖要存取它不該碰的記憶體的時候,FreeBSD 會送一個 <quote>Segmentation Violation</quote> 信號 (<literal>SIGSEGV</literal>) 給這個程序。 如果有一個應用程式用了 <citerefentry><refentrytitle>alarm</refentrytitle><manvolnum>3</manvolnum></citerefentry> 的系統呼叫 (System call) 要求系統在過一段時間之後發出通知,時間到了的時候系統就會發出<quote>通知</quote>信號 (<literal>SIGALRM</literal>) 給該程式。</para> <para><literal>SIGTERM</literal> 與 <literal>SIGKILL</literal> 這兩個信號可以拿來終止程序。 用 <literal>SIGTERM</literal> 結束程序是比較有禮貌的方式,該程序收到信號後可以把自已所使用的日誌檔關閉及其他要在結束前要做的事完成, 然後在關掉程序之前結束掉手邊的工作。 在某些情況下程序有可能會忽略 <literal>SIGTERM</literal>,如它正在做一些不能中斷的工作的話。</para> @@ -5593,7 +5596,7 @@ Swap: 2048M Total, 2048M Free <note> <title>為何要使用 <command>/bin/kill</command>? </title> - <para>多數 shell 都有提供內建的 <command>kill</command> 指令。 也就是說這種 shell 會直接發送信號,而不是執行 <filename>/bin/kill</filename>。 但要小心不同的 shell 會有不同的語法來指定信號的名稱等。 與其嘗試去把它們通通學會,不如就單純的直接用 <command>/bin/kill</command>。</para> + <para>多數 Shell 都有提供內建的 <command>kill</command> 指令。 也就是說這種 shell 會直接發送信號,而不是執行 <filename>/bin/kill</filename>。 但要小心不同的 shell 會有不同的語法來指定信號的名稱等。 與其嘗試去把它們通通學會,不如就單純的直接用 <command>/bin/kill</command>。</para> </note> </step> </procedure> @@ -5628,7 +5631,7 @@ Swap: 2048M Total, 2048M Free <primary>environment variables</primary> </indexterm> - <para>Shell 的另一項特點是使用了環境變數。 環境變數是以變數與鍵值 (variable/key) 的對應關係儲存於 Shell 的環境,任何由該 Shell 所產生的程序都可以讀取此環境變數, 因此環境變數儲存了許多程序的設定。 <xref linkend="shell-env-vars"/> 提供了常見的環境變數與其涵義的清單。 請注意環境變數的名稱永遠以大寫表示。</para> + <para>Shell 的另一項特點是使用了環境變數。 環境變數是以變數與鍵值 (Variable/Key) 的對應關係儲存於 Shell 的環境,任何由該 Shell 所產生的程序都可以讀取此環境變數, 因此環境變數儲存了許多程序的設定。 <xref linkend="shell-env-vars"/> 提供了常見的環境變數與其涵義的清單。 請注意環境變數的名稱永遠以大寫表示。</para> <table xml:id="shell-env-vars" frame="none" pgwide="1"> <title>常用環境變數</title> @@ -5716,7 +5719,7 @@ Swap: 2048M Total, 2048M Free <para>要展開以顯示目前環境變數中的值,只要在指令列輸入環境變數之前加上 <literal>$</literal> 字元。 舉例來說,<command>echo $TERM</command> 會顯示出目前 <envar>$TERM</envar> 的設定值。</para> - <para>Shell 中有特殊字元用來表示特殊資料,我們將其稱作 Meta-characters。 其中最常見的 Meta-characters 是 <literal>*</literal> 字元,它代表了檔名中的任意字元。 Meta-characters 可以用在搜尋檔名,舉例來說,輸入 <command>echo *</command> 會和輸入 <command>ls</command> 得到幾乎相同的結果,這是因為 shell 會將所有符合 <literal>*</literal> 字元的檔案由 <command>echo</command> 顯示出來。</para> + <para>Shell 中有特殊字元用來表示特殊資料,我們將其稱作 Meta-character。 其中最常見的 Meta-character 是 <literal>*</literal> 字元,它代表了檔名中的任意字元。 Meta-character 可以用在搜尋檔名,舉例來說,輸入 <command>echo *</command> 會和輸入 <command>ls</command> 得到幾乎相同的結果,這是因為 shell 會將所有符合 <literal>*</literal> 字元的檔案由 <command>echo</command> 顯示出來。</para> <para>為了避免 Shell 轉譯這些特殊字元,我們可以在這些特殊字元前放一個反斜線 (<literal>\</literal>) 字元使他們跳脫 (Escape) Shell 的轉譯。舉例來說,<command>echo $TERM</command> 會印出你目前終端機的設定, <command>echo \$TERM</command> 則會直接印出 <literal>$TERM</literal> 這幾個字。</para> @@ -5755,15 +5758,15 @@ Swap: 2048M Total, 2048M Free <para><trademark class="registered">UNIX</trademark> Shell 不只是指令的直譯器,它是一個強大的工具可讓使用者執行指令、重新導向指令的輸出、重新導向指令的輸入並將指令串連在一起來改進最終指令的輸出結果。當這個功能與內建的指令混合使用時,可提供一個可以最佳化效率的環境給使用者。</para> - <para>Shell 重新導向是將一個指令的輸出或輸入傳送給另一個指令或檔案。例如,要擷取 <citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></citerefentry> 指令的輸出到一個檔案,可以重新導向輸出:</para> + <para>Shell 重新導向是將一個指令的輸出或輸入傳送給另一個指令或檔案。例如,要擷取 <citerefentry><refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum></citerefentry> 指令的輸出到一個檔案,可以重新導向輸出:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>ls > directory_listing.txt</userinput></screen> - <para>目錄的內容現在會列到 <filename>directory_listing.txt</filename> 中,部份指令可以讀取輸入,例如 <citerefentry><refentrytitle>sort</refentrytitle><manvolnum>1</manvolnum></citerefentry>。要排序這個清單,可重新導向輸入:</para> + <para>目錄的內容現在會列到 <filename>directory_listing.txt</filename> 中,部份指令可以讀取輸入,例如 <citerefentry><refentrytitle>sort</refentrytitle><manvolnum>1</manvolnum></citerefentry>。要排序這個清單,可重新導向輸入:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>sort < directory_listing.txt</userinput></screen> - <para>輸入的內容會被排序後呈現在畫面上,要重新導向該輸入到另一個檔案,可以重新導向 <citerefentry><refentrytitle>sort</refentrytitle><manvolnum>1</manvolnum></citerefentry> 的出輸:</para> + <para>輸入的內容會被排序後呈現在畫面上,要重新導向該輸入到另一個檔案,可以重新導向 <citerefentry><refentrytitle>sort</refentrytitle><manvolnum>1</manvolnum></citerefentry> 的出輸:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>sort < directory_listing.txt > sorted.txt</userinput></screen> @@ -5771,7 +5774,7 @@ Swap: 2048M Total, 2048M Free <para>透過使用這些檔案描述符,Shell 能夠讓輸出與輸入在各種指令間傳遞與重新導向到或自檔案。另一種重新導向的方式是使用管線運算子 (Pipe operator)。</para> - <para><trademark class="registered">UNIX</trademark> 的管線運算子,即 <quote>|</quote>,可允許指令的輸出可直接傳遞或導向到另一個程式。基本上,管線運算子允許指令的標準輸出以標準輸入傳遞給另一個指令,例如:</para> + <para><trademark class="registered">UNIX</trademark> 的管線運算子,即 <quote>|</quote>,可允許指令的輸出可直接傳遞或導向到另一個程式。基本上,管線運算子允許指令的標準輸出以標準輸入傳遞給另一個指令,例如:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>cat directory_listing.txt | sort | less</userinput></screen> @@ -5929,7 +5932,7 @@ Swap: 2048M Total, 2048M Free --> <chapter version="5.0" xml:id="ports"> - <title>安裝應用程式: 套件與 Port</title> + <title>安裝應用程式:套件與 Port</title> <sect1 xml:id="ports-synopsis"> <title>概述</title> @@ -6446,23 +6449,23 @@ Deinstalling ca_root_nss-3.15.1_1... done</screen> <itemizedlist> <listitem> - <para><filename>Makefile</filename>: 內含用來說明應用程式要如何編譯、要安裝該程式到那的敘述句。</para> + <para><filename>Makefile</filename>:內含用來說明應用程式要如何編譯、要安裝該程式到那的敘述句。</para> </listitem> <listitem> - <para><filename>distinfo</filename>: 內含編譯 Port 必須下載的檔案名稱以及校驗碼 (Checksums)。</para> + <para><filename>distinfo</filename>:內含編譯 Port 必須下載的檔案名稱以及校驗碼 (Checksum)。</para> </listitem> <listitem> - <para><filename>files/</filename>: 此目錄含有編譯與安裝程式到 FreeBSD 時所需的修補檔。此目錄也可能含有其他用來編譯 Port 的檔案。</para> + <para><filename>files/</filename>:此目錄含有編譯與安裝程式到 FreeBSD 時所需的修補檔。此目錄也可能含有其他用來編譯 Port 的檔案。</para> </listitem> <listitem> - <para><filename>pkg-descr</filename>: 提供程式更詳細的說明。</para> + <para><filename>pkg-descr</filename>:提供程式更詳細的說明。</para> </listitem> <listitem> - <para><filename>pkg-plist</filename>: Port 安裝的所有檔案清單,也同時會告訴 Port 系統解除安裝時要移除那一些檔案。</para> + <para><filename>pkg-plist</filename>:Port 安裝的所有檔案清單,也同時會告訴 Port 系統解除安裝時要移除那一些檔案。</para> </listitem> </itemizedlist> @@ -6822,20 +6825,20 @@ Building new INDEX files... done.</screen> <para>在一台電腦,<application>poudriere</application> 可使用多組設定在多個 Jail 編譯來自不同 Port 樹的 Port。用來定義這些組合的自訂設定稱作 <emphasis>sets</emphasis>,可在安裝 <package>ports-mgmt/poudriere</package> 或 <package>ports-mgmt/poudriere-devel</package> 後參考 <citerefentry vendor="ports"><refentrytitle>poudriere</refentrytitle><manvolnum>8</manvolnum></citerefentry> 中的 CUSTOMIZATION 章節來取得詳細的資訊。</para> - <para>在此處示範的基本設定放了單一個 jail-, port- 以及 set- 特定的 <filename>make.conf</filename> 在 <filename>/usr/local/etc/poudriere.d</filename>。在此範例使用的檔案名稱由 Jail 名稱、Port 名稱以及 set 名稱所組成: <filename><replaceable>10amd64-local-workstation</replaceable>-make.conf</filename>。系統 <filename>make.conf</filename> 與這個新的檔案在編譯時期會被合併為編譯 Jail 要使用的 <filename>make.conf</filename>。</para> + <para>在此處示範的基本設定放了單一個 jail-, port- 以及 set- 特定的 <filename>make.conf</filename> 在 <filename>/usr/local/etc/poudriere.d</filename>。在此範例使用的檔案名稱由 Jail 名稱、Port 名稱以及 set 名稱所組成:<filename><replaceable>10amd64-local-workstation</replaceable>-make.conf</filename>。系統 <filename>make.conf</filename> 與這個新的檔案在編譯時期會被合併為編譯 Jail 要使用的 <filename>make.conf</filename>。</para> - <para>要編譯的套件會輸入到 <filename><replaceable>10amd64-local-workstation</replaceable>-pkglist</filename>:</para> + <para>要編譯的套件會輸入到 <filename><replaceable>10amd64-local-workstation</replaceable>-pkglist</filename>:</para> <programlisting xml:lang="en">editors/emacs devel/git ports-mgmt/pkg ...</programlisting> - <para>可使用以下方式設定選項及相依:</para> + <para>可使用以下方式設定選項及相依:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>poudriere options -j <replaceable>10amd64</replaceable> -p <replaceable>local</replaceable> -z <replaceable>workstation</replaceable> -f <replaceable>10amd64-local-workstation-pkglist</replaceable></userinput></screen> - <para>最後,編譯套件並建立套件檔案庫:</para> + <para>最後,編譯套件並建立套件檔案庫:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>poudriere bulk -j <replaceable>10amd64</replaceable> -p <replaceable>local</replaceable> -z <replaceable>workstation</replaceable> -f <replaceable>10amd64-local-workstation-pkglist</replaceable></userinput></screen> @@ -6848,15 +6851,15 @@ ports-mgmt/pkg <sect2> <title>設定 pkg 客戶端使用 Poudriere 檔案庫</title> - <para>雖然可以同時使用自訂的檔案庫與官方檔案庫,但有時關閉官方檔案庫會有幫助。這可以透過建立一個設定檔覆蓋並關閉官方的設定檔來完成。建立 <filename>/usr/local/etc/pkg/repos/FreeBSD.conf</filename> 包含以下內容:</para> + <para>雖然可以同時使用自訂的檔案庫與官方檔案庫,但有時關閉官方檔案庫會有幫助。這可以透過建立一個設定檔覆蓋並關閉官方的設定檔來完成。建立 <filename>/usr/local/etc/pkg/repos/FreeBSD.conf</filename> 包含以下內容:</para> <screen xml:lang="en">FreeBSD: { enabled: no }</screen> - <para>通常最簡單要提供 poudriere 給客戶端的方式是透過 HTTP。安裝一個網頁伺服器來提供套件目錄,通常會像: <filename>/usr/local/poudriere/data/packages/<replaceable>10amd64</replaceable></filename>,其中 <filename>10amd64</filename> 是編譯的名稱。</para> + <para>通常最簡單要提供 poudriere 給客戶端的方式是透過 HTTP。安裝一個網頁伺服器來提供套件目錄,通常會像:<filename>/usr/local/poudriere/data/packages/<replaceable>10amd64</replaceable></filename>,其中 <filename>10amd64</filename> 是編譯的名稱。</para> - <para>若要連往套件檔案庫的 URL 是: <literal>http://pkg.example.com/10amd64</literal>,則在 <filename>/usr/local/etc/pkg/repos/custom.conf</filename> 的檔案庫設定檔為:</para> + <para>若要連往套件檔案庫的 URL 是:<literal>http://pkg.example.com/10amd64</literal>,則在 <filename>/usr/local/etc/pkg/repos/custom.conf</filename> 的檔案庫設定檔為:</para> <screen xml:lang="en">custom: { url: "<replaceable>http://pkg.example.com/10amd64</replaceable>", @@ -6916,7 +6919,7 @@ ports-mgmt/pkg </listitem> <listitem> - <para>自行修正看看! <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/porters-handbook/index.html">Porter's Handbook</link> 中含有 Port 基礎架構的詳細資訊,可提供資訊讓您可修正偶然損壞的 Port 或甚至您可以提交之自己的 Port。</para> + <para>自行修正看看!<link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/porters-handbook/index.html">Porter's Handbook</link> 中含有 Port 基礎架構的詳細資訊,可提供資訊讓您可修正偶然損壞的 Port 或甚至您可以提交之自己的 Port。</para> </listitem> <listitem> @@ -7005,7 +7008,7 @@ ports-mgmt/pkg <term>X 伺服器 (X Server)</term> <listitem> - <para>X 最初設計是以網路為中心,採用 <quote>client-server</quote> 架構。在此架構下 <quote>X 伺服器</quote> 在有鍵盤、螢幕、滑鼠的電腦上運作。該伺服器負責的工作包含管理顯示、處理來自鍵盤、滑鼠的輸入及來自其他設備(如平板或或影像投影機)的輸入或輸出。這點可能會讓人感到困惑,因為 X 使用的術語與一般的認知剛好相反。 一般認知會以為 <quote>X 伺服器</quote> 是要在最強悍的主機上執行,而 <quote>X 客戶端</quote> 才是在桌機上面執行,實際上卻是相反。</para> + <para>X 最初設計是以網路為中心,採用 <quote>client-server</quote> 架構。在此架構下 <quote>X 伺服器</quote> 在有鍵盤、螢幕、滑鼠的電腦上運作。該伺服器負責的工作包含管理顯示、處理來自鍵盤、滑鼠的輸入及來自其他設備 (如平板或或影像投影機) 的輸入或輸出。這點可能會讓人感到困惑,因為 X 使用的術語與一般的認知剛好相反。 一般認知會以為 <quote>X 伺服器</quote> 是要在最強悍的主機上執行,而 <quote>X 客戶端</quote> 才是在桌機上面執行,實際上卻是相反。</para> </listitem> </varlistentry> @@ -7053,7 +7056,7 @@ ports-mgmt/pkg <term>視窗元件 (Widget)</term> <listitem> - <para>視窗元件指的是在所有在使用者介面上可被點選或操作的項目,這包括按鈕、核選方塊、單選按鈕、圖示及清單。 視窗元件工具包(Widget toolkit)是指用來建立圖型化應用程式的一系列的視窗元件。目前有數個有名的視窗元件工具包,包含 <application>KDE</application> 所使用的 Qt、<application>GNOME</application> 所使用的 GTK+。 因此應用程式會依其開發時所選用的視窗元件工具包而有不同的外觀。</para> + <para>視窗元件指的是在所有在使用者介面上可被點選或操作的項目,這包括按鈕、核選方塊、單選按鈕、圖示及清單。 視窗元件工具包 (Widget toolkit) 是指用來建立圖型化應用程式的一系列的視窗元件。目前有數個有名的視窗元件工具包,包含 <application>KDE</application> 所使用的 Qt、<application>GNOME</application> 所使用的 GTK+。 因此應用程式會依其開發時所選用的視窗元件工具包而有不同的外觀。</para> </listitem> </varlistentry> </variablelist> @@ -7064,12 +7067,12 @@ ports-mgmt/pkg <para>在 FreeBSD,<application>Xorg</application> 可透過套件或 Port 來安裝。</para> - <para>要從 Port 套件集編譯與安裝:</para> + <para>要從 Port 套件集編譯與安裝:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cd /usr/ports/x11/xorg</userinput> <prompt>#</prompt> <userinput>make install clean</userinput></screen> - <para>使用 Binary 套件安裝快速,但可用的自訂選項較少:</para> + <para>使用 Binary 套件安裝快速,但可用的自訂選項較少:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install xorg</userinput></screen> @@ -7101,20 +7104,20 @@ ports-mgmt/pkg <procedure> <step> - <para>若 <application>Xorg</application> 曾經在電腦使用過,可先將現有的設定檔重新命名或移除:</para> + <para>若 <application>Xorg</application> 曾經在電腦使用過,可先將現有的設定檔重新命名或移除:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>mv /etc/X11/xorg.conf ~/xorg.conf.etc</userinput> <prompt>#</prompt> <userinput>mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc</userinput></screen> </step> <step> - <para>加入要執行 <application>Xorg</application> 的使用者到 <literal>video</literal> 或 <literal>wheel</literal> 群組,以便在可用時能開啟 3D 加速。要加入使用者 <replaceable>jru</replaceable> 到任一個可用的群組:</para> + <para>加入要執行 <application>Xorg</application> 的使用者到 <literal>video</literal> 或 <literal>wheel</literal> 群組,以便在可用時能開啟 3D 加速。要加入使用者 <replaceable>jru</replaceable> 到任一個可用的群組:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pw groupmod video -m <replaceable>jru</replaceable> || pw groupmod wheel -m <replaceable>jru</replaceable></userinput></screen> </step> <step> - <para>預設內含 <acronym>TWM</acronym> 視窗管理程式,啟動 <application>Xorg</application> 時便會啟動該視窗管理程式:</para> + <para>預設內含 <acronym>TWM</acronym> 視窗管理程式,啟動 <application>Xorg</application> 時便會啟動該視窗管理程式:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>startx</userinput></screen> </step> @@ -7128,7 +7131,7 @@ ports-mgmt/pkg <sect2 xml:id="x-config-user-group"> <title>可加速影像處理的使用者群組</title> - <para>要存取 <filename>/dev/dri</filename> 需要允許顯示卡的 3D 加速功能,這通常只需要將要執行 X 的使用者加入 <literal>video</literal> 或 <literal>wheel</literal> 群組。此處使用 <citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</manvolnum></citerefentry> 來將使用者 <replaceable>slurms</replaceable> 加入 <literal>video</literal> 群組,若沒有 <literal>video</literal> 則會加入 <literal>wheel</literal> 群組:</para> + <para>要存取 <filename>/dev/dri</filename> 需要允許顯示卡的 3D 加速功能,這通常只需要將要執行 X 的使用者加入 <literal>video</literal> 或 <literal>wheel</literal> 群組。此處使用 <citerefentry><refentrytitle>pw</refentrytitle><manvolnum>8</manvolnum></citerefentry> 來將使用者 <replaceable>slurms</replaceable> 加入 <literal>video</literal> 群組,若沒有 <literal>video</literal> 則會加入 <literal>wheel</literal> 群組:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pw groupmod video -m <replaceable>slurms</replaceable> || pw groupmod wheel -m <replaceable>slurms</replaceable></userinput></screen> </sect2> @@ -7138,7 +7141,7 @@ ports-mgmt/pkg <para>當電腦顯示從 Console 切換到高螢幕解析度供 X 使用時,必須設定影像輸出<emphasis>模式</emphasis>。最近版本的 <acronym>Xorg</acronym> 使用了核心內部的系統來讓切換模式更有效率。較舊版的 FreeBSD 使用的 <citerefentry><refentrytitle>sc</refentrytitle><manvolnum>4</manvolnum></citerefentry> 並不知到 <acronym>KMS</acronym> 系統的存在,這會導致關閉 X 之後即始仍在運作但系統 Console 卻呈現空白。較新版的 <citerefentry><refentrytitle>vt</refentrytitle><manvolnum>4</manvolnum></citerefentry> Console 可避免這個問題。</para> - <para>加入此行到 <filename>/boot/loader.conf</filename> 來開啟 <citerefentry><refentrytitle>vt</refentrytitle><manvolnum>4</manvolnum></citerefentry>:</para> + <para>加入此行到 <filename>/boot/loader.conf</filename> 來開啟 <citerefentry><refentrytitle>vt</refentrytitle><manvolnum>4</manvolnum></citerefentry>:</para> <programlisting xml:lang="en">kern.vty=vt</programlisting> </sect2> @@ -7175,7 +7178,7 @@ ports-mgmt/pkg <listitem> <para>3D 加速在大多數 <trademark class="registered">Intel</trademark> 顯示晶片都有支援,最新到 Ivy Bridge (HD Graphics 2500, 4000, 及 P4000) 包含 Iron Lake (HD Graphics) 與 Sandy Bridge (HD Graphics 2000)。</para> - <para>驅動程式名稱: <literal>intel</literal></para> + <para>驅動程式名稱:<literal>intel</literal></para> <para>參考文獻請至 <link xlink:href="https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units"/>。</para> </listitem> @@ -7187,7 +7190,7 @@ ports-mgmt/pkg <listitem> <para>Radeon 顯示卡支援 2D 及 3D 加速,最新到 HD6000 系列。</para> - <para>驅動程式名稱: <literal>radeon</literal></para> + <para>驅動程式名稱:<literal>radeon</literal></para> <para>參考文獻請至 <link xlink:href="https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units"/>。</para> </listitem> @@ -7233,7 +7236,7 @@ ports-mgmt/pkg <term>在檔案中設定影像驅動程式</term> <listitem> - <para>要在設定檔設定使用 <trademark class="registered">Intel</trademark> 驅動程式:</para> + <para>要在設定檔設定使用 <trademark class="registered">Intel</trademark> 驅動程式:</para> <example xml:id="x-config-video-cards-file-intel"> <title>在單檔中選擇 <trademark class="registered">Intel</trademark> 影像驅動程式</title> @@ -7249,7 +7252,7 @@ EndSection</programlisting> <para>若有多張顯示卡,可取消註解 <literal>BusID</literal> identifier 然後設定為想要的顯示卡,顯示卡的 Bus <acronym>ID</acronym> 清單可以使用 <command>pciconf -lv | grep -B3 display</command> 取得。</para> </example> - <para>要在設定檔設定使用 Radeon 驅動程式:</para> + <para>要在設定檔設定使用 Radeon 驅動程式:</para> <example xml:id="x-config-video-cards-file-radeon"> <title>在單檔中選擇 Radeon 影像驅動程式</title> @@ -7262,7 +7265,7 @@ EndSection</programlisting> EndSection</programlisting> </example> - <para>要在設定檔設定使用 <acronym>VESA</acronym> 驅動程式:</para> + <para>要在設定檔設定使用 <acronym>VESA</acronym> 驅動程式:</para> <example xml:id="x-config-video-cards-file-vesa"> <title>在單檔中選擇 <acronym>VESA</acronym> 影像驅動程式</title> @@ -7275,7 +7278,7 @@ EndSection</programlisting> EndSection</programlisting> </example> - <para>要設定 <acronym>UEFI</acronym> 或 <trademark class="registered">ARM</trademark> 電腦使用 <literal>scfb</literal> 驅動程式:</para> + <para>要設定 <acronym>UEFI</acronym> 或 <trademark class="registered">ARM</trademark> 電腦使用 <literal>scfb</literal> 驅動程式:</para> <example xml:id="x-config-video-cards-file-scfb"> <title>在單檔中選擇 <literal>scfb</literal> 影像驅動程式</title> @@ -7304,7 +7307,7 @@ EndSection</programlisting> <term>使用 <citerefentry vendor="xfree86"><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <listitem> - <para>執行 <citerefentry vendor="xfree86"><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry> 不加任何參數可檢查影像輸出及已偵測到的顯示器模式清單:</para> + <para>執行 <citerefentry vendor="xfree86"><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry> 不加任何參數可檢查影像輸出及已偵測到的顯示器模式清單:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>xrandr</userinput> Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192 @@ -7324,13 +7327,13 @@ HDMI-0 disconnected (normal left inverted right x axis y axis)</screen> <para>這個結果顯示 <literal>DVI-0</literal> 輸出被用來顯示解析度為 1920x1200 像素於更新頻率約 60 Hz 的畫面,未有顯示器連接到 <literal>DisplayPort-0</literal> 與 <literal>HDMI-0</literal> 接頭。</para> - <para>可使用 <citerefentry vendor="xfree86"><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry> 來選擇任何其他的顯示模式。例如要切換為 1280x1024 於 60 Hz:</para> + <para>可使用 <citerefentry vendor="xfree86"><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry> 來選擇任何其他的顯示模式。例如要切換為 1280x1024 於 60 Hz:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>xrandr --mode 1280x1024 --rate 60</userinput></screen> <para>在筆記型電腦使用外部顯示輸出到投影機是常見的作業。</para> - <para>不同裝置間輸出接頭的類型與數量也不同,給每個輸出的名稱在不同驅動程式間也不同。在某些驅動程式稱為 <literal>HDMI-1</literal> 的輸出在其他驅動程式則可能稱為 <literal>HDMI1</literal>。因此第一個步驟是執行 <citerefentry vendor="xfree86"><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry> 列出所有可用的輸出:</para> + <para>不同裝置間輸出接頭的類型與數量也不同,給每個輸出的名稱在不同驅動程式間也不同。在某些驅動程式稱為 <literal>HDMI-1</literal> 的輸出在其他驅動程式則可能稱為 <literal>HDMI1</literal>。因此第一個步驟是執行 <citerefentry vendor="xfree86"><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry> 列出所有可用的輸出:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>xrandr</userinput> Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192 @@ -7351,9 +7354,9 @@ VGA1 connected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis)</screen> - <para>已找到四個輸出: 內建面板的 <literal>LVDS1</literal>,外接的 <literal>VGA1</literal>, <literal>HDMI1</literal> 以及 <literal>DP1</literal> 接頭。</para> + <para>已找到四個輸出:內建面板的 <literal>LVDS1</literal>,外接的 <literal>VGA1</literal>, <literal>HDMI1</literal> 以及 <literal>DP1</literal> 接頭。</para> - <para>投影機已連接至 <literal>VGA1</literal> 輸出,現在使用 <citerefentry vendor="xfree86"><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry> 來設定該輸出到投影機 (原始解析度) 並加入額外的空間到桌面的右側:</para> + <para>投影機已連接至 <literal>VGA1</literal> 輸出,現在使用 <citerefentry vendor="xfree86"><refentrytitle>xrandr</refentrytitle><manvolnum>1</manvolnum></citerefentry> 來設定該輸出到投影機 (原始解析度) 並加入額外的空間到桌面的右側:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>xrandr --output VGA1 --auto --right-of LVDS1</userinput></screen> @@ -7367,7 +7370,7 @@ DP1 disconnected (normal left inverted right x axis y axis)</screen> <term>在檔案中設定螢幕解析度</term> <listitem> - <para>在設定檔設定螢幕解析度為 1024x768:</para> + <para>在設定檔設定螢幕解析度為 1024x768:</para> <example> <title>在單檔中設定螢幕解析度</title> @@ -7452,7 +7455,7 @@ EndSection</programlisting> <term>從鍵盤關閉 <application>Xorg</application></term> <listitem> - <para>X 可以使用組合鍵來關閉,預設並未設定組合鍵,因為該組合鍵與部份應用程式的鍵盤指令衝突。要開啟這個選項需要更改鍵盤 <literal>InputDevice</literal> 節:</para> + <para>X 可以使用組合鍵來關閉,預設並未設定組合鍵,因為該組合鍵與部份應用程式的鍵盤指令衝突。要開啟這個選項需要更改鍵盤 <literal>InputDevice</literal> 節:</para> <example> <title>開啟鍵盤離開 X 功能</title> @@ -7481,7 +7484,7 @@ EndSection</programlisting> <term>滑鼠按鍵</term> <listitem> - <para>滑鼠的按鍵數可在 <filename>xorg.conf</filename> 的滑鼠 <literal>InputDevice</literal> 節設定,例如要設定按鍵數為 7:</para> + <para>滑鼠的按鍵數可在 <filename>xorg.conf</filename> 的滑鼠 <literal>InputDevice</literal> 節設定,例如要設定按鍵數為 7:</para> <example> <title>設定滑鼠按鍵數</title> @@ -7506,11 +7509,11 @@ EndSection</programlisting> <para>設定檔可由 <application>Xorg</application> 根據偵測到的硬體產生,這個檔案對一開始自訂設定很有幫助。</para> - <para>產生 <filename>xorg.conf</filename>:</para> + <para>產生 <filename>xorg.conf</filename>:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>Xorg -configure</userinput></screen> - <para>設定檔會儲存至 <filename>/root/xorg.conf.new</filename>,做任何需要的更改,然後使用以下指令測試該檔案:</para> + <para>設定檔會儲存至 <filename>/root/xorg.conf.new</filename>,做任何需要的更改,然後使用以下指令測試該檔案:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>Xorg -config /root/xorg.conf.new</userinput></screen> @@ -7537,16 +7540,16 @@ EndSection</programlisting> <para>由於 <application>Xorg</application> 內建的預設字型用在典型的桌面出版應用程式並不是很理想,大字型會呈現鋸齒狀邊緣,看起來很不專業,小字型幾乎完全看不清楚。不過,這裡有幾個免費高品質的 Type1 (<trademark class="registered">PostScript</trademark>) 字型可用,且能容易的在 <application>Xorg</application> 使用。例如,URW 字型集 (<trademark class="registered">Times Roman</trademark>, <trademark class="registered">Helvetica</trademark>, <trademark class="registered">Palatino</trademark> 及其他)。 Freefont 字型集 (<package>x11-fonts/freefonts</package>) 包含了更多的字型,但其中大部分是給圖形軟體如 GIMP 所使用的字型,並不能完全作為螢幕字型使用。此外,<application>Xorg</application> 可以簡單的設定使用 <trademark class="registered">TrueType</trademark> 字型。更多有關本主題的詳細資訊,請參考 <citerefentry vendor="xfree86"><refentrytitle>X</refentrytitle><manvolnum>7</manvolnum></citerefentry> 操作手冊或 <xref linkend="truetype"/>。</para> - <para>要從 Port 套件集安裝上述的 Type1 字型集可執行以下指令:</para> + <para>要從 Port 套件集安裝上述的 Type1 字型集可執行以下指令:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cd /usr/ports/x11-fonts/urwfonts</userinput> <prompt>#</prompt> <userinput>make install clean</userinput></screen> - <para>同樣的安裝方式也適用 Freefont 或其他字型集。要讓 X 伺服器偵測到這些新安裝的字型,可加入適當的設定到 X 伺服器設定檔 (<filename>/etc/X11/xorg.conf</filename>),內容為:</para> + <para>同樣的安裝方式也適用 Freefont 或其他字型集。要讓 X 伺服器偵測到這些新安裝的字型,可加入適當的設定到 X 伺服器設定檔 (<filename>/etc/X11/xorg.conf</filename>),內容為:</para> <programlisting xml:lang="en">FontPath "/usr/local/share/fonts/urwfonts/"</programlisting> - <para>或者在 X session 的指令列執行:</para> + <para>或者在 X session 的指令列執行:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>xset fp+ /usr/local/share/fonts/urwfonts</userinput> <prompt>%</prompt> <userinput>xset fp rehash</userinput></screen> @@ -7569,16 +7572,16 @@ EndSection</programlisting> <programlisting xml:lang="en">Load "freetype"</programlisting> - <para>現在要建立一個儲存 <trademark class="registered">TrueType</trademark> 字型的目錄 (例如,<filename>/usr/local/share/fonts/TrueType</filename>) 然後複製所有 <trademark class="registered">TrueType</trademark> 字型到這個目錄。要注意 <trademark class="registered">TrueType</trademark> 字型並無法直接取自 <trademark class="registered">Apple</trademark> <trademark class="registered">Mac</trademark>,<application>Xorg</application> 使用的字型必須為 <trademark class="registered">UNIX</trademark>/<trademark class="registered">MS-DOS</trademark>/<trademark class="registered">Windows</trademark> 的格式。檔案複製到讓目錄之後,使用 <application>mkfontdir</application> 來建立 <filename>fonts.dir</filename> 來讓 X 字型繪製程式知道安裝了新的檔案。<command>mkfontdir</command> 可用套件的方式安裝:</para> + <para>現在要建立一個儲存 <trademark class="registered">TrueType</trademark> 字型的目錄 (例如,<filename>/usr/local/share/fonts/TrueType</filename>) 然後複製所有 <trademark class="registered">TrueType</trademark> 字型到這個目錄。要注意 <trademark class="registered">TrueType</trademark> 字型並無法直接取自 <trademark class="registered">Apple</trademark> <trademark class="registered">Mac</trademark>,<application>Xorg</application> 使用的字型必須為 <trademark class="registered">UNIX</trademark>/<trademark class="registered">MS-DOS</trademark>/<trademark class="registered">Windows</trademark> 的格式。檔案複製到讓目錄之後,使用 <application>mkfontdir</application> 來建立 <filename>fonts.dir</filename> 來讓 X 字型繪製程式知道安裝了新的檔案。<command>mkfontdir</command> 可用套件的方式安裝:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install mkfontdir</userinput></screen> - <para>然後在目錄中建立 X 字型檔的索引:</para> + <para>然後在目錄中建立 X 字型檔的索引:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cd /usr/local/share/fonts/TrueType</userinput> <prompt>#</prompt> <userinput>mkfontdir</userinput></screen> - <para>接著加入 <trademark class="registered">TrueType</trademark> 目錄到字型路徑。這個動作與 <xref linkend="type1"/> 中所介紹的方式相同:</para> + <para>接著加入 <trademark class="registered">TrueType</trademark> 目錄到字型路徑。這個動作與 <xref linkend="type1"/> 中所介紹的方式相同:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>xset fp+ /usr/local/share/fonts/TrueType</userinput> <prompt>%</prompt> <userinput>xset fp rehash</userinput></screen> @@ -7612,25 +7615,25 @@ EndSection</programlisting> <para>所有可在 <filename>/usr/local/share/fonts/</filename> 及 <filename>~/.fonts/</filename> 找到的 <application>Xorg</application> 字型均可在 Xft-aware 的應用程式使用反鋸齒的效果。大多最近的應用程式均為 Xft-aware 的,包括 <application>KDE</application>, <application>GNOME</application> 以及 <application>Firefox</application>。</para> - <para>要控制那一些字型要做反鋸齒或設定反鋸齒的屬性,需建立 <filename>/usr/local/etc/fonts/local.conf</filename> 檔案 (若檔案存在則編輯)。在這個檔案中可以調整 Xft 字型系統的數項進階功能,本章節僅介紹部份簡單的項目,要取得進一步資訊,可參考 <citerefentry vendor="xorg"><refentrytitle>fonts-conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>。</para> + <para>要控制那一些字型要做反鋸齒或設定反鋸齒的屬性,需建立 <filename>/usr/local/etc/fonts/local.conf</filename> 檔案 (若檔案存在則編輯)。在這個檔案中可以調整 Xft 字型系統的數項進階功能,本章節僅介紹部份簡單的項目,要取得進一步資訊,請參考 <citerefentry vendor="xorg"><refentrytitle>fonts-conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>。</para> <indexterm xml:lang="en"><primary>XML</primary></indexterm> - <para>這個檔案必須使用 XML 格式,小心文字大小寫,且要確定所有標籤均有正常結尾。檔案的開頭使用常見的 XML 檔首,接著為 DOCTYPE 定義,然後是 <literal><fontconfig></literal> 標籤:</para> + <para>這個檔案必須使用 XML 格式,小心文字大小寫,且要確定所有標籤均有正常結尾。檔案的開頭使用常見的 XML 檔首,接著為 DOCTYPE 定義,然後是 <literal><fontconfig></literal> 標籤:</para> <programlisting xml:lang="en"><?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig></programlisting> - <para>如同前面所提到的,所有在 <filename>/usr/local/share/fonts/</filename> 與 <filename>~/.fonts/</filename> 的字型均已在 Xft-aware 的應用程式做反鋸齒效果,若您想要加入除了上兩者以外的目錄,可加入下行設定到 <filename>/usr/local/etc/fonts/local.conf</filename>:</para> + <para>如同前面所提到的,所有在 <filename>/usr/local/share/fonts/</filename> 與 <filename>~/.fonts/</filename> 的字型均可在 Xft-aware 的應用程式做反鋸齒效果,若您想要加入除了上兩者以外的目錄,可加入如下行設定到 <filename>/usr/local/etc/fonts/local.conf</filename>:</para> <programlisting xml:lang="en"><dir>/path/to/my/fonts</dir></programlisting> - <para>加入新字型及額外的新字型目錄之後,您應執行以下指令來重新建立字型快取:</para> + <para>加入新字型及額外的新字型目錄之後,需重新建立字型快取:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>fc-cache -f</userinput></screen> - <para>反鋸齒效果會讓文字的邊緣變模糊,這會讓非常小的文字更能閱讀且去除大型文字的 <quote>鋸齒</quote>,但套用在一般的文字可能會造成眼睛的疲勞。要排除小於 14 點的字型大小使用反鋸齒效果,可加入這些行:</para> + <para>反鋸齒效果會讓文字的邊緣變模糊,這會讓非常小的文字更能閱讀且去除大型文字的 <quote>鋸齒</quote>,但套用在一般的文字可能會造成眼睛的疲勞。要排除小於 14 點的字型大小使用反鋸齒效果,可加入這些行:</para> <programlisting xml:lang="en"> <match target="font"> <test name="size" compare="less"> @@ -7654,9 +7657,9 @@ EndSection</programlisting> <secondary>spacing</secondary> </indexterm> - <para>反鋸齒所產生的間距對於部份等寬字型並不適合,尤其是在使用 <application>KDE</application> 時會發生問題。可能的修正方式是強制字型的間距為 100,可加入以下行:</para> + <para>反鋸齒所產生的間距對於部份等寬字型並不合適,尤其是在使用 <application>KDE</application> 時會成為一個問題。可能的修正方式是強制這類字型的間距為 100,可加入以下行:</para> - <programlisting xml:lang="en"> <match target="pattern" name="family"> + <programlisting xml:lang="en"> <match target="pattern" name="family"> <test qual="any" name="family"> <string>fixed</string> </test> @@ -7673,7 +7676,7 @@ EndSection</programlisting> </edit> </match></programlisting> - <para>(這會設定等寬字型的其他常用名稱為 <literal>"mono"</literal>),然後加入:</para> + <para>(這會設定等寬字型的其他常用名稱為 <literal>"mono"</literal>),然後加入:</para> <programlisting xml:lang="en"> <match target="pattern" name="family"> <test qual="any" name="family"> @@ -7684,7 +7687,7 @@ EndSection</programlisting> </edit> </match> </programlisting> - <para>部份字型,如 Helvetica,在使用反鋸齒時可能會發生問題,通常會呈現像垂直切成兩半的字型,最差還可能會導致應用程式當掉。要避免這個問題,可考慮加入以下設定到 <filename>local.conf</filename>:</para> + <para>部份字型,如 Helvetica,在使用反鋸齒時可能會發生問題,通常會呈現像垂直切成兩半的字型,最差還可能會導致應用程式當掉。要避免這個問題,可考慮加入以下設定到 <filename>local.conf</filename>:</para> <programlisting xml:lang="en"> <match target="pattern" name="family"> <test qual="any" name="family"> @@ -7695,17 +7698,20 @@ EndSection</programlisting> </edit> </match> </programlisting> - <para>編輯 <filename>local.conf</filename> 完之後,請確認有使用 <literal></fontconfig></literal> 標籤結尾,若沒使用會讓您的更改直接被忽略。</para> + <para>編輯 <filename>local.conf</filename> 完之後,請確認有使用 <literal></fontconfig></literal> 標籤結尾,若沒有使用會讓所做的更改被忽略。</para> - <para>最後,使用者可以透過個人的 <filename>.fonts.conf</filename> 檔案來加入自己的設定。要加入個人設定,每位使用者只需簡單的建立 <filename>~/.fonts.conf</filename>,這個檔案也同樣需要為 XML 格式。</para> + <para xml:lang="en">Users can add personalized settings by creating their own + <filename>~/.config/fontconfig/fonts.conf</filename>. This + file uses the same <acronym>XML</acronym> format described + above.</para> <indexterm xml:lang="en"><primary>LCD screen</primary></indexterm> <indexterm xml:lang="en"><primary>Fonts</primary> <secondary>LCD screen</secondary></indexterm> - <para>最後一點: 若有使用 LCD 螢幕,可能會想要使用子像素取樣 (Sub-pixel sampling),這基本上會分開處理 (水平分隔) 紅、綠、藍色彩組成來提高垂直解析度,結果可能是無法預料的。要開啟這個功能,加入下行到 <filename>local.conf</filename> 的任一處:</para> + <para>最後一點:若有使用 LCD 螢幕,可能會想要使用子像素取樣 (Sub-pixel sampling),這基本上會分開處理 (水平分隔) 紅、綠、藍色彩組成來提高垂直解析度,結果可能是無法預料的。要開啟這個功能,加入下行到 <filename>local.conf</filename> 的任一處:</para> - <programlisting xml:lang="en"><match target="font"> + <programlisting xml:lang="en"> <match target="font"> <test qual="all" name="rgba"> <const>unknown</const> </test> @@ -7715,7 +7721,7 @@ EndSection</programlisting> </match></programlisting> <note> - <para>依據不同的顯示器類型,<literal>rgb</literal> 可能會需要更改為 <literal>bgr</literal>, <literal>vrgb</literal> 或 <literal>vbgr</literal>: 可實驗看看然後看那一個效果最好。</para> + <para>依據不同的顯示器類型可能會需要將 <literal>rgb</literal> 更改為 <literal>bgr</literal>, <literal>vrgb</literal> 或 <literal>vbgr</literal>:可實驗看看然後看那一個效果最好。</para> </note> </sect2> </sect1> @@ -7743,7 +7749,7 @@ EndSection</programlisting> <sect2> <title>設定 <application>XDM</application></title> - <para>要安裝 <application>XDM</application> 可使用 <package>x11/xdm</package> 套件或 Port。安裝完成之後,可設定 <application>XDM</application> 在開機時執行,只需編輯 <filename>/etc/ttys</filename> 中的此項目:</para> + <para>要安裝 <application>XDM</application> 可使用 <package>x11/xdm</package> 套件或 Port。安裝完成之後,可設定 <application>XDM</application> 在開機時執行,只需編輯 <filename>/etc/ttys</filename> 中的此項目:</para> <screen xml:lang="en">ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure</screen> @@ -7812,7 +7818,7 @@ EndSection</programlisting> <para>預設只有同系統的使用者可以使用 <application>XDM</application> 登入。要開啟讓其他系統的使用者可連線到顯示伺服器,需編輯存取控制規則及開啟連線傾聽程式。</para> - <para>要設定 <application>XDM</application> 傾聽作何遠端的連線,在 <filename>/usr/local/lib/X11/xdm/xdm-config</filename> 中的 <literal>DisplayManager.requestPort</literal> 行前加上 <literal>!</literal> 來註解該行:</para> + <para>要設定 <application>XDM</application> 傾聽作何遠端的連線,在 <filename>/usr/local/lib/X11/xdm/xdm-config</filename> 中的 <literal>DisplayManager.requestPort</literal> 行前加上 <literal>!</literal> 來註解該行:</para> <screen xml:lang="en">! SECURITY: do not listen for XDMCP or Chooser requests ! Comment out this line if you want to manage X terminals with xdm @@ -7844,9 +7850,9 @@ DisplayManager.requestPort: 0</screen> <title xml:lang="en">GNOME</title> <indexterm xml:lang="en"><primary>GNOME</primary></indexterm> - <para><application>GNOME</application> 是一個擁有友善使用者介面的的桌面環境,它包括用於啟動應用程式和顯示狀態的面板、一系列工具與應用程序及一套可讓應用程式更容易進行合作、相互一致的協定。更多有關 FreeBSD <application>GNOME</application> 的訊息可在<link xlink:href="http://www.FreeBSD.org/gnome">http://www.FreeBSD.org/gnome</link> 取得,該網站包含了有關在 FreeBSD 安裝、設定和管理 <application>GNOME</application> 的額外文件。</para> + <para><application>GNOME</application> 是一個擁有友善使用者介面的的桌面環境,它包括用於啟動應用程式和顯示狀態的面板、一系列工具與應用程序及一套可讓應用程式更容易進行合作、相互一致的協定。更多有關 FreeBSD <application>GNOME</application> 的訊息可在 <link xlink:href="http://www.FreeBSD.org/gnome">http://www.FreeBSD.org/gnome</link> 取得,該網站包含了有關在 FreeBSD 安裝、設定和管理 <application>GNOME</application> 的額外文件。</para> - <para>這套桌面環境可以從套件安裝:</para> + <para>這套桌面環境可以從套件安裝:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install gnome3</userinput></screen> @@ -7859,26 +7865,26 @@ DisplayManager.requestPort: 0</screen> <programlisting xml:lang="en">proc /proc procfs rw 0 0</programlisting> - <para><application>GNOME</application> 使用了 <application>D-Bus</application> 以及 <application>HAL</application> 的 Message bus 與 Hardware abstraction。這兩個應用程式會隨著 <application>GNOME</application> 的相依一併自動安裝,但需要在 <filename>/etc/rc.conf</filename> 開啟,這樣在系統開機時才會啟動:</para> + <para><application>GNOME</application> 使用了 <application>D-Bus</application> 以及 <application>HAL</application> 的 Message bus 與 Hardware abstraction。這兩個應用程式會隨著 <application>GNOME</application> 的相依一併自動安裝,但需要在 <filename>/etc/rc.conf</filename> 開啟,這樣在系統開機時才會啟動:</para> <programlisting xml:lang="en">dbus_enable="YES" hald_enable="YES"</programlisting> - <para>安裝完之後,需設定讓 <application>Xorg</application> 啟動 <application>GNOME</application>。最簡單的方法是開啟 GNOME Display Manager, <application>GDM</application>,該程式已做為 <application>GNOME</application> 套件或 Port 的一部份安裝了,可加入下行到 <filename>/etc/rc.conf</filename> 來開啟:</para> + <para>安裝完之後,需設定讓 <application>Xorg</application> 啟動 <application>GNOME</application>。最簡單的方法是開啟 GNOME Display Manager, <application>GDM</application>,該程式已做為 <application>GNOME</application> 套件或 Port 的一部份安裝了,可加入下行到 <filename>/etc/rc.conf</filename> 來開啟:</para> <programlisting xml:lang="en">gdm_enable="YES"</programlisting> - <para>通常也會需要啟動所有的 <application>GNOME</application> 服務,可加入下行到 <filename>/etc/rc.conf</filename>:</para> + <para>通常也會需要啟動所有的 <application>GNOME</application> 服務,可加入下行到 <filename>/etc/rc.conf</filename>:</para> <programlisting xml:lang="en">gnome_enable="YES"</programlisting> <para><application>GDM</application> 則會在系統開機時自動啟動。</para> - <para>第二種啟動 <application>GNOME</application> 的方法是在設定完 <filename>~/.xinitrc</filename> 後在指令列輸入 <command>startx</command>。若這個檔案已經存在,替換啟動目前視窗管理程式的那一行,改為啟動 <filename>/usr/local/bin/gnome-session</filename>。若檔案不存在,則使用以下指令建立一個:</para> + <para>第二種啟動 <application>GNOME</application> 的方法是在設定完 <filename>~/.xinitrc</filename> 後在指令列輸入 <command>startx</command>。若這個檔案已經存在,替換啟動目前視窗管理程式的那一行,改為啟動 <filename>/usr/local/bin/gnome-session</filename>。若檔案不存在,則使用以下指令建立一個:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>echo "exec /usr/local/bin/gnome-session" > ~/.xinitrc</userinput></screen> - <para>第三種方法是使用 <application>XDM</application> 做為顯示管理程式,在這個方法需要建立一個可執行的 <filename>~/.xsession</filename>:</para> + <para>第三種方法是使用 <application>XDM</application> 做為顯示管理程式,在這個方法需要建立一個可執行的 <filename>~/.xsession</filename>:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>echo "#!/bin/sh" > ~/.xsession</userinput> <prompt>%</prompt> <userinput>echo "exec /usr/local/bin/gnome-session" >> ~/.xsession</userinput> @@ -7892,7 +7898,7 @@ hald_enable="YES"</programlisting> <para><application>KDE</application> 是另一套易於使用的桌面環境。這個桌面環境提供了一致外觀的應用程式、標準化的選單和工具列、組合鍵、配色方案、國際化與集中、對話框導向的桌面設定。更多有關 <application>KDE</application> 可在 <link xlink:href="http://www.kde.org/">http://www.kde.org/</link> 取得。要取得 FreeBSD 特定的資訊,則可參考 <link xlink:href="http://freebsd.kde.org/">http://freebsd.kde.org</link>。</para> - <para>要安裝 <application>KDE</application> 套件,請輸入:</para> + <para>要安裝 <application>KDE</application> 套件,請輸入:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install x11/kde4</userinput></screen> @@ -7906,24 +7912,24 @@ hald_enable="YES"</programlisting> <secondary>display manager</secondary> </indexterm> - <para><application>KDE</application> 需要掛載 <filename>/proc</filename>。加入下行到 <filename>/etc/fstab</filename> 讓系統啟動時會自動掛載這個檔案系統:</para> + <para><application>KDE</application> 需要掛載 <filename>/proc</filename>。加入下行到 <filename>/etc/fstab</filename> 讓系統啟動時會自動掛載這個檔案系統:</para> <programlisting xml:lang="en">proc /proc procfs rw 0 0</programlisting> - <para><application>KDE</application> 使用了 <application>D-Bus</application> 以及 <application>HAL</application> 的 Message bus 與 Hardware abstraction。這兩個應用程式會隨著 <application>KDE</application> 的相依一併自動安裝,但需要在 <filename>/etc/rc.conf</filename> 開啟,這樣在系統開機時才會啟動:</para> + <para><application>KDE</application> 使用了 <application>D-Bus</application> 以及 <application>HAL</application> 的 Message bus 與 Hardware abstraction。這兩個應用程式會隨著 <application>KDE</application> 的相依一併自動安裝,但需要在 <filename>/etc/rc.conf</filename> 開啟,這樣在系統開機時才會啟動:</para> <programlisting xml:lang="en">dbus_enable="YES" hald_enable="YES"</programlisting> - <para><application>KDE</application> 的安裝包含了 KDE Display Manager, <application>KDM</application>,要開啟這個顯示管理程式,需加入下行到 <filename>/etc/rc.conf</filename>:</para> + <para><application>KDE</application> 的安裝包含了 KDE Display Manager, <application>KDM</application>,要開啟這個顯示管理程式,需加入下行到 <filename>/etc/rc.conf</filename>:</para> <programlisting xml:lang="en">kdm4_enable="YES"</programlisting> - <para>第二種執行 <application>KDE</application> 的方法是在在指令列輸入 <command>startx</command>。要採用這個方式,需要加入下行到 <filename>~/.xinitrc</filename>:</para> + <para>第二種執行 <application>KDE</application> 的方法是在在指令列輸入 <command>startx</command>。要採用這個方式,需要加入下行到 <filename>~/.xinitrc</filename>:</para> <programlisting xml:lang="en">exec /usr/local/bin/startkde</programlisting> - <para>第三種啟動 <application>KDE</application> 的方式是透過 <application>XDM</application>,要使用這個方法需要建立一個可執行的 <filename>~/.xsession</filename> 如下:</para> + <para>第三種啟動 <application>KDE</application> 的方式是透過 <application>XDM</application>,要使用這個方法需要建立一個可執行的 <filename>~/.xsession</filename> 如下:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>echo "#!/bin/sh" > ~/.xsession</userinput> <prompt>%</prompt> <userinput>echo "exec /usr/local/bin/startkde" >> ~/.xsession</userinput> @@ -7937,20 +7943,20 @@ hald_enable="YES"</programlisting> <para><application>Xfce</application> 是以 <application>GNOME</application> 使用的 GTK +工具包做為基礎所開發的桌面環境,但是它更輕巧且提供了一種簡單、高效、易於使用的桌面。它可完全自訂設定、附有選單、Applet 及應用程式啟動器的主面板、提供檔案管理程式和音效管理程式並且可設定主題。由於它是快速、輕巧、高效的桌面環境,因此它非常適合有記憶體限制的較舊或較慢機器。更多有關 <application>Xfce</application> 的資訊可至 <link xlink:href="http://www.xfce.org/">http://www.xfce.org</link> 取得。</para> - <para>要安裝 <application>Xfce</application> 套件:</para> + <para>要安裝 <application>Xfce</application> 套件:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install xfce</userinput></screen> - <para>或者使用 Port 編譯:</para> + <para>或者使用 Port 編譯:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cd /usr/ports/x11-wm/xfce4</userinput> <prompt>#</prompt> <userinput>make install clean</userinput></screen> - <para>不像 <application>GNOME</application> 或 <application>KDE</application>,<application>Xfce</application> 並沒有自己的登入管理程式,要由指令列啟動 <application>Xfce</application> 需輸入 <command>startx</command>,在這之前需先加入其項目到 <filename>~/.xinitrc</filename>:</para> + <para>不像 <application>GNOME</application> 或 <application>KDE</application>,<application>Xfce</application> 並沒有自己的登入管理程式,要由指令列啟動 <application>Xfce</application> 需輸入 <command>startx</command>,在這之前需先加入其項目到 <filename>~/.xinitrc</filename>:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>echo "exec /usr/local/bin/startxfce4 --with-ck-launch" > ~/.xinitrc</userinput></screen> - <para>另一種方式是使用 <application>XDM</application>,要設定這個方式需建立一個可執行的 <filename>~/.xsession</filename>:</para> + <para>另一種方式是使用 <application>XDM</application>,要設定這個方式需建立一個可執行的 <filename>~/.xsession</filename>:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>echo "#!/bin/sh" > ~/.xsession</userinput> <prompt>%</prompt> <userinput>echo "exec /usr/local/bin/startxfce4 --with-ck-launch" >> ~/.xsession</userinput> @@ -7974,11 +7980,11 @@ hald_enable="YES"</programlisting> <para>知道您的顯示卡要使用那種驅動程式才是正確的之後,接下來的安裝程序跟安裝其他套件一樣簡單。</para> - <para>例如,要安裝最新的驅動程式:</para> + <para>例如,要安裝最新的驅動程式:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install x11/nvidia-driver</userinput></screen> - <para>驅動程式會建立一個需要在系統啟動時載入的核心模組,加入下行到 <filename>/boot/loader.conf</filename>:</para> + <para>驅動程式會建立一個需要在系統啟動時載入的核心模組,加入下行到 <filename>/boot/loader.conf</filename>:</para> <programlisting xml:lang="en">nvidia_load="YES"</programlisting> @@ -7986,13 +7992,13 @@ hald_enable="YES"</programlisting> <para>要立即載入核心模組到執行中的核心可以下 <command>kldload nvidia</command> 指令,但是需要注意,若不是在開機時載入,某些 <application>Xorg</application> 版本會無法正常運作。因此編輯完 <filename>/boot/loader.conf</filename> 之後建議要重新開機。</para> </note> - <para>核心模組載入之後,您只需要更改 <filename>xorg.conf</filename> 的其中一行來開啟專用的驅動程式:</para> + <para>核心模組載入之後,您只需要更改 <filename>xorg.conf</filename> 的其中一行來開啟專用的驅動程式:</para> - <para>找到 <filename>/etc/X11/xorg.conf</filename> 中的下行:</para> + <para>找到 <filename>/etc/X11/xorg.conf</filename> 中的下行:</para> <programlisting xml:lang="en">Driver "nv"</programlisting> - <para>然後更改該行為:</para> + <para>然後更改該行為:</para> <programlisting xml:lang="en">Driver "nvidia"</programlisting> @@ -8002,15 +8008,15 @@ hald_enable="YES"</programlisting> <sect2 xml:id="xorg-configuration"> <title>設定 xorg.conf 來啟動桌面特效</title> - <para>要開啟 <application>Compiz Fusion</application> 需要修改 <filename>/etc/X11/xorg.conf</filename>:</para> + <para>要開啟 <application>Compiz Fusion</application> 需要修改 <filename>/etc/X11/xorg.conf</filename>:</para> - <para>加入以下 Section 來開啟合成特效:</para> + <para>加入以下 Section 來開啟合成特效:</para> <programlisting xml:lang="en">Section "Extensions" Option "Composite" "Enable" EndSection</programlisting> - <para>找到 <quote>Screen</quote> section,長的應該如下所示:</para> + <para>找到 <quote>Screen</quote> section,長的應該如下所示:</para> <programlisting xml:lang="en">Section "Screen" Identifier "Screen0" @@ -8018,19 +8024,19 @@ EndSection</programlisting> Monitor "Monitor0" ...</programlisting> - <para>然後加入以下兩行 (在<quote>Monitor</quote> 之後):</para> + <para>然後加入以下兩行 (在<quote>Monitor</quote> 之後):</para> <programlisting xml:lang="en">DefaultDepth 24 Option "AddARGBGLXVisuals" "True"</programlisting> - <para>找到您欲使用的螢幕解析度所在的 <quote>Subsection</quote>,例如,您想要使用 1280x1024,則找到如下所示的 Section。若想要使用的解析度不在任何 Subsection 之中,您可以手動加入對應的項目:</para> + <para>找到您欲使用的螢幕解析度所在的 <quote>Subsection</quote>,例如,您想要使用 1280x1024,則找到如下所示的 Section。若想要使用的解析度不在任何 Subsection 之中,您可以手動加入對應的項目:</para> <programlisting xml:lang="en">SubSection "Display" Viewport 0 0 Modes "1280x1024" EndSubSection</programlisting> - <para>桌面合成需要 24 bit 的色彩深度,更改上述 Subsection 為:</para> + <para>桌面合成需要 24 bit 的色彩深度,更改上述 Subsection 為:</para> <programlisting xml:lang="en">SubSection "Display" Viewport 0 0 @@ -8038,14 +8044,14 @@ EndSubSection</programlisting> Modes "1280x1024" EndSubSection</programlisting> - <para>最後確認在 <quote>Module</quote> section 中已經載入 <quote>glx</quote> 與 <quote>extmod</quote> 模組:</para> + <para>最後確認在 <quote>Module</quote> section 中已經載入 <quote>glx</quote> 與 <quote>extmod</quote> 模組:</para> <programlisting xml:lang="en">Section "Module" Load "extmod" Load "glx" ...</programlisting> - <para>前面所述的動作可以執行 <package>x11/nvidia-xconfig</package> 來自動完成 (使用 root) :</para> + <para>前面所述的動作可以執行 <package>x11/nvidia-xconfig</package> 來自動完成 (使用 root):</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>nvidia-xconfig --add-argb-glx-visuals</userinput> <prompt>#</prompt> <userinput>nvidia-xconfig --composite</userinput> @@ -8055,30 +8061,30 @@ EndSubSection</programlisting> <sect2 xml:id="compiz-fusion"> <title>安裝與設定 Compiz Fusion</title> - <para>安裝 <application>Compiz Fusion</application> 如同安裝其他套件一樣簡單:</para> + <para>安裝 <application>Compiz Fusion</application> 如同安裝其他套件一樣簡單:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install x11-wm/compiz-fusion</userinput></screen> - <para>安裝完成之後,開啟您的圖型化桌面,然後在終端機的畫面輸入以下指令 (使用一般使用者):</para> + <para>安裝完成之後,開啟您的圖型化桌面,然後在終端機的畫面輸入以下指令 (使用一般使用者):</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>compiz --replace --sm-disable --ignore-desktop-hints ccp &</userinput> <prompt>%</prompt> <userinput>emerald --replace &</userinput></screen> - <para>由於您的視窗管理程式 (例如: <application>Metacity</application>,若您使用 <application>GNOME</application>) 會被替換成 <application>Compiz Fusion</application>,您的螢幕會閃爍幾秒。而 <application>Emerald</application> 會處理視窗的裝飾 (例如: 關閉、最小化、最大化按鈕、標題列及其他相關)。</para> + <para>由於您的視窗管理程式 (例如:<application>Metacity</application>,若您使用 <application>GNOME</application>) 會被替換成 <application>Compiz Fusion</application>,您的螢幕會閃爍幾秒。而 <application>Emerald</application> 會處理視窗的裝飾 (例如:關閉、最小化、最大化按鈕、標題列及其他相關)。</para> - <para>您或許可以將這些指令改寫成較小的 Script 然後在啟動時自動執行 (加到 <application>GNOME</application> 桌面的 <quote>Sessions</quote> 中):</para> + <para>您或許可以將這些指令改寫成較小的 Script 然後在啟動時自動執行 (加到 <application>GNOME</application> 桌面的 <quote>Sessions</quote> 中):</para> <programlisting xml:lang="en">#! /bin/sh compiz --replace --sm-disable --ignore-desktop-hints ccp & emerald --replace &</programlisting> - <para>儲存這個 Script 到您的家目錄所在位置,例如 <filename>start-compiz</filename>,然後讓該檔案可以執行:</para> + <para>儲存這個 Script 到您的家目錄所在位置,例如 <filename>start-compiz</filename>,然後讓該檔案可以執行:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>chmod +x ~/start-compiz</userinput></screen> <para>接著使用 GUI 將該檔案加入啟動程式 <guimenuitem>Startup Programs</guimenuitem> (位於 <application>GNOME</application> 桌面的系統 <guimenuitem>System</guimenuitem>, 偏好設定 <guimenuitem>Preferences</guimenuitem>, 工作階段 <guimenuitem>Sessions</guimenuitem>)。</para> - <para>要選擇所想使用的特效與相關設定,可執行 (一樣使用一般使用者) Compiz Config 設定管理程式 <application>Compiz Config Settings Manager</application>:</para> + <para>要選擇所想使用的特效與相關設定,可執行 (一樣使用一般使用者) Compiz Config 設定管理程式 <application>Compiz Config Settings Manager</application>:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>ccsm</userinput></screen> @@ -8094,16 +8100,16 @@ emerald --replace &</programlisting> <title>疑難排解</title> - <para>若滑鼠無法使用,您將需要做第一次設定方可繼續。在最近的 <application>Xorg</application> 版本,使用自動偵測裝置會忽略在 <filename>xorg.conf</filename> 中的 <literal>InputDevice</literal> section。要採用舊的方式,需在此檔案加入下行到 <literal>ServerLayout</literal> 或 <literal>ServerFlags</literal> section:</para> + <para>若滑鼠無法使用,您將需要做第一次設定方可繼續。在最近的 <application>Xorg</application> 版本,使用自動偵測裝置會忽略在 <filename>xorg.conf</filename> 中的 <literal>InputDevice</literal> section。要採用舊的方式,需在此檔案加入下行到 <literal>ServerLayout</literal> 或 <literal>ServerFlags</literal> section:</para> <programlisting xml:lang="en">Option "AutoAddDevices" "false"</programlisting> - <para>輸入裝置便可如先前版本一樣設定,連同其他所需的選項 (如: 切換鍵盤配置)。</para> + <para>輸入裝置便可如先前版本一樣設定,連同其他所需的選項 (如:切換鍵盤配置)。</para> <note> <para>如同前面有說明過,<application>hald</application> Daemon 預設會自動偵測您的鍵盤,因此您的鍵盤配置或型號可能不正確,桌面環境如 <application>GNOME</application>, <application>KDE</application> 或 <application>Xfce</application> 會提供設定鍵盤的工具。即使如此,還是有可能透過 <citerefentry vendor="xorg"><refentrytitle>setxkbmap</refentrytitle><manvolnum>1</manvolnum></citerefentry> 工具或 <application>hald</application> 的設定規則的協助來直接設定鍵盤屬性。</para> - <para>舉例來說,若有人想要使用 PC 102 鍵的鍵盤,採用法語 (French) 配置,我們便需要建立一個給 <application>hald</application> 的鍵盤設定檔,名稱為 <filename>x11-input.fdi</filename>,然後儲存到 <filename>/usr/local/etc/hal/fdi/policy</filename> 目錄。這個檔案中應要有以下幾行:</para> + <para>舉例來說,若有人想要使用 PC 102 鍵的鍵盤,採用法語 (French) 配置,我們便需要建立一個給 <application>hald</application> 的鍵盤設定檔,名稱為 <filename>x11-input.fdi</filename>,然後儲存到 <filename>/usr/local/etc/hal/fdi/policy</filename> 目錄。這個檔案中應要有以下幾行:</para> <programlisting xml:lang="en"><?xml version="1.0" encoding="iso-8859-1"?> <deviceinfo version="0.2"> @@ -8119,7 +8125,7 @@ emerald --replace &</programlisting> <para>您會需要重新啟動您的機器來讓 <application>hald</application> 讀取這個檔案。</para> - <para>也是可以從 X 終端機或 Script 下指令來做同樣的設定:</para> + <para>也是可以從 X 終端機或 Script 下指令來做同樣的設定:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>setxkbmap -model pc102 -layout fr</userinput></screen> @@ -8129,7 +8135,7 @@ emerald --replace &</programlisting> <indexterm xml:lang="en"><primary><application>Xorg</application> tuning</primary></indexterm> - <para>現在可以開始調整 <filename>xorg.conf.new</filename> 設定檔,在文字編輯器如 <citerefentry vendor="ports"><refentrytitle>emacs</refentrytitle><manvolnum>1</manvolnum></citerefentry> 或 <citerefentry><refentrytitle>ee</refentrytitle><manvolnum>1</manvolnum></citerefentry> 開啟該設定檔。若顯示器是不支援自動偵測同步頻率 (Sync frequency) 的舊或特殊的型號,同步頻率的設定可以手動加到 <filename>xorg.conf.new</filename> 的 <literal>"Monitor"</literal> section:</para> + <para>現在可以開始調整 <filename>xorg.conf.new</filename> 設定檔,在文字編輯器如 <citerefentry vendor="ports"><refentrytitle>emacs</refentrytitle><manvolnum>1</manvolnum></citerefentry> 或 <citerefentry><refentrytitle>ee</refentrytitle><manvolnum>1</manvolnum></citerefentry> 開啟該設定檔。若顯示器是不支援自動偵測同步頻率 (Sync frequency) 的舊或特殊的型號,同步頻率的設定可以手動加到 <filename>xorg.conf.new</filename> 的 <literal>"Monitor"</literal> section:</para> <programlisting xml:lang="en">Section "Monitor" Identifier "Monitor0" @@ -8141,7 +8147,7 @@ EndSection</programlisting> <para>多數顯示器都支援自動偵測同步頻率,並不需要手動設定這些數值。對於那些不支援自動偵測的顯示器,請輸入由製造商提供的數值來避免損壞顯示器。</para> - <para>X 允許在支援的顯示器使用 DPMS (Energy Star) 功能,<citerefentry vendor="xfree86"><refentrytitle>xset</refentrytitle><manvolnum>1</manvolnum></citerefentry> 程式可以控制逾時並可強制待機 (Standby)、暫停 (Suspend) 或關閉 (Off) 模式。若您想要為您的顯示器開啟 DPMS 功能,您需要加入下行到顯示器 (Monitor) 的 Section:</para> + <para>X 允許在支援的顯示器使用 DPMS (Energy Star) 功能,<citerefentry vendor="xfree86"><refentrytitle>xset</refentrytitle><manvolnum>1</manvolnum></citerefentry> 程式可以控制逾時並可強制待機 (Standby)、暫停 (Suspend) 或關閉 (Off) 模式。若您想要為您的顯示器開啟 DPMS 功能,您需要加入下行到顯示器 (Monitor) 的 Section:</para> <programlisting xml:lang="en">Option "DPMS"</programlisting> @@ -8149,7 +8155,7 @@ EndSection</programlisting> <primary><filename>xorg.conf</filename></primary> </indexterm> - <para>在編輯器還未關閉 <filename>xorg.conf.new</filename> 設定檔前,選擇想要使用的預設解析度及色彩深度。這些項目可在 <literal>"Screen"</literal> section 定義:</para> + <para>在編輯器還未關閉 <filename>xorg.conf.new</filename> 設定檔前,選擇想要使用的預設解析度及色彩深度。這些項目可在 <literal>"Screen"</literal> section 定義:</para> <programlisting xml:lang="en">Section "Screen" Identifier "Screen0" @@ -8168,7 +8174,7 @@ EndSection</programlisting> <para>最後,儲存設定檔並使用測試模式來測試上述的設定。</para> <note> - <para>有一個工具可以協助您診斷問題,那就是 <application>Xorg</application> 記錄檔。該記錄檔中記錄了 <application>Xorg</application> 連接的每個裝置的資訊。<application>Xorg</application> 記錄檔名稱的格式為 <filename>/var/log/Xorg.0.log</filename>,確切的記錄檔名會可能從 <filename>Xorg.0.log</filename> 到 <filename>Xorg.8.log</filename> 以此類推。</para> + <para>有一個工具可以協助您診斷問題,那就是 <application>Xorg</application> 日誌檔。該日誌檔中記錄了 <application>Xorg</application> 連接的每個裝置的資訊。<application>Xorg</application> 記錄檔名稱的格式為 <filename>/var/log/Xorg.0.log</filename>,確切的記錄檔名會可能從 <filename>Xorg.0.log</filename> 到 <filename>Xorg.8.log</filename> 以此類推。</para> </note> <para>若一且運作正常,設定檔需要安裝到 <citerefentry vendor="xorg"><refentrytitle>Xorg</refentrytitle><manvolnum>1</manvolnum></citerefentry> 會尋找的常用設定檔位置,通常是 <filename>/etc/X11/xorg.conf</filename> 或 <filename>/usr/local/etc/X11/xorg.conf</filename>。</para> @@ -8196,9 +8202,9 @@ EndSection</programlisting> <primary>widescreen flatpanel configuration</primary> </indexterm> - <para>此章節會需要有一些進階的設定知識,若嘗試使用上述的標準設定工具仍無法產生可運作的設定,在記錄檔中應有足夠的資訊可運用來讓顯示卡運作。在此會需要使用文字編輯器。</para> + <para>此章節會需要有一些進階的設定知識,若嘗試使用上述的標準設定工具仍無法產生可運作的設定,在日誌檔中應有足夠的資訊可運用來讓顯示卡運作。在此會需要使用文字編輯器。</para> - <para>目前使用寬螢幕 (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, et.al.) 格式支援的 16:10 及 10:9 格式或其他的寬高比可會有問題。例如一些 16:10 寬高比常見的螢幕解析度:</para> + <para>目前使用寬螢幕 (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+, et.al.) 格式支援的 16:10 及 10:9 格式或其他的寬高比可會有問題。例如一些 16:10 寬高比常見的螢幕解析度:</para> <itemizedlist> <listitem> @@ -8222,7 +8228,7 @@ EndSection</programlisting> </listitem> </itemizedlist> - <para>在某些時候,可以簡單的將這些要使用的解析度以 <literal>Mode</literal> 加入到 Section "Screen":</para> + <para>在某些時候,可以簡單的將這些要使用的解析度以 <literal>Mode</literal> 加入到 Section "Screen":</para> <programlisting xml:lang="en">Section "Screen" Identifier "Screen0" @@ -8238,7 +8244,7 @@ EndSection</programlisting> <para><application>Xorg</application> 能夠從寬螢幕設定取得解析度資訊 (透過 I2C/DDC),因此能夠知道螢幕能處理的頻率及解析度。</para> - <para>若驅動程式中不存在那些螢幕能處理的 <literal>ModeLines</literal>,則需要給 <application>Xorg</application> 一點提示。透過 <filename>/var/log/Xorg.0.log</filename> 可以取得足夠的資訊來手動建立可運作的 <literal>ModeLine</literal>。只需要在記錄檔中找到類似以下的訊息:</para> + <para>若驅動程式中不存在那些螢幕能處理的 <literal>ModeLines</literal>,則需要給 <application>Xorg</application> 一點提示。透過 <filename>/var/log/Xorg.0.log</filename> 可以取得足夠的資訊來手動建立可運作的 <literal>ModeLine</literal>。只需要在日誌檔中找到類似以下的訊息:</para> <programlisting xml:lang="en">(II) MGA(0): Supported additional Video Mode: (II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm @@ -8246,11 +8252,11 @@ EndSection</programlisting> (II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0 (II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz</programlisting> - <para>這些資訊稱作 EDID 資訊,使用 EDIT 資訊建立 <literal>ModeLine</literal> 只需要將數據使用正確的順序放入:</para> + <para>這些資訊稱作 EDID 資訊,使用 EDIT 資訊建立 <literal>ModeLine</literal> 只需要將數據使用正確的順序放入:</para> <programlisting xml:lang="en">ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings></programlisting> - <para>將資訊放入之後,本例中 <literal>Section "Monitor"</literal> 中的 <literal>ModeLine</literal> 會看起來像這樣:</para> + <para>將資訊放入之後,本例中 <literal>Section "Monitor"</literal> 中的 <literal>ModeLine</literal> 會看起來像這樣:</para> <programlisting xml:lang="en">Section "Monitor" Identifier "Monitor1" @@ -8283,7 +8289,7 @@ EndSection</programlisting> </question> <answer> - <para>若您檢查 <filename>/var/log/Xorg.0.log</filename>,您可能可以找到當 X 啟動時所發生的錯誤訊息。最常發生的錯誤會是:</para> + <para>若您檢查 <filename>/var/log/Xorg.0.log</filename>,您可能可以找到當 X 啟動時所發生的錯誤訊息。最常發生的錯誤會是:</para> <screen xml:lang="en">(EE) NVIDIA(0): Failed to initialize the GLX module; please check in your X (EE) NVIDIA(0): log file that the GLX module has been loaded in your X @@ -8462,7 +8468,7 @@ EndSection</programlisting> <sect3 xml:id="moz-java-plugin"> <title>Firefox 與 <trademark>Java</trademark> 附加元件</title> - <para>安裝 <application>Firefox</application> 並不包含 <trademark>Java</trademark> 支援,雖然如此 <package>java/icedtea-web</package> 提供了免費的網頁瀏覽器附加元件來執行 Java applet,此附加元件可以用 Binary 套件安裝或者自 Port 編譯:</para> + <para><application>Firefox</application> 的安裝並不包含 <trademark>Java</trademark> 支援,雖然如此 <package>java/icedtea-web</package> 提供了免費的網頁瀏覽器附加元件來執行 Java applet,此附加元件可以用 Binary 套件安裝或者自 Port 編譯:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cd /usr/ports/java/icedtea-web</userinput> <prompt>#</prompt> <userinput>make install clean</userinput></screen> @@ -8471,9 +8477,7 @@ EndSection</programlisting> <para>安裝完成時,啟動 <application>firefox</application>,在網址列輸入 <literal>about:plugins</literal> 並按 <keycap>Enter</keycap> 鍵。 會出現一個頁面列出已安裝的附加元件。 <application><trademark>Java</trademark></application> 附加元件應該會列在其中。</para> - <para xml:lang="en">If the browser is unable to find the plugin, each user - will have to run the following command and relaunch the - browser:</para> + <para>若瀏覽器無法找到附加元件,每位使用者則須執行以下指令並重新執行瀏覽器:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>ln -s /usr/local/lib/IcedTeaPlugin.so \ $HOME/.mozilla/plugins/</userinput></screen> @@ -8518,23 +8522,18 @@ EndSection</programlisting> <sect3 xml:id="moz-swfdec-flash-plugin"> <title>Firefox 與 Swfdec <trademark class="registered">Flash</trademark> 附加元件</title> - <para xml:lang="en"><application>Swfdec</application> is a decoder and - renderer for <trademark class="registered">Flash</trademark> animations. - <application>Swfdec-Mozilla</application> is a plugin for - <application>Firefox</application> browsers that uses the - Swfdec library for playing SWF files.</para> + <para><application>Swfdec</application> 是 <trademark class="registered">Flash</trademark> 動畫的解碼程式及繪製程式。<application>Swfdec-Mozilla</application> 是供 <application>Firefox</application> 瀏覽器使用的附加元件,可使用 Swfdec 程式庫來播放 SWF 檔案。</para> <para>要安裝套件可:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install swfdec-plugin</userinput></screen> - <para xml:lang="en">If the package is not available, compile and install it - from the Ports Collection:</para> + <para>若無套件可用,可自 Port 套件集編譯並安裝該附加元件:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cd /usr/ports/www/swfdec-plugin</userinput> <prompt>#</prompt> <userinput>make install clean</userinput></screen> - <para xml:lang="en">Restart the browser to activate this plugin.</para> + <para>重新啟動瀏覽器來啟動此附加元件。</para> </sect3> </sect2> @@ -8596,48 +8595,29 @@ EndSection</programlisting> <primary><application>Chromium</application></primary> </indexterm> - <para xml:lang="en"><application>Chromium</application> is an open source - browser project that aims to build a safer, faster, and more - stable web browsing experience. - <application>Chromium</application> features tabbed browsing, - popup blocking, extensions, and much more. - <application>Chromium</application> is the open source project - upon which the Google Chrome web browser is based.</para> + <para><application>Chromium</application> 是一個開放源始碼的瀏覽器計劃,該計劃的目標是要建立一個安全、快速且更穩定的網頁瀏覽體驗。<application>Chromium</application> 的功能有頁籤式瀏覽、彈出視窗封鎖、擴充套件等等。<application>Chromium</application> 也是 Google Chrome 網頁瀏覽器所採用的基礎。</para> - <para xml:lang="en"><application>Chromium</application> can be installed as a - package by typing:</para> + <para><application>Chromium</application> 可以使用套件來安裝,只要輸入:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install chromium</userinput></screen> - <para xml:lang="en">Alternatively, <application>Chromium</application> can be - compiled from source using the Ports Collection:</para> + <para>或者可從 Port 套件集的原始碼編譯 <application>Chromium</application>:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cd /usr/ports/www/chromium</userinput> <prompt>#</prompt> <userinput>make install clean</userinput></screen> <note> - <para xml:lang="en">The executable for <application>Chromium</application> - is <filename>/usr/local/bin/chrome</filename>, not - <filename>/usr/local/bin/chromium</filename>.</para> + <para><application>Chromium</application> 的執行檔為 <filename>/usr/local/bin/chrome</filename>,並非 <filename>/usr/local/bin/chromium</filename>。</para> </note> <sect3 xml:id="chromium-java-plugin"> <title>Chromium 與 <trademark>Java</trademark> 附加元件</title> - <para xml:lang="en">The installation of - <application>Chromium</application> does not include <trademark>Java</trademark> - support. To install <trademark>Java</trademark> plugin support, follow the - instructions in <xref linkend="moz-java-plugin"/>.</para> + <para><application>Chromium</application> 的安裝並不包含 <trademark>Java</trademark> 的支援。要安裝 <trademark>Java</trademark> 附加元件支援,請依照 <xref linkend="moz-java-plugin"/> 的指示操作。</para> - <para xml:lang="en">Once <trademark>Java</trademark> support is installed, start - <application>Chromium</application> and enter - <literal>about:plugins</literal> in the address bar. - IcedTea-Web should be listed as one of the installed - plugins.</para> + <para><trademark>Java</trademark> 支援安裝完成後,啟動 <application>Chromium</application> 然後在網址列輸入 <literal>about:plugins</literal>。已安裝的附件元件其中之一應該會有 IcedTea-Web。</para> - <para xml:lang="en">If <application>Chromium</application> does not display - the IcedTea-Web plugin, run the following commands and - restart the web browser:</para> + <para>若 <application>Chromium</application> 未顯示 IcedTea-Web 為附件元件,請執行以下指令然後重新啟動網頁瀏覽器:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>mkdir -p /usr/local/share/chromium/plugins <prompt>#</prompt> ln -s /usr/local/lib/IcedTeaPlugin.so \ @@ -8647,12 +8627,7 @@ EndSection</programlisting> <sect3 xml:id="chromium-flash-plugin"> <title>Chromium 與 <trademark class="registered">Adobe</trademark> <trademark class="registered">Flash</trademark> 附加元件</title> - <para xml:lang="en">Configuring <application>Chromium</application> and - <trademark class="registered">Adobe</trademark> <trademark class="registered">Flash</trademark> is similar to the instructions in - <xref linkend="moz-flash-plugin"/>. No additional - configuration should be necessary, since - <application>Chromium</application> is able to use some - plugins from other browsers.</para> + <para>設定 <application>Chromium</application> 及 <trademark class="registered">Adobe</trademark> <trademark class="registered">Flash</trademark> 與 <xref linkend="moz-flash-plugin"/> 中的操作相似,無須額外的設定,因 <application>Chromium</application> 能夠使用部份來自其他瀏覽器的附加元件。</para> </sect3> </sect2> </sect1> @@ -8726,25 +8701,13 @@ EndSection</programlisting> <secondary><application>Calligra</application></secondary> </indexterm> - <para xml:lang="en">The KDE desktop environment includes - an office suite which can be installed separately from - <application>KDE</application>. - <application>Calligra</application> includes standard - components that can be found in other office suites. - <application>Words</application> is the word processor, - <application>Sheets</application> is the spreadsheet program, - <application>Stage</application> manages slide presentations, - and <application>Karbon</application> is used to draw - graphical documents.</para> - - <para xml:lang="en">In FreeBSD, <package>editors/calligra</package> can be - installed as a package or a port. To install the - package:</para> + <para>KDE 桌面環境中內含辦公軟體可以與 <application>KDE</application> 分開安裝。<application>Calligra</application> 中也有可在其他辦公軟體中找到的標準元件,如 <application>Words</application> 是文件處理程式、<application>Sheets</application> 是試算表程式、<application>Stage</application> 可管理投影片以及 <application>Karbon</application> 用來繪製圖型文件。</para> + + <para>在 FreeBSD 中 <package>editors/calligra</package> 可以使用套件或 Port 的方式安裝,要使用套件安裝:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install calligra</userinput></screen> - <para xml:lang="en">If the package is not available, use the Ports Collection - instead:</para> + <para>若沒有可用的套件,可改使用 Port 套件集安裝:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cd /usr/ports/editors/calligra</userinput> <prompt>#</prompt> <userinput>make install clean</userinput></screen> @@ -8847,64 +8810,29 @@ EndSection</programlisting> <secondary><application>LibreOffice</application></secondary> </indexterm> - <para xml:lang="en"><application>LibreOffice</application> is a free software - office suite developed by <link xlink:href="http://www.documentfoundation.org/">documentfoundation.org</link>. - It is compatible with other major office suites and available - on a variety of platforms. It is a rebranded fork of - <application>Apache OpenOffice</application> and includes - applications found in a complete office productivity suite: - a word processor, spreadsheet, presentation manager, drawing - program, database management program, and a tool for creating - and editing mathematical formulæ. It is available in - a number of different languages and internationalization has - been extended to interfaces, spell checkers, and - dictionaries.</para> - - <para xml:lang="en">The word processor of - <application>LibreOffice</application> uses a native XML file - format for increased portability and flexibility. The - spreadsheet program features a macro language which can be - interfaced with external databases. - <application>LibreOffice</application> is stable and runs - natively on <trademark class="registered">Windows</trademark>, <trademark class="registered">Linux</trademark>, FreeBSD, and <trademark class="registered">Mac OS</trademark> X. - More information about <application>LibreOffice</application> - can be found at <link xlink:href="http://www.libreoffice.org/">libreoffice.org</link>.</para> - - <para xml:lang="en">To install the English version of the - <application>LibreOffice</application> package:</para> + <para><application>LibreOffice</application> 是一套自由的辦公軟體由 <link xlink:href="http://www.documentfoundation.org/">documentfoundation.org</link> 所開發。它可相容其他主流的辦公軟體以及可在各種平台上使用。它是 <application>Apache OpenOffice</application> 品牌重塑後的分支,含有可在完整辦公生產力軟體中找到的應用程式:文件處理程式、試算表、簡報管理程式、繪圖程式、資料庫管理程式以及建立與編輯數學公式的工具。它也支援數種語言與國際化一直延伸到介面、拼字檢查程式與字典。</para> + + <para><application>LibreOffice</application> 的文件處理程式使用了原生的 XML 檔案格式來增加可攜性與彈性,試算表程式支援可與外部資料庫連接的巨集語言。<application>LibreOffice</application> 非常穩定且可直接在 <trademark class="registered">Windows</trademark>, <trademark class="registered">Linux</trademark>, FreeBSD 以及 <trademark class="registered">Mac OS</trademark> X 上執行。更多有關 <application>LibreOffice</application> 的資訊可在 <link xlink:href="http://www.libreoffice.org/">libreoffice.org</link> 找到。</para> + + <para>要安裝英文版本的 <application>LibreOffice</application> 套件:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install libreoffice</userinput></screen> - <para xml:lang="en">The editors category (<link xlink:href="http://www.FreeBSD.org/ports/editors.html">freebsd.org/ports/editors.html</link>) - of the Ports Collection contains several localizations for - <application>LibreOffice</application>. When installing a - localized package, replace <literal>libreoffice</literal> - with the name of the localized package.</para> + <para>Port 套件集的編輯器分類 (<link xlink:href="http://www.FreeBSD.org/ports/editors.html">freebsd.org/ports/editors.html</link>) 中含有數個 <application>LibreOffice</application> 的語系。安裝在地化套件時,請替換 <literal>libreoffice</literal> 為在地化套件的名稱。</para> - <para xml:lang="en">Once the package is installed, type the following command - to run <application>LibreOffice</application>:</para> + <para>套件安裝之後,輸入以下指令來執行 <application>LibreOffice</application>:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>libreoffice</userinput></screen> - <para xml:lang="en">During the first launch, some questions will be asked - and a <filename>.libreoffice</filename> folder will be created - in the user's home directory.</para> + <para>第一次啟動的過程中會詢問一些問題並在使用者的家目錄建立 <filename>.libreoffice</filename> 資料夾。</para> - <para xml:lang="en">If the desired <application>LibreOffice</application> - package is not available, compiling the port is still an - option. However, this requires a lot of disk space and a - fairly long time to compile. This example compiles the - English version:</para> + <para>若找不到想使用的 <application>LibreOffice</application> 套件,也可從 Port 編譯,但這會要大量的磁碟空間及漫長的時間編譯。以下例子示範編譯英文版本:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cd /usr/ports/editors/libreoffice</userinput> <prompt>#</prompt> <userinput>make install clean</userinput></screen> <note> - <para xml:lang="en">To build a localized version, - <command>cd</command> into the port directory of - the desired language. Supported languages can be found - in the editors category (<link xlink:href="http://www.FreeBSD.org/ports/editors.html">freebsd.org/ports/editors.html</link>) - of the Ports Collection.</para> + <para>要編譯在地化版本,則需 <command>cd</command> 進入想要的語言 Port 目錄。支援的語言可在 Port 套件集的編輯器分類 (<link xlink:href="http://www.FreeBSD.org/ports/editors.html">freebsd.org/ports/editors.html</link>) 中找到。</para> </note> </sect2> </sect1> @@ -8912,10 +8840,7 @@ EndSection</programlisting> <sect1 xml:id="desktop-viewers"> <title>文件閱覽程式</title> - <para xml:lang="en">Some new document formats have gained popularity since - the advent of <trademark class="registered">UNIX</trademark> and the viewers they require may not be - available in the base system. This section demonstrates how to - install the following document viewers:</para> + <para><trademark class="registered">UNIX</trademark> 出現之後,有一些新的文件格式才越來越熱門,這些文件所需的檢視程式可能並不在基礎系統中。本節將示範如何安裝以下文件檢視程式:</para> <informaltable frame="none" pgwide="1"> <tgroup cols="4"> @@ -9047,17 +8972,9 @@ EndSection</programlisting> <secondary>viewing</secondary> </indexterm> - <para xml:lang="en"><application>ePDFView</application> is a lightweight - <acronym>PDF</acronym> document viewer that only uses the - <application>Gtk+</application> and - <application>Poppler</application> libraries. It is currently - under development, but already opens most - <acronym>PDF</acronym> files (even encrypted), save copies of - documents, and has support for printing using - <application>CUPS</application>.</para> + <para><application>ePDFView</application> 是一套小巧的 <acronym>PDF</acronym> 文件檢視程式,只使用了 <application>Gtk+</application> 與 <application>Poppler</application> 程式庫。它目前還在開發當中,但已經可以開啟大部份 <acronym>PDF</acronym> 檔案 (甚至是加密過的)、儲存文件複本以及支援使用 <application>CUPS</application> 來列印。</para> - <para xml:lang="en">To install <application>ePDFView</application> as a - package:</para> + <para>要以套件安裝 <application>ePDFView</application>:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install epdfview</userinput></screen> @@ -9078,15 +8995,9 @@ EndSection</programlisting> <secondary>viewing</secondary> </indexterm> - <para xml:lang="en"><application>Okular</application> is a universal document - viewer based on <application>KPDF</application> for - <application>KDE</application>. It can open many document - formats, including <acronym>PDF</acronym>, <trademark class="registered">PostScript</trademark>, DjVu, - <acronym>CHM</acronym>, <acronym>XPS</acronym>, and - ePub.</para> + <para><application>Okular</application> 是一套通用的文件檢視程式,以 <application>KDE</application> 的 <application>KPDF</application> 為基礎。它可以開啟許多種文件格式,包含了 <acronym>PDF</acronym>, <trademark class="registered">PostScript</trademark>, DjVu, <acronym>CHM</acronym>, <acronym>XPS</acronym> 以及 ePub。</para> - <para xml:lang="en">To install <application>Okular</application> as a - package:</para> + <para>要以套件安裝 <application>Okular</application>:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install okular</userinput></screen> @@ -9147,7 +9058,7 @@ EndSection</programlisting> <primary><application>GnuCash</application></primary> </indexterm> - <para><application>GnuCash</application> 是 <application>GNOME</application> 團隊努力成果中的一部分, <application>GNOME</application> 團隊主要提供親切而強大的桌面應用程式給終端使用者。使用 <application>GnuCash</application> 可以持續追蹤記錄收入與花費、銀行帳戶以及股票證券等。 它的特性是介面直覺但功能仍非常專業。</para> + <para><application>GnuCash</application> 是 <application>GNOME</application> 團隊努力成果中的一部分, <application>GNOME</application> 團隊主要提供親切而強大的桌面應用程式給終端使用者。使用 <application>GnuCash</application> 可以持續追蹤收入與花費、銀行帳戶以及股票證券等。 它的特性是介面直覺但功能仍非常專業。</para> <para><application>GnuCash</application> 提供了智慧的計數器、多階層帳戶系統以及快速鍵及自動完成功能。 它也能分開單一的報表至數個詳細的部份。 <application>GnuCash</application> 也能夠匯入及合併 <application>Quicken</application> QIF 檔案。 它也能處理大部分國際的日期及通用貨幣之格式。</para> @@ -9188,19 +9099,9 @@ EndSection</programlisting> <indexterm><primary>試算表</primary> <secondary><application>KMyMoney</application></secondary></indexterm> - <para xml:lang="en"><application>KMyMoney</application> is a personal finance - application created by the <application>KDE</application> - community. <application>KMyMoney</application> aims to - provide the important features found in commercial personal - finance manager applications. It also highlights ease-of-use - and proper double-entry accounting among its features. - <application>KMyMoney</application> imports from standard - <application>Quicken</application> QIF files, tracks - investments, handles multiple currencies, and provides a - wealth of reports.</para> + <para><application>KMyMoney</application> 是一套個人財務應用程式,由 <application>KDE</application> 社群所開發。<application>KMyMoney</application> 的目標是提供可在商業個人財務管理應用程式中找到的重要功能,它也強調簡單易用及其功能間採用合適的複式記帳。<application>KMyMoney</application> 可從標準 <application>Quicken</application> QIF 檔案匯入資料、追蹤投資、處理多種貨幣並提供財務報表。</para> - <para xml:lang="en">To install <application>KMyMoney</application> as a - package:</para> + <para>要以套件安裝 <application>KMyMoney</application>:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>pkg install kmymoney-kde4</userinput></screen> @@ -10344,7 +10245,7 @@ zoom=yes</programlisting> <primary>TV cards</primary> </indexterm> - <para>電視卡(TV card)可以讓您用電腦來看無線、有線電視節目。許多卡都是透過 <acronym>RCA</acronym> 或 S-video 輸入端子來接收視訊,而且有些卡還可接收 <acronym>FM</acronym> 廣播的功能。</para> + <para>電視卡 (TV card) 可以讓您用電腦來看無線、有線電視節目。許多卡都是透過 <acronym>RCA</acronym> 或 S-video 輸入端子來接收視訊,而且有些卡還可接收 <acronym>FM</acronym> 廣播的功能。</para> <para>FreeBSD 可透過 <citerefentry><refentrytitle>bktr</refentrytitle><manvolnum>4</manvolnum></citerefentry> 驅動程式,來支援 PCI 介面的電視卡,只要這些卡使用的是 Brooktree Bt848/849/878/879 或 Conexant CN-878/Fusion 878a 視訊擷取晶片。此外,要再確認哪些卡上所附的選台功能是否有支援,可以參考 <citerefentry><refentrytitle>bktr</refentrytitle><manvolnum>4</manvolnum></citerefentry> 說明,以查看所支援的硬體清單。</para> @@ -10845,28 +10746,18 @@ add path usb/0.2.0 mode 0666 group usb</programlisting> </listitem> </itemizedlist> - <para xml:lang="en">Before building a custom kernel, consider the reason for - doing so. If there is a need for specific hardware support, - it may already exist as a module.</para> + <para>在編譯自訂核心之前,請思考要這麼做的原因,若是因為需要特定硬體的支援,很可能已有既有的模組可以使用。</para> - <para xml:lang="en">Kernel modules exist in <filename>/boot/kernel</filename> - and may be dynamically loaded into the running kernel using - <citerefentry><refentrytitle>kldload</refentrytitle><manvolnum>8</manvolnum></citerefentry>. Most kernel drivers have a loadable module and - manual page. For example, the <citerefentry><refentrytitle>ath</refentrytitle><manvolnum>4</manvolnum></citerefentry> wireless Ethernet - driver has the following information in its manual page:</para> + <para>核心模組會放在 <filename>/boot/kernel</filename> 並且可使用 <citerefentry><refentrytitle>kldload</refentrytitle><manvolnum>8</manvolnum></citerefentry> 動態載入到執行中的核心。大部份的核心驅動程式都有可載入的模組與操作手冊。例如 <citerefentry><refentrytitle>ath</refentrytitle><manvolnum>4</manvolnum></citerefentry> 無線乙太網路驅動程式在其操作手冊有以下資訊:</para> <screen xml:lang="en">Alternatively, to load the driver as a module at boot time, place the following line in <citerefentry><refentrytitle>loader.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>: if_ath_load="YES"</screen> - <para xml:lang="en">Adding <literal>if_ath_load="YES"</literal> to - <filename>/boot/loader.conf</filename> will load this module - dynamically at boot time.</para> + <para>加入 <literal>if_ath_load="YES"</literal> 到 <filename>/boot/loader.conf</filename> 會於開機期間自動載入這個模組。</para> - <para xml:lang="en">In some cases, there is no associated module in - <filename>/boot/kernel</filename>. This is mostly true for - certain subsystems.</para> + <para>部份情況在 <filename>/boot/kernel</filename> 會沒有相關的模組,這對於某些子系統大多是真的。</para> </sect1> <sect1 xml:id="kernelconfig-devices"> @@ -11942,7 +11833,7 @@ device fwe # Ethernet over FireWire (non-standard!)</programl <procedure> <step> - <para>建立一個目錄來儲存要被列印的檔案:</para> + <para>建立一個目錄來儲存要被列印的檔案:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>mkdir -p /var/spool/lpd/lp</userinput> <prompt>#</prompt> <userinput>chown daemon:daemon /var/spool/lpd/lp</userinput> @@ -11950,7 +11841,7 @@ device fwe # Ethernet over FireWire (non-standard!)</programl </step> <step> - <para>以 <systemitem class="username">root</systemitem> 建立 <filename>/etc/printcap</filename> 內容如下:</para> + <para>以 <systemitem class="username">root</systemitem> 建立 <filename>/etc/printcap</filename> 內容如下:</para> <programlisting xml:lang="en">lp:\ <replaceable>:lp=/dev/unlpt0:\</replaceable> <co xml:id="printing-qs-co-printcap"/> @@ -11961,13 +11852,13 @@ device fwe # Ethernet over FireWire (non-standard!)</programl <calloutlist> <callout arearefs="printing-qs-co-printcap"> - <para>此行是針對連接到 <acronym>USB</acronym> 埠的印表機:</para> + <para>此行是針對連接到 <acronym>USB</acronym> 埠的印表機:</para> - <para>連接到並列或 <quote>印表器 (Printer)</quote> 埠的印表機要使用:</para> + <para>連接到並列或 <quote>印表器 (Printer)</quote> 埠的印表機要使用:</para> <programlisting xml:lang="en">:lp=/dev/lpt0:\</programlisting> - <para>直接連接到網路的印表機要使用:</para> + <para>直接連接到網路的印表機要使用:</para> <programlisting xml:lang="en">:lp=:rm=<replaceable>network-printer-name</replaceable>:rp=raw:\</programlisting> @@ -11977,18 +11868,18 @@ device fwe # Ethernet over FireWire (non-standard!)</programl </step> <step> - <para>編輯 <filename>/etc/rc.conf</filename> 加入下行來開啟 <command>lpd</command>:</para> + <para>編輯 <filename>/etc/rc.conf</filename> 加入下行來開啟 <command>lpd</command>:</para> <programlisting xml:lang="en">lpd_enable="YES"</programlisting> - <para>啟動服務:</para> + <para>啟動服務:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>service lpd start</userinput> Starting lpd.</screen> </step> <step> - <para>測試列印:</para> + <para>測試列印:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>printf "1. This printer can print.\n2. This is the second line.\n" | lpr</userinput></screen> @@ -12018,7 +11909,7 @@ Starting lpd.</screen> <listitem> <para><acronym>USB</acronym> 印表機可以連接到電腦上任何可用的 <acronym>USB</acronym> 埠。</para> - <para>當 FreeBSD 偵測到 <acronym>USB</acronym> 印表機,會建立兩個裝置項目: <filename>/dev/ulpt0</filename> 以及 <filename>/dev/unlpt0</filename>,傳送到兩者任一裝置的資料都會被轉發到印表機。在每個列印工作完成後 <filename>ulpt0</filename> 便會重設 <acronym>USB</acronym> 埠,重設 <acronym>USB</acronym> 埠可能會在部份印表機造成問題,因此通常可以改使用 <filename>unlpt0</filename> 裝置。<filename>unlpt0</filename> 不會重設 USB 埠。</para> + <para>當 FreeBSD 偵測到 <acronym>USB</acronym> 印表機,會建立兩個裝置項目:<filename>/dev/ulpt0</filename> 以及 <filename>/dev/unlpt0</filename>,傳送到兩者任一裝置的資料都會被轉發到印表機。在每個列印工作完成後 <filename>ulpt0</filename> 便會重設 <acronym>USB</acronym> 埠,重設 <acronym>USB</acronym> 埠可能會在部份印表機造成問題,因此通常可以改使用 <filename>unlpt0</filename> 裝置。<filename>unlpt0</filename> 不會重設 USB 埠。</para> </listitem> </varlistentry> @@ -12076,7 +11967,7 @@ Starting lpd.</screen> <term xml:lang="en"><acronym>ASCII</acronym></term> <listitem> - <para>純 <acronym>ASCII</acronym> 文字是傳送資料到印表機最簡單的方式,一個字元對應一個要列印的文字: 資料中的 <literal>A</literal> 會列印一個 <literal>A</literal> 在頁面。可以使用的格式非常少,沒有辦法選擇字型或者比例間距。強迫使用簡單的純 <acronym>ASCII</acronym> 為的是讓文字可以直接從電腦列印只需一點或甚至不需要編碼或轉譯,列印的結果可直接對應傳送的內容。</para> + <para>純 <acronym>ASCII</acronym> 文字是傳送資料到印表機最簡單的方式,一個字元對應一個要列印的文字:資料中的 <literal>A</literal> 會列印一個 <literal>A</literal> 在頁面。可以使用的格式非常少,沒有辦法選擇字型或者比例間距。強迫使用簡單的純 <acronym>ASCII</acronym> 為的是讓文字可以直接從電腦列印只需一點或甚至不需要編碼或轉譯,列印的結果可直接對應傳送的內容。</para> <para>部份便宜印表機無法列印純 <acronym>ASCII</acronym> 文字,這讓這些印表機較難設定。</para> </listitem> @@ -12173,11 +12064,11 @@ Starting lpd.</screen> <sect1 xml:id="printing-direct"> <title>直接列印</title> - <para>對於偶爾列印,檔案可以直接傳送到印表機裝置,無需做任何設定。例如,要傳送一個名稱為 <filename>sample.txt</filename> 的檔案到 <acronym>USB</acronym> 印表機:</para> + <para>對於偶爾列印,檔案可以直接傳送到印表機裝置,無需做任何設定。例如,要傳送一個名稱為 <filename>sample.txt</filename> 的檔案到 <acronym>USB</acronym> 印表機:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cp sample.txt /dev/unlpt0</userinput></screen> - <para>要直接使用網路印表機列印需看該印表機支援的功能,但大多數會接受埠號 9100 的列印作業,可使用 <citerefentry><refentrytitle>nc</refentrytitle><manvolnum>1</manvolnum></citerefentry> 來完成。要使用 <acronym>DNS</acronym> 主機名稱為 <replaceable>netlaser</replaceable> 的印表機列印與上述相同的檔案可:</para> + <para>要直接使用網路印表機列印需看該印表機支援的功能,但大多數會接受埠號 9100 的列印作業,可使用 <citerefentry><refentrytitle>nc</refentrytitle><manvolnum>1</manvolnum></citerefentry> 來完成。要使用 <acronym>DNS</acronym> 主機名稱為 <replaceable>netlaser</replaceable> 的印表機列印與上述相同的檔案可:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>nc <replaceable>netlaser</replaceable> 9100 < sample.txt</userinput></screen> </sect1> @@ -12192,13 +12083,13 @@ Starting lpd.</screen> <sect2 xml:id="printing-lpd-setup"> <title>初始設定</title> - <para>建立要用來儲存列印工作的目錄、設定擁有關係以及權限來避免其他使用者可以檢視這些檔案的內容:</para> + <para>建立要用來儲存列印工作的目錄、設定擁有關係以及權限來避免其他使用者可以檢視這些檔案的內容:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>mkdir -p /var/spool/lpd/lp</userinput> <prompt>#</prompt> <userinput>chown daemon:daemon /var/spool/lpd/lp</userinput> <prompt>#</prompt> <userinput>chmod 770 /var/spool/lpd/lp</userinput></screen> - <para>印表機會定義在 <filename>/etc/printcap</filename>,每台印表機項目所包含的詳細資料有名稱、連接的接頭以及各種其他設定。建立 <filename>/etc/printcap</filename> 使用以下內容:</para> + <para>印表機會定義在 <filename>/etc/printcap</filename>,每台印表機項目所包含的詳細資料有名稱、連接的接頭以及各種其他設定。建立 <filename>/etc/printcap</filename> 使用以下內容:</para> <programlisting xml:lang="en">lp:\ <co xml:id="printing-lpd-co-name"/> :lp=/dev/unlpt0:\ <co xml:id="printing-lpd-co-device"/> @@ -12240,11 +12131,11 @@ Starting lpd.</screen> <row> <entry>網路</entry> - <entry><para>針對支援 <acronym>LPD</acronym> 通訊協定的印表機:</para> + <entry><para>針對支援 <acronym>LPD</acronym> 通訊協定的印表機:</para> <programlisting xml:lang="en">:lp=:rm=<replaceable>network-printer-name</replaceable>:rp=raw:\</programlisting> - <para>針對支援使用埠號 9100 列印的印表機:</para> + <para>針對支援使用埠號 9100 列印的印表機:</para> <programlisting xml:lang="en">:lp=9100@<replaceable>network-printer-name</replaceable>:\</programlisting> @@ -12275,21 +12166,21 @@ Starting lpd.</screen> </callout> <callout arearefs="printing-lpd-co-lf"> - <para>記錄此印表機回報錯誤的記錄檔。</para> + <para>回報此印表機的錯誤的日誌檔。</para> </callout> </calloutlist> - <para>在建立 <filename>/etc/printcap</filename> 之後,使用 <citerefentry><refentrytitle>chkprintcap</refentrytitle><manvolnum>8</manvolnum></citerefentry> 測試印表機是否有錯誤:</para> + <para>在建立 <filename>/etc/printcap</filename> 之後,使用 <citerefentry><refentrytitle>chkprintcap</refentrytitle><manvolnum>8</manvolnum></citerefentry> 測試印表機是否有錯誤:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>chkprintcap</userinput></screen> <para>在繼續之前修正任何回報的問題。</para> - <para>開啟 <filename>/etc/rc.conf</filename> 中的 <citerefentry><refentrytitle>lpd</refentrytitle><manvolnum>8</manvolnum></citerefentry>:</para> + <para>開啟 <filename>/etc/rc.conf</filename> 中的 <citerefentry><refentrytitle>lpd</refentrytitle><manvolnum>8</manvolnum></citerefentry>:</para> <programlisting xml:lang="en">lpd_enable="YES"</programlisting> - <para>啟動服務:</para> + <para>啟動服務:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>service lpd start</userinput></screen> </sect2> @@ -12894,9 +12785,13 @@ lp: </indexterm> <indexterm><primary>Binary 相容性</primary> <secondary>Linux</secondary></indexterm> - <para>FreeBSD 提供和 32 位元 <trademark class="registered">Linux</trademark> Binary 的相容性,允許使用者在 FreeBSD 不需要修改就可以安裝和執行大部份 32 位元 <trademark class="registered">Linux</trademark> Binary。 曾經有報告指出,在某些情況下,32 位元 <trademark class="registered">Linux</trademark> Binary 在 FreeBSD 的表現比在 <trademark class="registered">Linux</trademark> 好。</para> + <para>FreeBSD 提供 <trademark class="registered">Linux</trademark> Binary 的相容性,允許使用者在 FreeBSD 系統上不需要修改就可以安裝和執行大部份的 <trademark class="registered">Linux</trademark> Binary。 曾經有報告指出,在某些情況下,<trademark class="registered">Linux</trademark> Binary 在 FreeBSD 的表現比在 <trademark class="registered">Linux</trademark> 好。</para> - <para>然而,部份 <trademark class="registered">Linux</trademark> 作業系統的特色在 FreeBSD 並未支援。 例如,如果 <trademark class="registered">Linux</trademark> Binary 過度使用 <trademark>i386</trademark> 特定的呼叫,像是啟動虛擬 8086 模式,將無法在 FreeBSD 執行。此外,64 位元 <trademark class="registered">Linux</trademark> Binary 目前也尚未支援。</para> + <para>然而,部份特定在 <trademark class="registered">Linux</trademark> 作業系統上的功能在 FreeBSD 並沒有支援。例如,若 <trademark class="registered">Linux</trademark> Binary 過度的使用 <trademark>i386</trademark> 特定的呼叫,如啟動虛擬 8086 模式,會無法在 FreeBSD 執行。</para> + + <note> + <para>FreeBSD 10.3 後支援 64 位元的 <trademark class="registered">Linux</trademark> Binary 相容性。</para> + </note> <para>讀完這章,您將了解︰</para> @@ -12939,6 +12834,10 @@ lp: <screen xml:lang="en"><prompt>#</prompt> <userinput>kldload linux</userinput></screen> + <para xml:lang="en">For 64-bit compatibility:</para> + + <screen xml:lang="en"><prompt>#</prompt> <userinput>kldload linux64</userinput></screen> + <para>確認模組已載入:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>kldstat</userinput> @@ -12956,6 +12855,9 @@ lp: <programlisting xml:lang="en">linux_enable="YES"</programlisting> + <para xml:lang="en">On 64-bit machines, <filename>/etc/rc.d/abi</filename> will + automatically load the module for 64-bit emulation.</para> + <indexterm><primary>核心選項</primary> <secondary>COMPAT_LINUX</secondary></indexterm> <para>想要靜態連結 <trademark class="registered">Linux</trademark> Binary 相容性到自訂核心的使用者應加入 <literal>options COMPAT_LINUX</literal> 到自訂核心設定檔。 編譯並安裝新核心的方法,如 <xref linkend="kernelconfig"/> 所述。</para> @@ -20928,32 +20830,55 @@ COPYRIGHT 100% |*****************************| 4735 <para xml:lang="en">Instead of using passwords, a client can be configured to connect to the remote machine using keys. To generate - <acronym>DSA</acronym> or <acronym>RSA</acronym> + <acronym>RSA</acronym> authentication keys, use <command>ssh-keygen</command>. To generate a public and private key pair, specify the type of key and follow the prompts. It is recommended to protect the keys with a memorable, but hard to guess passphrase.</para> - <screen xml:lang="en"><prompt>%</prompt> <userinput>ssh-keygen -t <replaceable>dsa</replaceable></userinput> -Generating public/private dsa key pair. -Enter file in which to save the key (/home/user/.ssh/id_dsa): -Created directory '/home/user/.ssh'. -Enter passphrase (empty for no passphrase): <replaceable>type some passphrase here which can contain spaces</replaceable> -Enter same passphrase again: <replaceable>type some passphrase here which can contain spaces</replaceable> -Your identification has been saved in /home/user/.ssh/id_dsa. -Your public key has been saved in /home/user/.ssh/id_dsa.pub. + <screen xml:lang="en"><prompt>%</prompt> <userinput>ssh-keygen -t rsa</userinput> +Generating public/private rsa key pair. +Enter file in which to save the key (/home/user/.ssh/id_rsa): +Enter passphrase (empty for no passphrase): <co xml:id="co-ssh-keygen-passphrase1"/> +Enter same passphrase again: <co xml:id="co-ssh-keygen-passphrase2"/> +Your identification has been saved in /home/user/.ssh/id_rsa. +Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: -bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com</screen> - - <para xml:lang="en">Depending upon the specified protocol, the private key - is stored in <filename>~/.ssh/id_dsa</filename> (or - <filename>~/.ssh/id_rsa</filename>), and the public key - is stored in <filename>~/.ssh/id_dsa.pub</filename> (or - <filename>~/.ssh/id_rsa.pub</filename>). The - <emphasis>public</emphasis> key must be first copied to +SHA256:54Xm9Uvtv6H4NOo6yjP/YCfODryvUU7yWHzMqeXwhq8 user@host.example.com +The key's randomart image is: ++---[RSA 2048]----+ +| | +| | +| | +| . o.. | +| .S*+*o | +| . O=Oo . . | +| = Oo= oo..| +| .oB.* +.oo.| +| =OE**.o..=| ++----[SHA256]-----+</screen> + + <calloutlist> + <callout arearefs="co-ssh-keygen-passphrase1"> + <para xml:lang="en">Type a passphrase here. It can contain spaces and + symbols.</para> + </callout> + + <callout arearefs="co-ssh-keygen-passphrase2"> + <para xml:lang="en">Retype the passphrase to verify it.</para> + </callout> + </calloutlist> + + + <para xml:lang="en">The private key + is stored in <filename>~/.ssh/id_rsa</filename> + and the public key + is stored in <filename>~/.ssh/id_rsa.pub</filename>. + The + <emphasis>public</emphasis> key must be copied to <filename>~/.ssh/authorized_keys</filename> on the remote - machine in order for key-based authentication to + machine for key-based authentication to work.</para> <warning> @@ -20967,42 +20892,48 @@ bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com</screen> passphrase. In addition, to better secure end users, <literal>from</literal> may be placed in the public key file. For example, adding - <literal>from="192.168.10.5"</literal> in the front of - <literal>ssh-rsa</literal> or <literal>rsa-dsa</literal> - prefix will only allow that specific user to login from + <literal>from="192.168.10.5"</literal> in front of the + <literal>ssh-rsa</literal> + prefix will only allow that specific user to log in from that <acronym>IP</acronym> address.</para> </warning> - <para xml:lang="en">The various options and files can be different - according to the <application>OpenSSH</application> version. + <para xml:lang="en">The options and files vary with different versions of + <application>OpenSSH</application>. To avoid problems, consult <citerefentry><refentrytitle>ssh-keygen</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para> - <para xml:lang="en">If a passphrase is used, the user will be prompted for + <para xml:lang="en">If a passphrase is used, the user is prompted for the passphrase each time a connection is made to the server. - To load <acronym>SSH</acronym> keys into memory, without - needing to type the passphrase each time, use + To load <acronym>SSH</acronym> keys into memory and remove + the need to type the passphrase each time, use <citerefentry><refentrytitle>ssh-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry> and <citerefentry><refentrytitle>ssh-add</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para> <para xml:lang="en">Authentication is handled by - <command>ssh-agent</command>, using the private key(s) that - are loaded into it. Then, <command>ssh-agent</command> - should be used to launch another application such as a + <command>ssh-agent</command>, using the private keys that + are loaded into it. <command>ssh-agent</command> + can be used to launch another application like a shell or a window manager.</para> <para xml:lang="en">To use <command>ssh-agent</command> in a shell, start it - with a shell as an argument. Next, add the identity by - running <command>ssh-add</command> and providing it the - passphrase for the private key. Once these steps have been - completed, the user will be able to <command>ssh</command> + with a shell as an argument. Add the identity by + running <command>ssh-add</command> and entering the + passphrase for the private key. + The user will then be able to <command>ssh</command> to any host that has the corresponding public key installed. For example:</para> <screen xml:lang="en"><prompt>%</prompt> ssh-agent <replaceable>csh</replaceable> <prompt>%</prompt> ssh-add -Enter passphrase for key '/usr/home/user/.ssh/id_dsa': <replaceable>type passphrase here</replaceable> -Identity added: /usr/home/user/.ssh/id_dsa (/usr/home/user/.ssh/id_dsa) +Enter passphrase for key '/usr/home/user/.ssh/id_rsa': <co xml:id="co-ssh-agent-passphrase"/> +Identity added: /usr/home/user/.ssh/id_rsa (/usr/home/user/.ssh/id_rsa) <prompt>%</prompt></screen> + <calloutlist> + <callout arearefs="co-ssh-agent-passphrase"> + <para xml:lang="en">Enter the passphrase for the key.</para> + </callout> + </calloutlist> + <para xml:lang="en">To use <command>ssh-agent</command> in <application>Xorg</application>, add an entry for it in <filename>~/.xinitrc</filename>. This provides the @@ -26596,7 +26527,7 @@ ada0 recovered</screen> 79691810 4194236 3 freebsd-swap (2G) 83886046 18513921 - free - (8.8G)</screen> - <para>分割區只能重設大小到連續的未使用空間。在這個例子磁碟上最後的分割區為交換 (Swap) 分割區,而第二個分割區才是需要重設大小的分割區。交換分割區中只會有暫存的資料,所以可以安全的解除掛載、刪除,然後在重設其他分割區大小之後再重建。</para> + <para>分割區只能重設大小到連續的未使用空間。在這個例子磁碟上最後的分割區為交換 (Swap) 分割區,而第二個分割區才是需要重設大小的分割區。交換分割區中只會有暫存的資料,所以可以安全的卸載、刪除,然後在重設其他分割區大小之後再重建。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>swapoff <replaceable>/dev/ada0p3</replaceable></userinput> <prompt>#</prompt> <userinput>gpart delete -i <replaceable>3</replaceable> <replaceable>ada0</replaceable></userinput> @@ -26637,7 +26568,7 @@ ada0p3 added <para>擴增 <acronym>UFS</acronym> 檔案系統來使用重設分割區大小之後的新容量:</para> <note> - <para>只能在 FreeBSD 10.0-RELEASE 或之後的版本擴增運作中的 <acronym>UFS</acronym> 檔案系統,較先前的版本必須將檔案系統解除掛載。</para> + <para>只能在 FreeBSD 10.0-RELEASE 或之後的版本擴增運作中的 <acronym>UFS</acronym> 檔案系統,較先前的版本必須將檔案系統卸載。</para> </note> <screen xml:lang="en"><prompt>#</prompt> <userinput>growfs <replaceable>/dev/ada0p2</replaceable></userinput> @@ -26763,7 +26694,7 @@ vfs.usermount: 0 -> 1</screen> <screen xml:lang="en"><prompt>%</prompt> <userinput>mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/<replaceable>username</replaceable></userinput></screen> - <para>在裝置可以被拔除前,<emphasis>必須</emphasis>先解除掛載:</para> + <para>在裝置可以被拔除前,<emphasis>必須</emphasis>先卸載:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>umount /mnt/<replaceable>username</replaceable></userinput></screen> @@ -26814,7 +26745,7 @@ da0: <STECH Simple Drive 1.04> s/n WD-WXE508CAN263 detached <para>可以被自動掛載的檔案系統會在 <filename>/media/</filename> 中以目錄呈現,會以檔案系統的標籤來命名目錄,若標籤遺失,則會以裝置節點命名。</para> - <para>檔案系統會在第一次存取時自動掛載,並在一段時間未使用後自動解除掛載。自動掛載的磁碟也可手動解除掛載:</para> + <para>檔案系統會在第一次存取時自動掛載,並在一段時間未使用後自動卸載。自動掛載的磁碟也可手動卸載:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>automount -fu</userinput></screen> @@ -27815,7 +27746,7 @@ scsibus1: <listitem> <para xml:lang="en">Copies of whole file systems or disks which are - sychronized with another system on the network using a + synchronized with another system on the network using a scheduled <package>net/rsync</package>.</para> </listitem> @@ -29900,22 +29831,9 @@ esac</programlisting> <primary>Striping</primary> </indexterm> - <para xml:lang="en">Striping combines several disk drives into a single volume. - Striping can be performed through the use of hardware - <acronym>RAID</acronym> controllers. The - <acronym>GEOM</acronym> disk subsystem provides software support - for disk striping, also known as <acronym>RAID0</acronym>, - without the need for a <acronym>RAID</acronym> disk - controller.</para> + <para>串連會合併數個磁碟成單一個磁碟區 (Volume)。串連可以透過使用硬體 <acronym>RAID</acronym> 控制器來達到。<acronym>GEOM</acronym> 磁碟子系統提供了軟體支援的磁碟串連,也就是所謂的 <acronym>RAID0</acronym>,而不需要 <acronym>RAID</acronym> 磁碟控制器。</para> - <para xml:lang="en">In <acronym>RAID0</acronym>, data is split into blocks that - are written across all the drives in the array. As seen in the - following illustration, instead of having to wait on the system - to write 256k to one disk, <acronym>RAID0</acronym> can - simultaneously write 64k to each of the four disks in the array, - offering superior <acronym>I/O</acronym> performance. This - performance can be enhanced further by using multiple disk - controllers.</para> + <para>在 <acronym>RAID0</acronym> 中,資料會被切割成數個資料區塊 (Block) 寫入到磁碟陣列中的每一個磁碟機。如下圖所示,取代以往等候系統寫入 256k 到一個磁碟的時間, <acronym>RAID0</acronym> 可以同時寫入 64k 到磁碟陣列中四個磁碟的每個磁碟,這可提供優異的 <acronym>I/O</acronym> 效能,若使用多個磁碟控制器可增加更多的效能。</para> <mediaobject xml:lang="en"> <imageobject> @@ -29927,17 +29845,10 @@ esac</programlisting> </textobject> </mediaobject> - <para xml:lang="en">Each disk in a <acronym>RAID0</acronym> stripe must be of - the same size, since <acronym>I/O</acronym> requests are - interleaved to read or write to multiple disks in - parallel.</para> + <para>在 <acronym>RAID0</acronym> 串連中的每個磁碟必須要相同大小,因為 <acronym>I/O</acronym> 的請求是平行交錯讀取或寫入到多個磁碟的。</para> <note> - <para xml:lang="en"><acronym>RAID0</acronym> does <emphasis>not</emphasis> - provide any redundancy. This means that if one disk in the - array fails, all of the data on the disks is lost. If the - data is important, implement a backup strategy that regularly - saves backups to a remote system or device.</para> + <para><acronym>RAID0</acronym> 並<emphasis>不</emphasis>提供任何備援 (Redundancy) 功能。這意謂著若磁碟陣列中的其中一個磁碟故障,所有在該磁碟上的資料便會遺失。若資料很重要,請規畫備份策略,定期儲存備份到遠端系統或裝置。</para> </note> <para xml:lang="en">The process for creating a software, @@ -30044,15 +29955,7 @@ Done.</screen> <primary>RAID1</primary> </indexterm> - <para xml:lang="en"><acronym>RAID1</acronym>, or - <emphasis>mirroring</emphasis>, is the technique of writing - the same data to more than one disk drive. Mirrors are usually - used to guard against data loss due to drive failure. Each - drive in a mirror contains an identical copy of the data. When - an individual drive fails, the mirror continues to work, - providing data from the drives that are still functioning. The - computer keeps running, and the administrator has time to - replace the failed drive without user interruption.</para> + <para><acronym>RAID1</acronym> 或<emphasis>鏡像</emphasis>是一項寫入相同資料到超過一個磁碟機的技術。鏡像通常用來保護資料因磁碟機故障導致的損失,每個在鏡像中的磁碟機會擁有完全相同的資料,當各別磁碟機故障時,鏡像會繼續運作,由還可運作的磁碟機提供資料。電腦會繼續執行,等到管理者有時間更換故障的硬碟,而不會被使用者中斷運作。</para> <para xml:lang="en">Two common situations are illustrated in these examples. The first creates a mirror out of two new drives and uses it as @@ -31514,115 +31417,55 @@ ufsid/486b6fc16926168e N/A ad4s1f</screen> </authorgroup> </info> - <para xml:lang="en">The <emphasis>Z File System</emphasis>, or - <acronym>ZFS</acronym>, is an advanced file system designed to - overcome many of the major problems found in previous - designs.</para> + <para><emphasis>Z 檔案系統</emphasis> 或 <acronym>ZFS</acronym> 是設計來克服許多在以往設計中發現的主要問題的一個先進的檔案系統。</para> - <para xml:lang="en">Originally developed at <trademark>Sun</trademark>, ongoing open source - <acronym>ZFS</acronym> development has moved to the <link xlink:href="http://open-zfs.org">OpenZFS Project</link>.</para> + <para>最初由 <trademark>Sun</trademark> 所開發,後來的開放源始碼 <acronym>ZFS</acronym> 開發已移到 <link xlink:href="http://open-zfs.org">OpenZFS 計劃</link>。</para> - <para xml:lang="en"><acronym>ZFS</acronym> has three major design goals:</para> + <para><acronym>ZFS</acronym> 的設計目標主要有三個:</para> <itemizedlist> <listitem> - <para xml:lang="en">Data integrity: All data includes a - <link linkend="zfs-term-checksum">checksum</link> of the data. - When data is written, the checksum is calculated and written - along with it. When that data is later read back, the - checksum is calculated again. If the checksums do not match, - a data error has been detected. <acronym>ZFS</acronym> will - attempt to automatically correct errors when data redundancy - is available.</para> + <para>資料完整性:所有資料都會有一個資料的校驗碼 (<link linkend="zfs-term-checksum">checksum</link>),資被寫入時會計算校驗碼然後一併寫入,往後讀取資料時又會再計算一次校驗碼,若校驗碼與當初寫入時不相符,便可偵測到資料錯誤,此時若有可用的資料備援 (Data redundancy),<acronym>ZFS</acronym> 會嘗試自動修正錯誤。</para> </listitem> <listitem> - <para xml:lang="en">Pooled storage: physical storage devices are added to a - pool, and storage space is allocated from that shared pool. - Space is available to all file systems, and can be increased - by adding new storage devices to the pool.</para> + <para>儲存池:實體的儲存裝置都會被加入到一個儲存池 (Pool),然後會使用這個共用的儲存池來配置儲存空間,空間可給所有的檔案系統使用,而空間可透過加入新的儲存裝置到儲存池來增加。</para> </listitem> <listitem> - <para xml:lang="en">Performance: multiple caching mechanisms provide increased - performance. <link linkend="zfs-term-arc">ARC</link> is an - advanced memory-based read cache. A second level of - disk-based read cache can be added with - <link linkend="zfs-term-l2arc">L2ARC</link>, and disk-based - synchronous write cache is available with - <link linkend="zfs-term-zil">ZIL</link>.</para> + <para>效能:提供多個快取機制來增加效能。先進、以記憶體為基礎的讀取快取可使用 <link linkend="zfs-term-arc">ARC</link>。第二層以磁碟為基礎的讀取快取可使用 <link linkend="zfs-term-l2arc">L2ARC</link>,以磁碟為基礎的同步寫入快取則可使用 <link linkend="zfs-term-zil">ZIL</link>。</para> </listitem> </itemizedlist> - <para xml:lang="en">A complete list of features and terminology is shown in - <xref linkend="zfs-term"/>.</para> + <para>完整的功能清單與術語在 <xref linkend="zfs-term"/> 中有詳述。</para> <sect1 xml:id="zfs-differences"> <title>什麼使 <acronym>ZFS</acronym> 與眾不同</title> - <para xml:lang="en"><acronym>ZFS</acronym> is significantly different from any - previous file system because it is more than just a file system. - Combining the traditionally separate roles of volume manager and - file system provides <acronym>ZFS</acronym> with unique - advantages. The file system is now aware of the underlying - structure of the disks. Traditional file systems could only be - created on a single disk at a time. If there were two disks - then two separate file systems would have to be created. In a - traditional hardware <acronym>RAID</acronym> configuration, this - problem was avoided by presenting the operating system with a - single logical disk made up of the space provided by a number of - physical disks, on top of which the operating system placed a - file system. Even in the case of software - <acronym>RAID</acronym> solutions like those provided by - <acronym>GEOM</acronym>, the <acronym>UFS</acronym> file system - living on top of the <acronym>RAID</acronym> transform believed - that it was dealing with a single device. - <acronym>ZFS</acronym>'s combination of the volume manager and - the file system solves this and allows the creation of many file - systems all sharing a pool of available storage. One of the - biggest advantages to <acronym>ZFS</acronym>'s awareness of the - physical layout of the disks is that existing file systems can - be grown automatically when additional disks are added to the - pool. This new space is then made available to all of the file - systems. <acronym>ZFS</acronym> also has a number of different - properties that can be applied to each file system, giving many - advantages to creating a number of different file systems and - datasets rather than a single monolithic file system.</para> + <para><acronym>ZFS</acronym> 與任何以往的檔案系統有顯著的不同,它並不只是一個檔案系統,結合了傳統磁碟區管理程式 (Volume Manager) 及檔案系統兩個獨立的角色,造就了 <acronym>ZFS</acronym> 獨特的優點,讓檔案系統現在可以察覺磁碟底層結構的變動。傳統在一個磁碟上只能建立一個檔案系統,若有兩個磁碟則會需要建立兩個分開的檔案系統,這個問題在傳統硬體 <acronym>RAID</acronym> 上可以透過呈現一個單一的邏輯磁碟給作業系統來解決,這個磁碟的空間實際上由數個實體磁碟所組成,而作業系統便可在這個邏輯磁碟上放置檔案系統,即使在像 <acronym>GEOM</acronym> 提供的軟體 <acronym>RAID</acronym> 解決方案也是一樣,把 <acronym>RAID</acronym> transform 當做是一個單一的裝置,把 <acronym>UFS</acronym> 檔案系統放在上面。<acronym>ZFS</acronym> 結合了 Volume Manager 與檔案系統來解決這個問題並讓建立的許多檔案系統可以共用一個儲存池 (Pool)。<acronym>ZFS</acronym> 最大的優點是可以察覺實體磁碟配置的變動,當有額外的磁碟加入到儲存池時可以自動擴增即有的檔案系統,所有的檔案系統便可使用這個新的空間。<acronym>ZFS</acronym> 也有數個不同的屬性可以套用到各別檔案系統上,比起單一檔案系統,對建立數個不同檔案系統與資料集 (Dataset) 時有許多的好處。</para> </sect1> <sect1 xml:id="zfs-quickstart"> <title>快速入門指南</title> - <para xml:lang="en">There is a startup mechanism that allows FreeBSD to mount - <acronym>ZFS</acronym> pools during system initialization. To - enable it, add this line to - <filename>/etc/rc.conf</filename>:</para> + <para>這裡有一個啟動機制,可讓 FreeBSD 在系統初始化時掛載 <acronym>ZFS</acronym> 儲存池。要開啟這個功能,可加入此行到 <filename>/etc/rc.conf</filename>:</para> <programlisting xml:lang="en">zfs_enable="YES"</programlisting> - <para xml:lang="en">Then start the service:</para> + <para>然後啟動服務:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>service zfs start</userinput></screen> - <para xml:lang="en">The examples in this section assume three - <acronym>SCSI</acronym> disks with the device names - <filename><replaceable>da0</replaceable></filename>, - <filename><replaceable>da1</replaceable></filename>, and - <filename><replaceable>da2</replaceable></filename>. Users - of <acronym>SATA</acronym> hardware should instead use - <filename><replaceable>ada</replaceable></filename> device - names.</para> + <para>這本節的例子會假設有三個 <acronym>SCSI</acronym> 磁碟,名稱分別為 <filename><replaceable>da0</replaceable></filename>, <filename><replaceable>da1</replaceable></filename> 及 <filename><replaceable>da2</replaceable></filename>。<acronym>SATA</acronym> 硬體的使用者裝置名稱改為 <filename><replaceable>ada</replaceable></filename> 。</para> <sect2 xml:id="zfs-quickstart-single-disk-pool"> <title>單磁碟儲存池</title> - <para xml:lang="en">To create a simple, non-redundant pool using a single - disk device:</para> + <para>要使用一個磁碟裝置建立一個簡單、無備援的儲存池可:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool create <replaceable>example</replaceable> <replaceable>/dev/da0</replaceable></userinput></screen> - <para xml:lang="en">To view the new pool, review the output of - <command>df</command>:</para> + <para>要檢視這個新的儲存池,可查看 <command>df</command> 的輸出結果:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>df</userinput> Filesystem 1K-blocks Used Avail Capacity Mounted on @@ -31631,10 +31474,7 @@ devfs 1 1 0 100% /dev /dev/ad0s1d 54098308 1032846 48737598 2% /usr example 17547136 0 17547136 0% /example</screen> - <para xml:lang="en">This output shows that the <literal>example</literal> pool - has been created and mounted. It is now accessible as a file - system. Files can be created on it and users can browse - it:</para> + <para>這個輸出結果說明 <literal>example</literal> 儲存池已建立且被掛載,現在已經可以作為檔案系統存取,可以在上面建立檔案且使用者可以瀏覽:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cd /example</userinput> <prompt>#</prompt> <userinput>ls</userinput> @@ -31645,25 +31485,18 @@ drwxr-xr-x 2 root wheel 3 Aug 29 23:15 . drwxr-xr-x 21 root wheel 512 Aug 29 23:12 .. -rw-r--r-- 1 root wheel 0 Aug 29 23:15 testfile</screen> - <para xml:lang="en">However, this pool is not taking advantage of any - <acronym>ZFS</acronym> features. To create a dataset on this - pool with compression enabled:</para> + <para>但是,這個儲存池並未運用到任何 <acronym>ZFS</acronym> 功能,若要在這個儲存池上建立一個有開啟壓縮的資料集:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs create example/compressed</userinput> <prompt>#</prompt> <userinput>zfs set compression=gzip example/compressed</userinput></screen> - <para xml:lang="en">The <literal>example/compressed</literal> dataset is now a - <acronym>ZFS</acronym> compressed file system. Try copying - some large files to - <filename>/example/compressed</filename>.</para> + <para><literal>example/compressed</literal> 資料集現在是一個 <acronym>ZFS</acronym> 壓縮的檔案系統,可以試著複製較大的檔案到 <filename>/example/compressed</filename>。</para> - <para xml:lang="en">Compression can be disabled with:</para> + <para>壓縮也可以使用以下指令關閉:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set compression=off example/compressed</userinput></screen> - <para xml:lang="en">To unmount a file system, use - <command>zfs umount</command> and then verify with - <command>df</command>:</para> + <para>要卸載檔案系統,使用 <command>zfs umount</command> 然後再使用 <command>df</command> 確認:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs umount example/compressed</userinput> <prompt>#</prompt> <userinput>df</userinput> @@ -31673,9 +31506,7 @@ devfs 1 1 0 100% /dev /dev/ad0s1d 54098308 1032864 48737580 2% /usr example 17547008 0 17547008 0% /example</screen> - <para xml:lang="en">To re-mount the file system to make it accessible again, - use <command>zfs mount</command> and verify with - <command>df</command>:</para> + <para>要重新掛載檔案系統以便再次使用,使用 use <command>zfs mount</command> 然後以 <command>df</command> 檢查:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs mount example/compressed</userinput> <prompt>#</prompt> <userinput>df</userinput> @@ -31686,8 +31517,7 @@ devfs 1 1 0 100% /dev example 17547008 0 17547008 0% /example example/compressed 17547008 0 17547008 0% /example/compressed</screen> - <para xml:lang="en">The pool and file system may also be observed by viewing - the output from <command>mount</command>:</para> + <para>儲存池與檔案系統也可以從 <command>mount</command> 的結果查詢到:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>mount</userinput> /dev/ad0s1a on / (ufs, local) @@ -31696,19 +31526,12 @@ devfs on /dev (devfs, local) example on /example (zfs, local) example/compressed on /example/compressed (zfs, local)</screen> - <para xml:lang="en">After creation, <acronym>ZFS</acronym> datasets can be - used like any file systems. However, many other features are - available which can be set on a per-dataset basis. In the - example below, a new file system called - <literal>data</literal> is created. Important files will be - stored here, so it is configured to keep two copies of each - data block:</para> + <para>在建立之後,<acronym>ZFS</acronym> 的資料集可如同其他檔案系統一般使用,且有許多額外功能可在每個資料集上設定。例如,建立一個新的檔案系統 <literal>data</literal>,此處預計存放重要的資料,所以會設定每個資料區 (Data block) 要保留兩份備份:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs create example/data</userinput> <prompt>#</prompt> <userinput>zfs set copies=2 example/data</userinput></screen> - <para xml:lang="en">It is now possible to see the data and space utilization - by issuing <command>df</command>:</para> + <para>現在,可以使用 <command>df</command> 指令來查看資料與空間的使用率:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>df</userinput> Filesystem 1K-blocks Used Avail Capacity Mounted on @@ -31719,16 +31542,9 @@ example 17547008 0 17547008 0% /example example/compressed 17547008 0 17547008 0% /example/compressed example/data 17547008 0 17547008 0% /example/data</screen> - <para xml:lang="en">Notice that each file system on the pool has the same - amount of available space. This is the reason for using - <command>df</command> in these examples, to show that the file - systems use only the amount of space they need and all draw - from the same pool. <acronym>ZFS</acronym> eliminates - concepts such as volumes and partitions, and allows multiple - file systems to occupy the same pool.</para> + <para>注意,從這個可以發現每個在儲存池上的檔案系統都擁有相同的可用空間,這是為什麼要在這些範例使用 <command>df</command> 的原因,為了要顯示檔案系統只會用它們所需要使用到的空間,且均取自同一個儲存池。<acronym>ZFS</acronym> 淘汰了磁碟區 (Volume) 與分割區 (Partition) 的概念,且允許多個檔案系統共用相同的儲存池。</para> - <para xml:lang="en">To destroy the file systems and then destroy the pool as - it is no longer needed:</para> + <para>不需要使用時可摧毀檔案系統後再摧毀儲存池:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs destroy example/compressed</userinput> <prompt>#</prompt> <userinput>zfs destroy example/data</userinput> @@ -31738,94 +31554,57 @@ example/data 17547008 0 17547008 0% /example/data</screen> <sect2 xml:id="zfs-quickstart-raid-z"> <title xml:lang="en">RAID-Z</title> - <para xml:lang="en">Disks fail. One method of avoiding data loss from disk - failure is to implement <acronym>RAID</acronym>. - <acronym>ZFS</acronym> supports this feature in its pool - design. <acronym>RAID-Z</acronym> pools require three or more - disks but provide more usable space than mirrored - pools.</para> + <para>磁碟損壞時,要避免資料因磁碟故障造成遺失便是使用 <acronym>RAID</acronym>。<acronym>ZFS</acronym> 在它的儲存池設計中支援了這項功能。<acronym>RAID-Z</acronym> 儲存池需要使用三個或更多的磁碟,但可以提供比鏡像 (Mirror) 儲存池更多的可用空間。</para> - <para xml:lang="en">This example creates a <acronym>RAID-Z</acronym> pool, - specifying the disks to add to the pool:</para> + <para>這個例子會建立一個 <acronym>RAID-Z</acronym> 儲存池,並指定要加入這個儲存池的磁碟:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool create storage raidz da0 da1 da2</userinput></screen> <note> - <para xml:lang="en"><trademark>Sun</trademark> recommends that the number of devices used in a - <acronym>RAID</acronym>-Z configuration be between three and - nine. For environments requiring a single pool consisting - of 10 disks or more, consider breaking it up into smaller - <acronym>RAID-Z</acronym> groups. If only two disks are - available and redundancy is a requirement, consider using a - <acronym>ZFS</acronym> mirror. Refer to <citerefentry><refentrytitle>zpool</refentrytitle><manvolnum>8</manvolnum></citerefentry> for - more details.</para> + <para><trademark>Sun</trademark> 建議用在 <acronym>RAID</acronym>-Z 設定的裝置數在三到九個之間。若需要由 10 個或更多磁碟組成單一儲存池環境,請考慮是否分成較小的 <acronym>RAID-Z</acronym> 群組。若只有兩個可用的磁碟且需要做備援 (Redundancy),請考慮使用 <acronym>ZFS</acronym> 鏡像 (Mirror)。請參考 <citerefentry><refentrytitle>zpool</refentrytitle><manvolnum>8</manvolnum></citerefentry> 取得更多詳細資訊。</para> </note> - <para xml:lang="en">The previous example created the - <literal>storage</literal> zpool. This example makes a new - file system called <literal>home</literal> in that - pool:</para> + <para>先前的例子已經建立了 <literal>storage</literal> zpool,現在這個例子會在該儲存池中建立一個新的檔案系統,名稱為 <literal>home</literal>:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs create storage/home</userinput></screen> - <para xml:lang="en">Compression and keeping extra copies of directories - and files can be enabled:</para> + <para>可以設定開啟壓縮及保留目錄及檔案額外備份的功能:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set copies=2 storage/home</userinput> <prompt>#</prompt> <userinput>zfs set compression=gzip storage/home</userinput></screen> - <para xml:lang="en">To make this the new home directory for users, copy the - user data to this directory and create the appropriate - symbolic links:</para> + <para>要讓這個空間做為使用者的新家目錄位置,複製使用者資料到這個目錄並建立適合的符號連結 (Symbolic link):</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cp -rp /home/* /storage/home</userinput> <prompt>#</prompt> <userinput>rm -rf /home /usr/home</userinput> <prompt>#</prompt> <userinput>ln -s /storage/home /home</userinput> <prompt>#</prompt> <userinput>ln -s /storage/home /usr/home</userinput></screen> - <para xml:lang="en">Users data is now stored on the freshly-created - <filename>/storage/home</filename>. Test by adding a new user - and logging in as that user.</para> + <para>現在使用者的資料會儲存在新建立的 <filename>/storage/home</filename>,可以加入新使用者並登入該使用者來測試。</para> - <para xml:lang="en">Try creating a file system snapshot which can be rolled - back later:</para> + <para>試著建立檔案系統快照 (Snapshot),稍後可用來還原 (Rollback):</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs snapshot storage/home@08-30-08</userinput></screen> - <para xml:lang="en">Snapshots can only be made of a full file system, not a - single directory or file.</para> + <para>只可以對整個檔案系統做快照,無法針對各別目錄或檔案。</para> - <para xml:lang="en">The <literal>@</literal> character is a delimiter between - the file system name or the volume name. If an important - directory has been accidentally deleted, the file system can - be backed up, then rolled back to an earlier snapshot when the - directory still existed:</para> + <para><literal>@</literal> 是用來區隔檔案系統 (File system) 名稱或磁碟區 (Volume) 名稱的字元,若有重要的目錄意外被刪除,檔案系統可以備份然後還原到先前目錄還存在時的快照 (Snapshot):</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs rollback storage/home@08-30-08</userinput></screen> - <para xml:lang="en">To list all available snapshots, run - <command>ls</command> in the file system's - <filename>.zfs/snapshot</filename> directory. For example, to - see the previously taken snapshot:</para> + <para>要列出所有可用的快照,可在檔案系統的 <filename>.zfs/snapshot</filename> 目錄執行 <command>ls</command>,舉例來說,要查看先前已做的快照:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>ls /storage/home/.zfs/snapshot</userinput></screen> - <para xml:lang="en">It is possible to write a script to perform regular - snapshots on user data. However, over time, snapshots can - consume a great deal of disk space. The previous snapshot can - be removed using the command:</para> + <para>也可以寫一個 Script 來對使用者資料做例行性的快照,但隨著時間快照可能消耗大量的磁碟空間。先前的快照可以使用指令移除:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs destroy storage/home@08-30-08</userinput></screen> - <para xml:lang="en">After testing, <filename>/storage/home</filename> can be - made the real <filename>/home</filename> using this - command:</para> + <para>在測試之後,便可讓 <filename>/storage/home</filename> 成為真正的 <filename>/home</filename> 使用此指令:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set mountpoint=/home storage/home</userinput></screen> - <para xml:lang="en">Run <command>df</command> and <command>mount</command> to - confirm that the system now treats the file system as the real - <filename>/home</filename>:</para> + <para>執行 <command>df</command> 興 <command>mount</command> 來確認系統現在是否以把檔案系統做為真正的 <filename>/home</filename>:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>mount</userinput> /dev/ad0s1a on / (ufs, local) @@ -31841,11 +31620,7 @@ devfs 1 1 0 100% /dev storage 26320512 0 26320512 0% /storage storage/home 26320512 0 26320512 0% /home</screen> - <para xml:lang="en">This completes the <acronym>RAID-Z</acronym> - configuration. Daily status updates about the file systems - created can be generated as part of the nightly - <citerefentry><refentrytitle>periodic</refentrytitle><manvolnum>8</manvolnum></citerefentry> runs. Add this line to - <filename>/etc/periodic.conf</filename>:</para> + <para>這個動作完成 <acronym>RAID-Z</acronym> 最後的設定,有關已建立的檔案系統每日狀態更新可以做為 <citerefentry><refentrytitle>periodic</refentrytitle><manvolnum>8</manvolnum></citerefentry> 的一部份在每晚執行。加入此行到 <filename>/etc/periodic.conf</filename>:</para> <programlisting xml:lang="en">daily_status_zfs_enable="YES"</programlisting> </sect2> @@ -31853,22 +31628,15 @@ storage/home 26320512 0 26320512 0% /home</screen> <sect2 xml:id="zfs-quickstart-recovering-raid-z"> <title>復原 <acronym>RAID-Z</acronym></title> - <para xml:lang="en">Every software <acronym>RAID</acronym> has a method of - monitoring its <literal>state</literal>. The status of - <acronym>RAID-Z</acronym> devices may be viewed with this - command:</para> + <para>每個軟體 <acronym>RAID</acronym> 都有監控其狀態 (<literal>state</literal>) 的方式,<acronym>RAID-Z</acronym> 裝置的狀態可以使用這個指令來查看:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status -x</userinput></screen> - <para xml:lang="en">If all pools are - <link linkend="zfs-term-online">Online</link> and everything - is normal, the message shows:</para> + <para>如果所有儲存池為上線 (<link linkend="zfs-term-online">Online</link>) 且正常,則訊息會顯示:</para> <screen xml:lang="en">all pools are healthy</screen> - <para xml:lang="en">If there is an issue, perhaps a disk is in the - <link linkend="zfs-term-offline">Offline</link> state, the - pool state will look similar to:</para> + <para>如果有發生問題,可能磁碟會呈現離線 (<link linkend="zfs-term-offline">Offline</link>) 的狀態,此時儲存池的狀態會是:</para> <screen xml:lang="en"> pool: storage state: DEGRADED @@ -31889,20 +31657,15 @@ config: errors: No known data errors</screen> - <para xml:lang="en">This indicates that the device was previously taken - offline by the administrator with this command:</para> + <para>這代表著裝置在之前被管理者使用此指令拿下線:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool offline storage da1</userinput></screen> - <para xml:lang="en">Now the system can be powered down to replace - <filename>da1</filename>. When the system is back online, - the failed disk can replaced in the pool:</para> + <para>現在系統可以關機然後更換 <filename>da1</filename>,當系統恢復上線,則可以替換掉儲存池中故障的磁碟:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool replace storage da1</userinput></screen> - <para xml:lang="en">From here, the status may be checked again, this time - without <option>-x</option> so that all pools are - shown:</para> + <para>到這裡,可以再檢查狀態一次,這時不使用 <option>-x</option> 參數來顯示所有的儲存池:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status storage</userinput> pool: storage @@ -31919,37 +31682,23 @@ config: errors: No known data errors</screen> - <para xml:lang="en">In this example, everything is normal.</para> + <para>在這個例子中,所有的磁碟均正常運作。</para> </sect2> <sect2 xml:id="zfs-quickstart-data-verification"> <title>資料檢驗</title> - <para xml:lang="en"><acronym>ZFS</acronym> uses checksums to verify the - integrity of stored data. These are enabled automatically - upon creation of file systems.</para> + <para><acronym>ZFS</acronym> 使用校驗碼 (Checksum) 來檢驗資料的完整性 (Integrity),在建立檔案系統時便會自動開啟。</para> <warning> - <para xml:lang="en">Checksums can be disabled, but it is - <emphasis>not</emphasis> recommended! Checksums take very - little storage space and provide data integrity. Many - <acronym>ZFS</acronym> features will not work properly with - checksums disabled. There is no noticeable performance gain - from disabling these checksums.</para> + <para>校驗碼 (Checksum) 可以關閉,但並<emphasis>不</emphasis>建議!校驗碼只會使用非常少的儲存空間來確保資料的完整性。校驗碼若關閉會使許多 <acronym>ZFS</acronym> 功能無法正常運作,關閉校驗碼功能並不會明顯的改善效能。</para> </warning> - <para xml:lang="en">Checksum verification is known as - <emphasis>scrubbing</emphasis>. Verify the data integrity of - the <literal>storage</literal> pool with this command:</para> + <para>檢驗校驗碼這個動作即所謂的<emphasis>清潔 (Scrub)</emphasis>,可以使用以下指令來檢驗 <literal>storage</literal> 儲存池的資料完整性:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool scrub storage</userinput></screen> - <para xml:lang="en">The duration of a scrub depends on the amount of data - stored. Larger amounts of data will take proportionally - longer to verify. Scrubs are very <acronym>I/O</acronym> - intensive, and only one scrub is allowed to run at a time. - After the scrub completes, the status can be viewed with - <command>status</command>:</para> + <para>清潔所需要的時間依儲存的資料量而定,較大的資料量相對會需要花費較長的時間來檢驗。清潔對 <acronym>I/O</acronym> 的操作非常密集,且一次只能進行一個清潔動作。在清潔完成之後,可以使用 <command>status</command> 來查看狀態:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status storage</userinput> pool: storage @@ -31966,49 +31715,23 @@ config: errors: No known data errors</screen> - <para xml:lang="en">The completion date of the last scrub operation is - displayed to help track when another scrub is required. - Routine scrubs help protect data from silent corruption and - ensure the integrity of the pool.</para> + <para>查詢結果會顯示上次完成清潔的時間來協助追蹤是否要再做清潔。定期清潔可以協助保護資料不會默默損壞且確保儲存池的完整性。</para> - <para xml:lang="en">Refer to <citerefentry><refentrytitle>zfs</refentrytitle><manvolnum>8</manvolnum></citerefentry> and <citerefentry><refentrytitle>zpool</refentrytitle><manvolnum>8</manvolnum></citerefentry> for other - <acronym>ZFS</acronym> options.</para> + <para>請參考 <citerefentry><refentrytitle>zfs</refentrytitle><manvolnum>8</manvolnum></citerefentry> 及 <citerefentry><refentrytitle>zpool</refentrytitle><manvolnum>8</manvolnum></citerefentry> 來取得其他 <acronym>ZFS</acronym> 選項。</para> </sect2> </sect1> <sect1 xml:id="zfs-zpool"> <title><command>zpool</command> 管理</title> - <para xml:lang="en"><acronym>ZFS</acronym> administration is divided between two - main utilities. The <command>zpool</command> utility controls - the operation of the pool and deals with adding, removing, - replacing, and managing disks. The - <link linkend="zfs-zfs"><command>zfs</command></link> utility - deals with creating, destroying, and managing datasets, - both <link linkend="zfs-term-filesystem">file systems</link> and - <link linkend="zfs-term-volume">volumes</link>.</para> + <para><acronym>ZFS</acronym> 管理分成兩個主要的工具。<command>zpool</command> 工具用來控制儲存池的運作並可處理磁碟的新增、移除、更換與管理。<link linkend="zfs-zfs"><command>zfs</command></link> 工具用來建立、摧毀與管理檔案系統 (<link linkend="zfs-term-filesystem">File system</link>) 與磁碟區 (<link linkend="zfs-term-volume">Volume</link>) 的資料集。</para> <sect2 xml:id="zfs-zpool-create"> <title>建立與摧毀儲存池</title> - <para xml:lang="en">Creating a <acronym>ZFS</acronym> storage pool - (<emphasis>zpool</emphasis>) involves making a number of - decisions that are relatively permanent because the structure - of the pool cannot be changed after the pool has been created. - The most important decision is what types of vdevs into which - to group the physical disks. See the list of - <link linkend="zfs-term-vdev">vdev types</link> for details - about the possible options. After the pool has been created, - most vdev types do not allow additional disks to be added to - the vdev. The exceptions are mirrors, which allow additional - disks to be added to the vdev, and stripes, which can be - upgraded to mirrors by attaching an additional disk to the - vdev. Although additional vdevs can be added to expand a - pool, the layout of the pool cannot be changed after pool - creation. Instead, the data must be backed up and the - pool destroyed and recreated.</para> - - <para xml:lang="en">Create a simple mirror pool:</para> + <para>建立 <acronym>ZFS</acronym> 儲存池 (<emphasis>zpool</emphasis>) 要做幾個涉及長遠規劃的決定,因為建立儲存池之後便無法再更改儲存池的結構。最重要的決定是要使用那一種型態的 vdev 來將實體磁碟設為同一群組。請參考 <link linkend="zfs-term-vdev">vdev 型態</link> 的清單來取得有關可用選項的詳細資訊。大部份的 vdev 型態不允許在建立儲存池之後再加入額外的磁碟,鏡像 (Mirror) 是其中一個例外,可以允許加入額外的磁碟到 vdev,另一個則是串連 (Stripe),可以加入額外的磁碟到 vdev 來升級為鏡像。雖然可以加入額外的 vdev 來擴充儲存池,但儲存池的配置在建立之後便無法更改,若要要更改,則必須備份資料,把儲存池摧毀後再重新建立。</para> + + <para>建立一個簡單的鏡像儲存池:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool create <replaceable>mypool</replaceable> mirror <replaceable>/dev/ada1</replaceable> <replaceable>/dev/ada2</replaceable></userinput> <prompt>#</prompt> <userinput>zpool status</userinput> @@ -32025,9 +31748,7 @@ config: errors: No known data errors</screen> - <para xml:lang="en">Multiple vdevs can be created at once. Specify multiple - groups of disks separated by the vdev type keyword, - <literal>mirror</literal> in this example:</para> + <para>可以一次建立數個 vdev,磁碟群組間使用 vdev type 關鍵字來區隔,在這個例子使用 <literal>mirror</literal>:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool create <replaceable>mypool</replaceable> mirror <replaceable>/dev/ada1</replaceable> <replaceable>/dev/ada2</replaceable> mirror <replaceable>/dev/ada3</replaceable> <replaceable>/dev/ada4</replaceable></userinput> pool: mypool @@ -32046,24 +31767,9 @@ config: errors: No known data errors</screen> - <para xml:lang="en">Pools can also be constructed using partitions rather than - whole disks. Putting <acronym>ZFS</acronym> in a separate - partition allows the same disk to have other partitions for - other purposes. In particular, partitions with bootcode and - file systems needed for booting can be added. This allows - booting from disks that are also members of a pool. There is - no performance penalty on FreeBSD when using a partition rather - than a whole disk. Using partitions also allows the - administrator to <emphasis>under-provision</emphasis> the - disks, using less than the full capacity. If a future - replacement disk of the same nominal size as the original - actually has a slightly smaller capacity, the smaller - partition will still fit, and the replacement disk can still - be used.</para> - - <para xml:lang="en">Create a - <link linkend="zfs-term-vdev-raidz">RAID-Z2</link> pool using - partitions:</para> + <para>儲存池也可使用分割區 (Partition) 來建立,不使用整個磁碟。把 <acronym>ZFS</acronym> 放到不同的分割區可讓同一個磁碟有其他的分割區可做其他用途,尤其是有 Bootcode 與檔案系統要用來開機的分割區,這讓磁碟可以用來開機也同樣可以做為儲存池的一部份。在 FreeBSD 用分割區來替代整個磁碟並不會對效能有影響。使用分割區也讓管理者可以對磁碟容量做 <emphasis>少算的預備</emphasis>,使用比完整容量少的容量,未來若要替換的磁碟號稱與原磁碟相同,但實際上卻比較小時,也可符合這個較小的分割區容量,以使用替換的磁碟。</para> + + <para>使用分割區建立一個 <link linkend="zfs-term-vdev-raidz">RAID-Z2</link> 儲存池:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool create <replaceable>mypool</replaceable> raidz2 <replaceable>/dev/ada0p3</replaceable> <replaceable>/dev/ada1p3</replaceable> <replaceable>/dev/ada2p3</replaceable> <replaceable>/dev/ada3p3</replaceable> <replaceable>/dev/ada4p3</replaceable> <replaceable>/dev/ada5p3</replaceable></userinput> <prompt>#</prompt> <userinput>zpool status</userinput> @@ -32084,47 +31790,17 @@ config: errors: No known data errors</screen> - <para xml:lang="en">A pool that is no longer needed can be destroyed so that - the disks can be reused. Destroying a pool involves first - unmounting all of the datasets in that pool. If the datasets - are in use, the unmount operation will fail and the pool will - not be destroyed. The destruction of the pool can be forced - with <option>-f</option>, but this can cause undefined - behavior in applications which had open files on those - datasets.</para> + <para>不再使用的儲存池可以摧毀,來讓磁碟可以再次使用。摧毀一個儲存池要先卸載所有該儲存池的資料集。若資料集在使用中,卸載的操作會失敗且不會被摧毀儲存池。儲存池的摧毀可以使用 <option>-f</option> 來強制執行,但這可能造成那些有開啟這些資料集中的檔案的應用程式無法辨識的行為。</para> </sect2> <sect2 xml:id="zfs-zpool-attach"> <title>加入與移除裝置</title> - <para xml:lang="en">There are two cases for adding disks to a zpool: attaching - a disk to an existing vdev with - <command>zpool attach</command>, or adding vdevs to the pool - with <command>zpool add</command>. Only some - <link linkend="zfs-term-vdev">vdev types</link> allow disks to - be added to the vdev after creation.</para> - - <para xml:lang="en">A pool created with a single disk lacks redundancy. - Corruption can be detected but - not repaired, because there is no other copy of the data. - - The <link linkend="zfs-term-copies">copies</link> property may - be able to recover from a small failure such as a bad sector, - but does not provide the same level of protection as mirroring - or <acronym>RAID-Z</acronym>. Starting with a pool consisting - of a single disk vdev, <command>zpool attach</command> can be - used to add an additional disk to the vdev, creating a mirror. - <command>zpool attach</command> can also be used to add - additional disks to a mirror group, increasing redundancy and - read performance. If the disks being used for the pool are - partitioned, replicate the layout of the first disk on to the - second, <command>gpart backup</command> and - <command>gpart restore</command> can be used to make this - process easier.</para> - - <para xml:lang="en">Upgrade the single disk (stripe) vdev - <replaceable>ada0p3</replaceable> to a mirror by attaching - <replaceable>ada1p3</replaceable>:</para> + <para>加入磁碟到儲存池 (zpool) 會有兩種情形:使用 <command>zpool attach</command> 加入一個磁碟到既有的 vdev,或使用 <command>zpool add</command> 加入 vdev 到儲存池。只有部份 <link linkend="zfs-term-vdev">vdev 型態</link> 允許在 vdev 建立之後加入磁碟。</para> + + <para>由單一磁碟所建立的儲存池缺乏備援 (Redundancy) 功能,可以偵測到資料的損壞但無法修復,因為資料沒有其他備份可用。備份數 (<link linkend="zfs-term-copies">Copies</link>) 屬性可以讓您從較小的故障中復原,如磁碟壞軌 (Bad sector),但無法提供與鏡像或 <acronym>RAID-Z</acronym> 同樣層級的保護。由單一磁碟所建立的儲存池可以使用 <command>zpool attach</command> 來加入額外的磁碟到 vdev,來建立鏡像。<command>zpool attach</command> 也可用來加入額外的磁碟到鏡像群組,來增加備援與讀取效率。若使用的磁碟已有分割區,可以複製該磁碟的分割區配置到另一個,使用 <command>gpart backup</command> 與 <command>gpart restore</command> 可讓這件事變的很簡單。</para> + + <para>加入 <replaceable>ada1p3</replaceable> 來升級單一磁碟串連 (stripe) vdev <replaceable>ada0p3</replaceable> 採用鏡像型態 (mirror):</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status</userinput> pool: mypool @@ -32181,34 +31857,13 @@ config: errors: No known data errors</screen> - <para xml:lang="en">When adding disks to the existing vdev is not an option, - as for <acronym>RAID-Z</acronym>, an alternative method is to - add another vdev to the pool. Additional vdevs provide higher - performance, distributing writes across the vdevs. Each vdev - is responsible for providing its own redundancy. It is - possible, but discouraged, to mix vdev types, like - <literal>mirror</literal> and <literal>RAID-Z</literal>. - Adding a non-redundant vdev to a pool containing mirror or - <acronym>RAID-Z</acronym> vdevs risks the data on the entire - pool. Writes are distributed, so the failure of the - non-redundant disk will result in the loss of a fraction of - every block that has been written to the pool.</para> - - <para xml:lang="en">Data is striped across each of the vdevs. For example, - with two mirror vdevs, this is effectively a - <acronym>RAID</acronym> 10 that stripes writes across two sets - of mirrors. Space is allocated so that each vdev reaches 100% - full at the same time. There is a performance penalty if the - vdevs have different amounts of free space, as a - disproportionate amount of the data is written to the less - full vdev.</para> - - <para xml:lang="en">When attaching additional devices to a boot pool, remember - to update the bootcode.</para> - - <para xml:lang="en">Attach a second mirror group (<filename>ada2p3</filename> - and <filename>ada3p3</filename>) to the existing - mirror:</para> + <para>若不想選擇加入磁碟到既有的 vdev ,對 <acronym>RAID-Z</acronym> 來說,可選擇另一種方式,便是加入另一個 vdev 到儲存池。額外的 vdev 可以提供更高的效能,分散寫入資料到 vdev 之間,每個 vdev 會負責自己的備援。也可以混合使用不同的 vdev 型態,但並不建議,例如混合使用 <literal>mirror</literal> 與 <literal>RAID-Z</literal>,加入一個無備援的 vdev 到一個含有 mirror 或 <acronym>RAID-Z</acronym> vdev 的儲存池會讓資料損壞的風險擴大整個儲存池,由於會分散寫入資料,若在無備援的磁碟上發生故障的結果便是遺失大半寫到儲存池的資料區塊。</para> + + <para>在每個 vdev 間的資料是串連的,例如,有兩個 mirror vdev,便跟 <acronym>RAID</acronym> 10 一樣在兩個 mirror 間分散寫入資料,且會做空間的分配,因此 vdev 會在同時達到全滿 100% 的用量。若 vdev 間的可用空間量不同則會影響到效能,因為資料量會不成比例的寫入到使用量較少的 vdev。</para> + + <para>當連接額外的裝置到一個可以開機的儲存池,要記得更新 Bootcode。</para> + + <para>連接第二個 mirror 群組 (<filename>ada2p3</filename> 及 <filename>ada3p3</filename>) 到既有的 mirror:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status</userinput> pool: mypool @@ -32245,13 +31900,9 @@ config: errors: No known data errors</screen> - <para xml:lang="en">Currently, vdevs cannot be removed from a pool, and disks - can only be removed from a mirror if there is enough remaining - redundancy. If only one disk in a mirror group remains, it - ceases to be a mirror and reverts to being a stripe, risking - the entire pool if that remaining disk fails.</para> + <para>現在已無法從儲存池上移除 vdev,且磁碟只能夠在有足夠備援空間的情況下從 mirror 移除,若在 mirror 群組中只剩下一個磁碟,便會取消 mirror 然後還原為 stripe,若剩下的那個磁碟故障,便會影響到整個儲存池。</para> - <para xml:lang="en">Remove a disk from a three-way mirror group:</para> + <para>從一個三方 mirror 群組移除一個磁碟:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status</userinput> pool: mypool @@ -32286,13 +31937,7 @@ errors: No known data errors</screen> <sect2 xml:id="zfs-zpool-status"> <title>檢查儲存池狀態</title> - <para xml:lang="en">Pool status is important. If a drive goes offline or a - read, write, or checksum error is detected, the corresponding - error count increases. The <command>status</command> output - shows the configuration and status of each device in the pool - and the status of the entire pool. Actions that need to be - taken and details about the last <link linkend="zfs-zpool-scrub"><command>scrub</command></link> - are also shown.</para> + <para>儲存池的狀態很重要,若有磁碟機離線或偵測到讀取、寫入或校驗碼 (Checksum) 錯誤,對應的錯誤計數便會增加。<command>status</command> 會顯示儲存池中每一個磁碟機的設定與狀態及整個儲存池的狀態。需要處置的方式與有關最近清潔 (<link linkend="zfs-zpool-scrub"><command>Scrub</command></link>) 的詳細資訊也會一併顯示。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status</userinput> pool: mypool @@ -32316,32 +31961,15 @@ errors: No known data errors</screen> <sect2 xml:id="zfs-zpool-clear"> <title>清除錯誤</title> - <para xml:lang="en">When an error is detected, the read, write, or checksum - counts are incremented. The error message can be cleared and - the counts reset with <command>zpool clear - <replaceable>mypool</replaceable></command>. Clearing the - error state can be important for automated scripts that alert - the administrator when the pool encounters an error. Further - errors may not be reported if the old errors are not - cleared.</para> + <para>當偵測到錯誤發生,讀取、寫入或校驗碼 (Checksum) 的計數便會增加。使用 <command>zpool clear <replaceable>mypool</replaceable></command> 可以清除錯誤訊息及重置計數。清空錯誤狀態對當儲存池發生錯誤要使用自動化 Script 通知的管理者來說會很重要,因在舊的錯誤尚未清除前,可能便不會回報後續的錯誤。</para> </sect2> <sect2 xml:id="zfs-zpool-replace"> - <title>替換運作中的裝置</title> - - <para xml:lang="en">There are a number of situations where it may be - desirable to replace one disk with a different disk. When - replacing a working disk, the process keeps the old disk - online during the replacement. The pool never enters a - <link linkend="zfs-term-degraded">degraded</link> state, - reducing the risk of data loss. - <command>zpool replace</command> copies all of the data from - the old disk to the new one. After the operation completes, - the old disk is disconnected from the vdev. If the new disk - is larger than the old disk, it may be possible to grow the - zpool, using the new space. See <link linkend="zfs-zpool-online">Growing a Pool</link>.</para> - - <para xml:lang="en">Replace a functioning device in the pool:</para> + <title>更換運作中的裝置</title> + + <para>可能有一些情況會需要更換磁碟為另一個磁碟,當要更換運作中的磁碟,此程序會維持舊有的磁碟在更換的過程為上線的狀態,儲存池不會進入降級 (<link linkend="zfs-term-degraded">Degraded</link>) 的狀態,來減少資料遺失的風險。<command>zpool replace</command> 會複製所有舊磁碟的資料到新磁碟,操作完成之後舊磁碟便會與 vdev 中斷連線。若新磁碟容量較舊磁碟大,也可以會增加儲存池來使用新的空間,請參考 <link linkend="zfs-zpool-online">擴增儲存池</link>。</para> + + <para>更換儲存池中正在運作的狀置:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status</userinput> pool: mypool @@ -32405,36 +32033,13 @@ errors: No known data errors</screen> <sect2 xml:id="zfs-zpool-resilver"> <title>處理故障裝置</title> - <para xml:lang="en">When a disk in a pool fails, the vdev to which the disk - belongs enters the - <link linkend="zfs-term-degraded">degraded</link> state. All - of the data is still available, but performance may be reduced - because missing data must be calculated from the available - redundancy. To restore the vdev to a fully functional state, - the failed physical device must be replaced. - <acronym>ZFS</acronym> is then instructed to begin the - <link linkend="zfs-term-resilver">resilver</link> operation. - Data that was on the failed device is recalculated from - available redundancy and written to the replacement device. - After completion, the vdev returns to - <link linkend="zfs-term-online">online</link> status.</para> - - <para xml:lang="en">If the vdev does not have any redundancy, or if multiple - devices have failed and there is not enough redundancy to - compensate, the pool enters the - <link linkend="zfs-term-faulted">faulted</link> state. If a - sufficient number of devices cannot be reconnected to the - pool, the pool becomes inoperative and data must be restored - from backups.</para> + <para>當儲存池中的磁碟故障,該故障硬碟所屬的 vdev 便會進入降級 (<link linkend="zfs-term-degraded">Degraded</link>) 狀態,所有的資料仍可使用,但效能可能會降低,因為遺失的資料必須從可用的備援資料計算才能取得。要將 vdev 恢復完整運作的狀態必須更換故障的實體裝置。然後 <acronym>ZFS</acronym> 便會開始修復 (<link linkend="zfs-term-resilver">Resilver</link>,古代鏡子的修復稱 Resilver) 作業,會從可用的備援資料計算出故障磁碟中的資料並寫入到替換的裝置上。完成後 vdev 便會重新返回上線 (<link linkend="zfs-term-online">Online</link>) 的狀態。</para> + + <para>若 vdev 沒有任何備援資料或有多個裝置故障,沒有足夠的備援資料可以補償,儲存池便會進入故障 (<link linkend="zfs-term-faulted">Faulted</link>) 的狀態。</para> - <para xml:lang="en">When replacing a failed disk, the name of the failed disk - is replaced with the <acronym>GUID</acronym> of the device. - A new device name parameter for - <command>zpool replace</command> is not required if the - replacement device has the same device name.</para> + <para>更換故障的磁碟時,故障磁碟的名稱會更換為裝置的 <acronym>GUID</acronym>,若替換裝置要使用相同的裝置名稱,則在 <command>zpool replace</command> 不須加上新裝置名稱參數。</para> - <para xml:lang="en">Replace a failed disk using - <command>zpool replace</command>:</para> + <para>使用 <command>zpool replace</command> 更換故障的磁碟:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status</userinput> pool: mypool @@ -32492,15 +32097,7 @@ errors: No known data errors</screen> <sect2 xml:id="zfs-zpool-scrub"> <title>清潔儲存池</title> - <para xml:lang="en">It is recommended that pools be - <link linkend="zfs-term-scrub">scrubbed</link> regularly, - ideally at least once every month. The - <command>scrub</command> operation is very disk-intensive and - will reduce performance while running. Avoid high-demand - periods when scheduling <command>scrub</command> or use <link linkend="zfs-advanced-tuning-scrub_delay"><varname>vfs.zfs.scrub_delay</varname></link> - to adjust the relative priority of the - <command>scrub</command> to prevent it interfering with other - workloads.</para> + <para>建議儲存池要定期清潔 (<link linkend="zfs-term-scrub">Scrub</link>),最好是每一個月清潔一次。 <command>scrub</command> 作業對磁碟操作非常的密集,在執行時會降低磁碟的效能。在排程 <command>scrub</command> 時避免在使用高峰的時期,或使用 <link linkend="zfs-advanced-tuning-scrub_delay"><varname>vfs.zfs.scrub_delay</varname></link> 來調整 <command>scrub</command> 的相對優先權來避免影響其他的工作。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool scrub <replaceable>mypool</replaceable></userinput> <prompt>#</prompt> <userinput>zpool status</userinput> @@ -32523,37 +32120,15 @@ config: errors: No known data errors</screen> - <para xml:lang="en">In the event that a scrub operation needs to be cancelled, - issue <command>zpool scrub -s - <replaceable>mypool</replaceable></command>.</para> + <para>若發生需要取消清潔作業的事,可以下 <command>zpool scrub -s <replaceable>mypool</replaceable></command>。</para> </sect2> <sect2 xml:id="zfs-zpool-selfheal"> <title>自我修復</title> - <para xml:lang="en">The checksums stored with data blocks enable the file - system to <emphasis>self-heal</emphasis>. This feature will - automatically repair data whose checksum does not match the - one recorded on another device that is part of the storage - pool. For example, a mirror with two disks where one drive is - starting to malfunction and cannot properly store the data any - more. This is even worse when the data has not been accessed - for a long time, as with long term archive storage. - Traditional file systems need to run algorithms that check and - repair the data like <citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry>. These commands take time, - and in severe cases, an administrator has to manually decide - which repair operation must be performed. When - <acronym>ZFS</acronym> detects a data block with a checksum - that does not match, it tries to read the data from the mirror - disk. If that disk can provide the correct data, it will not - only give that data to the application requesting it, but also - correct the wrong data on the disk that had the bad checksum. - This happens without any interaction from a system - administrator during normal pool operation.</para> - - <para xml:lang="en">The next example demonstrates this self-healing behavior. - A mirrored pool of disks <filename>/dev/ada0</filename> and - <filename>/dev/ada1</filename> is created.</para> + <para>校驗碼 (Checksum) 會隨資料區塊一併儲存,這使得檔案系統可以做到<emphasis>自我修復</emphasis>。這個功能可以在校驗碼與儲存池中的另一個裝置不同時自動修復資料。舉例來說,有兩個磁碟做鏡像 (Mirror),其中一個磁碟機開始失常並無法正常儲存資料,甚至是資料放在長期封存的儲存裝置上,已經很久沒有被存取。傳統的檔案系統需要執行演算法來檢查並修復資料如 <citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry>,這些指令耗費時間,且在嚴重時需要管理者手動決定要做那一種修復操作。當 <acronym>ZFS</acronym> 偵測到資料區塊的校驗碼不對時,它除了把資料交給需要的應用程式外,也會修正在磁碟上錯誤的資料。這件事不需要與系統管理者作任何互動便會在一般的儲存池操作時完成。</para> + + <para>接下來的例子會示範自我修復會如何運作。建立一個使用磁碟 <filename>/dev/ada0</filename> 及 <filename>/dev/ada1</filename> 做鏡像的儲存池。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool create <replaceable>healer</replaceable> mirror <replaceable>/dev/ada0</replaceable> <replaceable>/dev/ada1</replaceable></userinput> <prompt>#</prompt> <userinput>zpool status <replaceable>healer</replaceable></userinput> @@ -32573,9 +32148,7 @@ errors: No known data errors NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT healer 960M 92.5K 960M 0% 1.00x ONLINE -</screen> - <para xml:lang="en">Some important data that to be protected from data errors - using the self-healing feature is copied to the pool. A - checksum of the pool is created for later comparison.</para> + <para>將部份需要使用自我修復功能來保護的重要資料複製到該儲存池,建立一個儲存池的校驗碼供稍後做比較時使用。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cp /some/important/data /healer</userinput> <prompt>#</prompt> <userinput>zfs list</userinput> @@ -32585,22 +32158,10 @@ healer 960M 67.7M 892M 7% 1.00x ONLINE - <prompt>#</prompt> <userinput>cat checksum.txt</userinput> SHA1 (/healer) = 2753eff56d77d9a536ece6694bf0a82740344d1f</screen> - <para xml:lang="en">Data corruption is simulated by writing random data to the - beginning of one of the disks in the mirror. To prevent - <acronym>ZFS</acronym> from healing the data as soon as it is - detected, the pool is exported before the corruption and - imported again afterwards.</para> + <para>寫入隨機的資料到鏡像的第一個磁碟來模擬資料損毀的情況。要避免 <acronym>ZFS</acronym> 偵測到錯誤時馬上做修復,接著要將儲存池匯出,待模擬資料損毀之後再匯入。</para> <warning> - <para xml:lang="en">This is a dangerous operation that can destroy vital - data. It is shown here for demonstrational purposes only - and should not be attempted during normal operation of a - storage pool. Nor should this intentional corruption - example be run on any disk with a different file system on - it. Do not use any other disk device names other than the - ones that are part of the pool. Make certain that proper - backups of the pool are created before running the - command!</para> + <para>這是一個危險的操作,會破壞重要的資料。在這裡使用僅為了示範用,不應在儲存池正常運作時嘗試使用,也不應將這個故意損壞資料的例子用在任何其他的檔案系統上,不要使用任何不屬於該儲存池的其他磁碟裝置名稱。請確定在執行指令前已對儲存池做正確的備份。</para> </warning> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool export <replaceable>healer</replaceable></userinput> @@ -32610,13 +32171,7 @@ SHA1 (/healer) = 2753eff56d77d9a536ece6694bf0a82740344d1f</screen> 209715200 bytes transferred in 62.992162 secs (3329227 bytes/sec) <prompt>#</prompt> <userinput>zpool import healer</userinput></screen> - <para xml:lang="en">The pool status shows that one device has experienced an - error. Note that applications reading data from the pool did - not receive any incorrect data. <acronym>ZFS</acronym> - provided data from the <filename>ada0</filename> device with - the correct checksums. The device with the wrong checksum can - be found easily as the <literal>CKSUM</literal> column - contains a nonzero value.</para> + <para>儲存池的狀態顯示有一個裝置發生了錯誤。注意,應用程式從儲存池讀取的資料中並沒有任何的錯誤資料,<acronym>ZFS</acronym> 會自 <filename>ada0</filename> 裝置提供有正確校驗碼的資料。結果裡面 <literal>CKSUM</literal> 欄位含有非零值便是有錯誤校驗碼的裝置。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status <replaceable>healer</replaceable></userinput> pool: healer @@ -32637,30 +32192,14 @@ SHA1 (/healer) = 2753eff56d77d9a536ece6694bf0a82740344d1f</screen> errors: No known data errors</screen> - <para xml:lang="en">The error was detected and handled by using the redundancy - present in the unaffected <filename>ada0</filename> mirror - disk. A checksum comparison with the original one will reveal - whether the pool is consistent again.</para> + <para>錯誤已經被偵測到並且由未被影響的 <filename>ada0</filename> 鏡像磁碟上的備援提供資料。可與原來的校驗碼做比較來看儲存池是否已修復為一致。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>sha1 /healer >> checksum.txt</userinput> <prompt>#</prompt> <userinput>cat checksum.txt</userinput> SHA1 (/healer) = 2753eff56d77d9a536ece6694bf0a82740344d1f SHA1 (/healer) = 2753eff56d77d9a536ece6694bf0a82740344d1f</screen> - <para xml:lang="en">The two checksums that were generated before and after the - intentional tampering with the pool data still match. This - shows how <acronym>ZFS</acronym> is capable of detecting and - correcting any errors automatically when the checksums differ. - Note that this is only possible when there is enough - redundancy present in the pool. A pool consisting of a single - device has no self-healing capabilities. That is also the - reason why checksums are so important in - <acronym>ZFS</acronym> and should not be disabled for any - reason. No <citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry> or similar file system consistency - check program is required to detect and correct this and the - pool was still available during the time there was a problem. - A scrub operation is now required to overwrite the corrupted - data on <filename>ada1</filename>.</para> + <para>儲存池在故意竄改資料前與後的兩個校驗碼仍相符顯示了 <acronym>ZFS</acronym> 在校驗碼不同時偵測與自動修正錯誤的能力。注意,這只在當儲存池中有足夠的備援時才可做到,由單一裝置組成的儲存池並沒有自我修復的能力。這也是為什麼在 <acronym>ZFS</acronym> 中校驗碼如此重要,任何原因都不該關閉。不需要 <citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry> 或類似的檔案系統一致性檢查程式便能夠偵測與修正問題,且儲存儲存池在發生問題時仍可正常運作。接著需要做清潔作業來覆蓋在 <filename>ada1</filename> 上的錯誤資料。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool scrub <replaceable>healer</replaceable></userinput> <prompt>#</prompt> <userinput>zpool status <replaceable>healer</replaceable></userinput> @@ -32684,12 +32223,7 @@ config: errors: No known data errors</screen> - <para xml:lang="en">The scrub operation reads data from - <filename>ada0</filename> and rewrites any data with an - incorrect checksum on <filename>ada1</filename>. This is - indicated by the <literal>(repairing)</literal> output from - <command>zpool status</command>. After the operation is - complete, the pool status changes to:</para> + <para>清潔作業會從 <filename>ada0</filename> 讀取資料並重新寫入任何在 <filename>ada1</filename> 上有錯誤校驗碼的資料。這個操作可以由 <command>zpool status</command> 的輸出中呈現修復中 <literal>(repairing)</literal> 的項目來辨識。這個作業完成後,儲存池的狀態會更改為:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status <replaceable>healer</replaceable></userinput> pool: healer @@ -32710,11 +32244,7 @@ config: errors: No known data errors</screen> - <para xml:lang="en">After the scrub operation completes and all the data - has been synchronized from <filename>ada0</filename> to - <filename>ada1</filename>, the error messages can be - <link linkend="zfs-zpool-clear">cleared</link> from the pool - status by running <command>zpool clear</command>.</para> + <para>清潔操作完成後,便同步完 <filename>ada0</filename> 到 <filename>ada1</filename> 間的所有資料。執行 <command>zpool clear</command> 可以清除 (<link linkend="zfs-zpool-clear">Clear</link>) 儲存池狀態的錯誤訊息。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool clear <replaceable>healer</replaceable></userinput> <prompt>#</prompt> <userinput>zpool status <replaceable>healer</replaceable></userinput> @@ -32731,68 +32261,29 @@ config: errors: No known data errors</screen> - <para xml:lang="en">The pool is now back to a fully working state and all the - errors have been cleared.</para> + <para>儲存池現在恢復完整運作的狀態且清除所有的錯誤了。</para> </sect2> <sect2 xml:id="zfs-zpool-online"> <title>擴增儲存池</title> - <para xml:lang="en">The usable size of a redundant pool is limited by the - capacity of the smallest device in each vdev. The smallest - device can be replaced with a larger device. After completing - a <link linkend="zfs-zpool-replace">replace</link> or - <link linkend="zfs-term-resilver">resilver</link> operation, - the pool can grow to use the capacity of the new device. For - example, consider a mirror of a 1 TB drive and a - 2 TB drive. The usable space is 1 TB. When the - 1 TB drive is replaced with another 2 TB drive, the - resilvering process copies the existing data onto the new - drive. Because - both of the devices now have 2 TB capacity, the mirror's - available space can be grown to 2 TB.</para> - - <para xml:lang="en">Expansion is triggered by using - <command>zpool online -e</command> on each device. After - expansion of all devices, the additional space becomes - available to the pool.</para> + <para>可用的備援儲存池大小會受到每個 vdev 中容量最小的裝置限制。最小的裝置可以替換成較大的裝置,在更換 (<link linkend="zfs-zpool-replace">Replace</link>) 或修復 (<link linkend="zfs-term-resilver">Resilver</link>) 作業後,儲存池可以成長到該新裝置的可用容量。例如,要做一個 1 TB 磁碟機與一個 2 TB 磁碟機的鏡像,可用的空間會是 1 TB,當 1 TB 磁碟機備更換成另一個 2 TB 的磁碟機時,修復程序會複製既有的資料到新的磁碟機,由於現在兩個裝置都有 2 TB 的容量,所以鏡像的可用空間便會成長到 2 TB。</para> + + <para>可以在每個裝置用 <command>zpool online -e</command> 來觸發擴充的動作,在擴充完所有裝置後,儲存池便可使用額外的空間。</para> </sect2> <sect2 xml:id="zfs-zpool-import"> <title>匯入與匯出儲存池</title> - <para xml:lang="en">Pools are <emphasis>exported</emphasis> before moving them - to another system. All datasets are unmounted, and each - device is marked as exported but still locked so it cannot be - used by other disk subsystems. This allows pools to be - <emphasis>imported</emphasis> on other machines, other - operating systems that support <acronym>ZFS</acronym>, and - even different hardware architectures (with some caveats, see - <citerefentry><refentrytitle>zpool</refentrytitle><manvolnum>8</manvolnum></citerefentry>). When a dataset has open files, - <command> zpool export -f</command> can be used to force the - export of a pool. Use this with caution. The datasets are - forcibly unmounted, potentially resulting in unexpected - behavior by the applications which had open files on those - datasets.</para> - - <para xml:lang="en">Export a pool that is not in use:</para> + <para>儲存池在移動到其他系統之前需要做匯出 (<emphasis>Export</emphasis>),會卸載所有的資料集,然後標記每個裝置為已匯出,為了避免被其他磁碟子系統存取,因此仍會鎖定這些裝置。這個動作讓儲存池可以在支援 <acronym>ZFS</acronym> 的其他機器、其他作業系統做匯入 (<emphasis>Import</emphasis>),甚至是不同的硬體架構 (有一些注意事項,請參考 <citerefentry><refentrytitle>zpool</refentrytitle><manvolnum>8</manvolnum></citerefentry>)。當資料集有被開啟的檔案,可使用 <command> zpool export -f</command> 來強制匯出儲存池,使用這個指令需要小心,資料集是被強制卸載的,因此有可能造成在該資料集開啟檔案的應用程式發生無法預期的結果。</para> + + <para>匯出未使用的儲存池:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool export mypool</userinput></screen> - <para xml:lang="en">Importing a pool automatically mounts the datasets. This - may not be the desired behavior, and can be prevented with - <command>zpool import -N</command>. - <command>zpool import -o</command> sets temporary properties - for this import only. - <command>zpool import altroot=</command> allows importing a - pool with a base mount point instead of the root of the file - system. If the pool was last used on a different system and - was not properly exported, an import might have to be forced - with <command>zpool import -f</command>. - <command>zpool import -a</command> imports all pools that do - not appear to be in use by another system.</para> - - <para xml:lang="en">List all available pools for import:</para> + <para>匯入儲存池會自動掛載資料集,若不想自動掛載,可以使用 <command>zpool import -N</command>。<command>zpool import -o</command> 可以設定在匯入時暫時使用的屬性。<command>zpool import altroot=</command> 允許匯入時指定基礎掛載點 (Base mount point) 來替換檔案系統根目錄。若儲存池先前用在不同的系統且不正常匯出,可能會需要使用 <command>zpool import -f</command> 來強制匯入。<command>zpool import -a</command> 會匯入所有沒有被其他系統使用的儲存池。</para> + + <para>列出所有可以匯入的儲存池:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool import</userinput> pool: mypool @@ -32804,7 +32295,7 @@ errors: No known data errors</screen> mypool ONLINE ada2p3 ONLINE</screen> - <para xml:lang="en">Import the pool with an alternative root directory:</para> + <para>使用替代的根目錄匯入儲存池:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool import -o altroot=<replaceable>/mnt</replaceable> <replaceable>mypool</replaceable></userinput> <prompt>#</prompt> <userinput>zfs list</userinput> @@ -32816,17 +32307,9 @@ mypool 110K 47.0G 31K /mnt/mypool</screen> <sect2 xml:id="zfs-zpool-upgrade"> <title>升級儲存儲存池</title> - <para xml:lang="en">After upgrading FreeBSD, or if a pool has been imported from - a system using an older version of <acronym>ZFS</acronym>, the - pool can be manually upgraded to the latest version of - <acronym>ZFS</acronym> to support newer features. Consider - whether the pool may ever need to be imported on an older - system before upgrading. Upgrading is a one-way process. - Older pools can be upgraded, but pools with newer features - cannot be downgraded.</para> + <para>在升級 FreeBSD 之後或儲存池是由其他使用舊版 <acronym>ZFS</acronym> 所匯入,儲存池可以手動升級到最新版本的 <acronym>ZFS</acronym> 來支援新的功能。在升級前請評估儲存池是否還要在舊的系統做匯入,由於升級是一個單向的程序,舊的儲存池可以升級,但有新功能的儲存池無法降級。</para> - <para xml:lang="en">Upgrade a v28 pool to support - <literal>Feature Flags</literal>:</para> + <para>升級一個 v28 的儲存以支援功能旗標 (<literal>Feature Flags</literal>):</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status</userinput> pool: mypool @@ -32870,13 +32353,9 @@ Enabled the following features on 'mypool': lz4_compress multi_vdev_crash_dump</screen> - <para xml:lang="en">The newer features of <acronym>ZFS</acronym> will not be - available until <command>zpool upgrade</command> has - completed. <command>zpool upgrade -v</command> can be used to - see what new features will be provided by upgrading, as well - as which features are already supported.</para> + <para><acronym>ZFS</acronym> 的新功能在 <command>zpool upgrade</command> 尚未完成之前無法使用。可以用 <command>zpool upgrade -v</command> 來查看升級後有那些新功能,也同時會列出已經支援那些功能。</para> - <para xml:lang="en">Upgrade a pool to support additional feature flags:</para> + <para>升級儲存池支援額外的功能旗標 (Feature flags):</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool status</userinput> pool: mypool @@ -32928,25 +32407,14 @@ Enabled the following features on 'mypool': filesystem_limits</screen> <warning> - <para xml:lang="en">The boot code on systems that boot from a pool must be - updated to support the new pool version. Use - <command>gpart bootcode</command> on the partition that - contains the boot code. See <citerefentry><refentrytitle>gpart</refentrytitle><manvolnum>8</manvolnum></citerefentry> for more - information.</para> + <para>使用儲存池來開機的系統上的 Boot code 必須更新以支援新的儲存池版本,在含有 Boot code 的分割區使用 <command>gpart bootcode</command> 來更新。請參考 <citerefentry><refentrytitle>gpart</refentrytitle><manvolnum>8</manvolnum></citerefentry> 取得更多資訊。</para> </warning> </sect2> <sect2 xml:id="zfs-zpool-history"> <title>顯示已記錄的儲存池歷史日誌</title> - <para xml:lang="en">Commands that modify the pool are recorded. Recorded - actions include the creation of datasets, changing properties, - or replacement of a disk. This history is useful for - reviewing how a pool was created and which user performed a - specific action and when. History is not kept in a log file, - but is part of the pool itself. The command to review this - history is aptly named - <command>zpool history</command>:</para> + <para>修改儲存池的指令會被記錄下來,會記錄的動作包含資料集的建立,屬性更改或更換磁碟。這個歷史記錄用來查看儲存池是如何建立、由誰執行、什麼動作及何時。歷史記錄並非儲存在日誌檔 (Log file),而是儲存在儲存池。查看這個歷史記錄的指令名稱為 <command>zpool history</command>:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool history</userinput> History for 'tank': @@ -32955,19 +32423,9 @@ History for 'tank': 2013-02-27.18:51:09 zfs set checksum=fletcher4 tank 2013-02-27.18:51:18 zfs create tank/backup</screen> - <para xml:lang="en">The output shows <command>zpool</command> and - <command>zfs</command> commands that were executed on the pool - along with a timestamp. Only commands that alter the pool in - some way are recorded. Commands like - <command>zfs list</command> are not included. When no pool - name is specified, the history of all pools is - displayed.</para> + <para>輸出結果顯示曾在該儲存池上執行的 <command>zpool</command> 與 <command>zfs</command> 指令以及時間戳記。只有會修改儲存池或類似的指令會被記錄下來,像是 <command>zfs list</command> 這種指令並不會被記錄。當不指定儲存池名稱時,會列出所有儲存池的歷史記錄。</para> - <para xml:lang="en"><command>zpool history</command> can show even more - information when the options <option>-i</option> or - <option>-l</option> are provided. <option>-i</option> - displays user-initiated events as well as internally logged - <acronym>ZFS</acronym> events.</para> + <para>在提供選項 <option>-i</option> 或 <option>-l</option> 時 <command>zpool history</command> 可以顯更多詳細資訊。<option>-i</option> 會顯示使用者觸發的事件外,也會顯示內部記錄的 <acronym>ZFS</acronym> 事件。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool history -i</userinput> History for 'tank': @@ -32979,10 +32437,7 @@ History for 'tank': 2013-02-27.18:51:13 [internal create txg:55] dataset = 39 2013-02-27.18:51:18 zfs create tank/backup</screen> - <para xml:lang="en">More details can be shown by adding <option>-l</option>. - History records are shown in a long format, including - information like the name of the user who issued the command - and the hostname on which the change was made.</para> + <para>更多詳細的資訊可加上 <option>-l</option> 來取得,歷史記錄會以較長的格式顯示,包含的資訊有執行指令的使用者名稱、主機名稱以及更改的項目。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool history -l</userinput> History for 'tank': @@ -32991,36 +32446,15 @@ History for 'tank': 2013-02-27.18:51:09 zfs set checksum=fletcher4 tank [user 0 (root) on myzfsbox:global] 2013-02-27.18:51:18 zfs create tank/backup [user 0 (root) on myzfsbox:global]</screen> - <para xml:lang="en">The output shows that the - <systemitem class="username">root</systemitem> user created - the mirrored pool with disks - <filename>/dev/ada0</filename> and - <filename>/dev/ada1</filename>. The hostname - <systemitem class="systemname">myzfsbox</systemitem> is also - shown in the commands after the pool's creation. The hostname - display becomes important when the pool is exported from one - system and imported on another. The commands that are issued - on the other system can clearly be distinguished by the - hostname that is recorded for each command.</para> - - <para xml:lang="en">Both options to <command>zpool history</command> can be - combined to give the most detailed information possible for - any given pool. Pool history provides valuable information - when tracking down the actions that were performed or when - more detailed output is needed for debugging.</para> + <para>輸出結果顯示 <systemitem class="username">root</systemitem> 使用者使用 <filename>/dev/ada0</filename> 及 <filename>/dev/ada1</filename> 建立鏡像的儲存池。主機名稱 <systemitem class="systemname">myzfsbox</systemitem> 在建立完儲存池後也同樣會顯示。由於儲存池可以從一個系統匯出再匯入到另一個系統,因此主機名稱也很重要,這樣一來可以清楚的辦識在其他系統上執行的每一個指令的主機名稱。</para> + + <para>兩個 <command>zpool history</command> 選項可以合併使用來取得最完整的儲存池詳細資訊。儲存池歷史記錄在追蹤執行什麼動作或要取得除錯所需的輸出結果提供了非常有用的資訊。</para> </sect2> <sect2 xml:id="zfs-zpool-iostat"> <title>監視效能</title> - <para xml:lang="en">A built-in monitoring system can display pool - <acronym>I/O</acronym> statistics in real time. It shows the - amount of free and used space on the pool, how many read and - write operations are being performed per second, and how much - <acronym>I/O</acronym> bandwidth is currently being utilized. - By default, all pools in the system are monitored and - displayed. A pool name can be provided to limit monitoring to - just that pool. A basic example:</para> + <para>內建的監視系統可以即時顯示儲存池的 <acronym>I/O</acronym> 統計資訊。它會顯示儲存池剩餘的空間與使用的空間,每秒執行了多少讀取與寫入的操作,有多少 <acronym>I/O</acronym> 頻寬被使用。預設會監視所有在系統中的儲存池都並顯示出來,可以提供儲存池名稱來只顯示該儲存池的監視資訊。舉一個簡單的例子:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool iostat</userinput> capacity operations bandwidth @@ -33028,25 +32462,9 @@ pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- data 288G 1.53T 2 11 11.3K 57.1K</screen> - <para xml:lang="en">To continuously monitor <acronym>I/O</acronym> activity, a - number can be specified as the last parameter, indicating a - interval in seconds to wait between updates. The next - statistic line is printed after each interval. Press - <keycombo action="simul"> - <keycap>Ctrl</keycap> - <keycap>C</keycap> - </keycombo> to stop this continuous monitoring. - Alternatively, give a second number on the command line after - the interval to specify the total number of statistics to - display.</para> - - <para xml:lang="en">Even more detailed <acronym>I/O</acronym> statistics can - be displayed with <option>-v</option>. Each device in the - pool is shown with a statistics line. This is useful in - seeing how many read and write operations are being performed - on each device, and can help determine if any individual - device is slowing down the pool. This example shows a - mirrored pool with two devices:</para> + <para>要持續監視 <acronym>I/O</acronym> 的活動可以在最後的參數指定一個數字,這個數字代表每次更新資訊所間隔的秒數。在每次經過間隔的時間後會列出新一行的統計資訊,按下 <keycombo action="simul"> <keycap>Ctrl</keycap> <keycap>C</keycap> </keycombo> 可以中止監視。或者在指令列的間隔時間之後再指定一個數字,代表總共要顯示的統計資訊筆數。</para> + + <para>使用 <option>-v</option> 可以顯示更詳細的 <acronym>I/O</acronym> 統計資訊。每個在儲存池中的裝置會以一行統計資訊顯示。這可以幫助了解每一個裝置做了多少讀取與寫入的操作,並可協助確認是否有各別裝置拖慢了整個儲存池的速度。以下範例會顯示有兩個裝置的鏡像儲存池:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool iostat -v </userinput> capacity operations bandwidth @@ -33062,54 +32480,21 @@ data 288G 1.53T 2 12 9.23K 61.5K <sect2 xml:id="zfs-zpool-split"> <title>分割儲存儲存池</title> - <para xml:lang="en">A pool consisting of one or more mirror vdevs can be split - into two pools. Unless otherwise specified, the last member - of each mirror is detached and used to create a new pool - containing the same data. The operation should first be - attempted with <option>-n</option>. The details of the - proposed operation are displayed without it actually being - performed. This helps confirm that the operation will do what - the user intends.</para> + <para>由一個或多個鏡像 vdev 所組成的儲存池可以切分開成兩個儲存池。除非有另外指定,否則每個鏡像的最後一個成員會被分離來然用來建立一個含有相同資料的新儲存池。在做這個操作的第一次應先使用 <option>-n</option>,會顯示預計會做的操作而不會真的執行,這可以協助確認操作是否與使用者所要的相同。</para> </sect2> </sect1> <sect1 xml:id="zfs-zfs"> <title><command>zfs</command> 管理</title> - <para xml:lang="en">The <command>zfs</command> utility is responsible for - creating, destroying, and managing all <acronym>ZFS</acronym> - datasets that exist within a pool. The pool is managed using - <link linkend="zfs-zpool"><command>zpool</command></link>.</para> + <para><command>zfs</command> 工具負責建立、摧毀與管理在一個儲存池中所有的 <acronym>ZFS</acronym> 資料集。儲存池使用 <link linkend="zfs-zpool"><command>zpool</command></link> 來管理。</para> <sect2 xml:id="zfs-zfs-create"> <title>建立與摧毀資料集</title> - <para xml:lang="en">Unlike traditional disks and volume managers, space in - <acronym>ZFS</acronym> is <emphasis>not</emphasis> - preallocated. With traditional file systems, after all of the - space is partitioned and assigned, there is no way to add an - additional file system without adding a new disk. With - <acronym>ZFS</acronym>, new file systems can be created at any - time. Each <link linkend="zfs-term-dataset"><emphasis>dataset</emphasis></link> - has properties including features like compression, - deduplication, caching, and quotas, as well as other useful - properties like readonly, case sensitivity, network file - sharing, and a mount point. Datasets can be nested inside - each other, and child datasets will inherit properties from - their parents. Each dataset can be administered, - <link linkend="zfs-zfs-allow">delegated</link>, - <link linkend="zfs-zfs-send">replicated</link>, - <link linkend="zfs-zfs-snapshot">snapshotted</link>, - <link linkend="zfs-zfs-jail">jailed</link>, and destroyed as a - unit. There are many advantages to creating a separate - dataset for each different type or set of files. The only - drawbacks to having an extremely large number of datasets is - that some commands like <command>zfs list</command> will be - slower, and the mounting of hundreds or even thousands of - datasets can slow the FreeBSD boot process.</para> - - <para xml:lang="en">Create a new dataset and enable <link linkend="zfs-term-compression-lz4">LZ4 - compression</link> on it:</para> + <para>不同於傳統的磁碟與磁碟區管理程式 (Volume manager) ,在 <acronym>ZFS</acronym> 中的空間並<emphasis>不</emphasis>會預先分配。傳統的檔案系統在分割與分配空間完後,若沒有增加新的磁碟便無法再增加額外的檔案系統。在 <acronym>ZFS</acronym>,可以隨時建立新的檔案系統,每個資料集 (<link linkend="zfs-term-dataset"><emphasis>Dataset</emphasis></link>) 都有自己的屬性,包含壓縮 (Compression)、去重複 (Deduplication)、快取 (Caching) 與配額 (Quota) 功能以及其他有用的屬性如唯讀 (Readonly)、區分大小寫 (Case sensitivity)、網路檔案分享 (Network file sharing) 以及掛載點 (Mount point)。資料集可以存在於其他資料集中,且子資料集會繼承其父資料集的屬性。每個資料集都可以作為一個單位來管理、委託 (<link linkend="zfs-zfs-allow">Delegate</link>)、備份 (<link linkend="zfs-zfs-send">Replicate</link>)、快照 (<link linkend="zfs-zfs-snapshot">Snapshot</link>)、監禁 (<link linkend="zfs-zfs-jail">Jail</link>) 與摧毀 (Destroy),替每種不同類型或集合的檔案建立各別的資料集還有許多的好處。唯一的缺點是在當有非常大數量的資料集時,部份指令例如 <command>zfs list</command> 會變的較緩慢,且掛載上百個或其至上千個資料集可能會使 FreeBSD 的開機程序變慢。</para> + + <para>建立一個新資料集並開啟 <link linkend="zfs-term-compression-lz4">LZ4 壓縮</link>:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs list</userinput> NAME USED AVAIL REFER MOUNTPOINT @@ -33144,12 +32529,9 @@ mypool/var/log 178K 93.2G 178K /var/log mypool/var/mail 144K 93.2G 144K /var/mail mypool/var/tmp 152K 93.2G 152K /var/tmp</screen> - <para xml:lang="en">Destroying a dataset is much quicker than deleting all - of the files that reside on the dataset, as it does not - involve scanning all of the files and updating all of the - corresponding metadata.</para> + <para>摧毀資料集會比刪除所有在資料集上所殘留的檔案來的快,由於摧毀資料集並不會掃描所有檔案並更新所有相關的 Metadata。</para> - <para xml:lang="en">Destroy the previously-created dataset:</para> + <para>摧毀先前建立的資料集:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs list</userinput> NAME USED AVAIL REFER MOUNTPOINT @@ -33184,44 +32566,15 @@ mypool/var/log 178K 93.2G 178K /var/log mypool/var/mail 144K 93.2G 144K /var/mail mypool/var/tmp 152K 93.2G 152K /var/tmp</screen> - <para xml:lang="en">In modern versions of <acronym>ZFS</acronym>, - <command>zfs destroy</command> is asynchronous, and the free - space might take several minutes to appear in the pool. Use - <command>zpool get freeing - <replaceable>poolname</replaceable></command> to see the - <literal>freeing</literal> property, indicating how many - datasets are having their blocks freed in the background. - If there are child datasets, like - <link linkend="zfs-term-snapshot">snapshots</link> or other - datasets, then the parent cannot be destroyed. To destroy a - dataset and all of its children, use <option>-r</option> to - recursively destroy the dataset and all of its children. - Use <option>-n</option> <option>-v</option> to list datasets - and snapshots that would be destroyed by this operation, but - do not actually destroy anything. Space that would be - reclaimed by destruction of snapshots is also shown.</para> + <para>在最近版本的 <acronym>ZFS</acronym>,<command>zfs destroy</command> 是非同步的,且釋放出的空間會許要花費數分鐘才會出現在儲存池上,可使用 <command>zpool get freeing <replaceable>poolname</replaceable></command> 來查看 <literal>freeing</literal> 屬性,這個屬性會指出資料集在背景已經釋放多少資料區塊了。若有子資料集,如快照 (<link linkend="zfs-term-snapshot">Snapshot</link>) 或其他資料集存在的話,則會無法摧毀父資料集。要摧毀一個資料集及其所有子資料集,可使用 <option>-r</option> 來做遞迴摧毀資料集及其所有子資料集,可用 <option>-n</option> <option>-v</option> 來列出會被這個操作所摧毀的資料集及快照,而不會真的摧毀,因摧毀快照所釋放出的空間也會同時顯示。</para> </sect2> <sect2 xml:id="zfs-zfs-volume"> <title>建立與摧毀磁碟區</title> - <para xml:lang="en">A volume is a special type of dataset. Rather than being - mounted as a file system, it is exposed as a block device - under - <filename>/dev/zvol/<replaceable>poolname</replaceable>/<replaceable>dataset</replaceable></filename>. - This allows the volume to be used for other file systems, to - back the disks of a virtual machine, or to be exported using - protocols like <acronym>iSCSI</acronym> or - <acronym>HAST</acronym>.</para> - - <para xml:lang="en">A volume can be formatted with any file system, or used - without a file system to store raw data. To the user, a - volume appears to be a regular disk. Putting ordinary file - systems on these <emphasis>zvols</emphasis> provides features - that ordinary disks or file systems do not normally have. For - example, using the compression property on a 250 MB - volume allows creation of a compressed <acronym>FAT</acronym> - file system.</para> + <para>磁碟區 (Volume) 是特殊類型的資料集,不會被掛載成一個檔案系統,而是會被當做儲存區塊裝置出現在 <filename>/dev/zvol/<replaceable>poolname</replaceable>/<replaceable>dataset</replaceable></filename> 下。這讓磁碟區可以用於其他檔案系統,備份虛擬機器的磁碟或是使用 <acronym>iSCSI</acronym> 或 <acronym>HAST</acronym> 通訊協定匯出。</para> + + <para>磁碟區可以被格式化成任何檔案系統,或不使用檔案系統來儲存原始資料。對一般使用者,磁碟區就像是一般的磁碟,可以放置一般的檔案系統在這些 <emphasis>zvols</emphasis>上,並提供一般磁碟或檔案系統一般所沒有的功能。例如,使用壓縮屬性在一個 250 MB 的磁碟區可建立一個壓縮的 <acronym>FAT</acronym> 檔案系統。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs create -V 250m -o compression=on tank/fat32</userinput> <prompt>#</prompt> <userinput>zfs list tank</userinput> @@ -33235,27 +32588,15 @@ Filesystem Size Used Avail Capacity Mounted on <prompt>#</prompt> <userinput>mount | grep fat32</userinput> /dev/zvol/tank/fat32 on /mnt (msdosfs, local)</screen> - <para xml:lang="en">Destroying a volume is much the same as destroying a - regular file system dataset. The operation is nearly - instantaneous, but it may take several minutes for the free - space to be reclaimed in the background.</para> + <para>摧毀一個磁碟區與摧毀一個一般的檔案系統資料集差不多。操作上幾乎是即時的,但在背景會需要花費數分鐘來讓釋放空間再次可用。</para> </sect2> <sect2 xml:id="zfs-zfs-rename"> <title>重新命名資料集</title> - <para xml:lang="en">The name of a dataset can be changed with - <command>zfs rename</command>. The parent of a dataset can - also be changed with this command. Renaming a dataset to be - under a different parent dataset will change the value of - those properties that are inherited from the parent dataset. - When a dataset is renamed, it is unmounted and then remounted - in the new location (which is inherited from the new parent - dataset). This behavior can be prevented with - <option>-u</option>.</para> + <para>資料集的名稱可以使用 <command>zfs rename</command> 更改。父資料集也同樣可以使用這個指令來更改名稱。重新命名一個資料集到另一個父資料集也會更改自父資料集繼承的屬性值。重新命名資料集後,會被卸載然後重新掛載到新的位置 (依繼承的新父資料集而定),可使用 <option>-u</option> 來避免重新掛載。</para> - <para xml:lang="en">Rename a dataset and move it to be under a different - parent dataset:</para> + <para>重新命名一個資料集並移動該資料集到另一個父資料集:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs list</userinput> NAME USED AVAIL REFER MOUNTPOINT @@ -33291,11 +32632,7 @@ mypool/var/mail 144K 93.2G 144K /var/mail mypool/var/newname 87.5K 93.2G 87.5K /var/newname mypool/var/tmp 152K 93.2G 152K /var/tmp</screen> - <para xml:lang="en">Snapshots can also be renamed like this. Due to the - nature of snapshots, they cannot be renamed into a different - parent dataset. To rename a recursive snapshot, specify - <option>-r</option>, and all snapshots with the same name in - child datasets with also be renamed.</para> + <para>快照也可以像這樣重新命名,由於快照的天性,使其無法被重新命名到另一個父資料集。要遞迴重新命名快照可指定 <option>-r</option>,然後在子資料集中所有同名的快照也會一併被重新命名。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs list -t snapshot</userinput> NAME USED AVAIL REFER MOUNTPOINT @@ -33309,35 +32646,16 @@ mypool/var/newname@new_snapshot_name 0 - 87.5K -</screen> <sect2 xml:id="zfs-zfs-set"> <title>設定資料集屬性</title> - <para xml:lang="en">Each <acronym>ZFS</acronym> dataset has a number of - properties that control its behavior. Most properties are - automatically inherited from the parent dataset, but can be - overridden locally. Set a property on a dataset with - <command>zfs set - <replaceable>property</replaceable>=<replaceable>value</replaceable> - <replaceable>dataset</replaceable></command>. Most - properties have a limited set of valid values, - <command>zfs get</command> will display each possible property - and valid values. Most properties can be reverted to their - inherited values using <command>zfs inherit</command>.</para> - - <para xml:lang="en">User-defined properties can also be set. They become part - of the dataset configuration and can be used to provide - additional information about the dataset or its contents. To - distinguish these custom properties from the ones supplied as - part of <acronym>ZFS</acronym>, a colon (<literal>:</literal>) - is used to create a custom namespace for the property.</para> + <para>每個 <acronym>ZFS</acronym> 資料集有數個屬性可以用來控制其行為。大部份的屬性會自動繼承自其父資料集,但可以被自己覆蓋。設定資料集上的屬性可使用 <command>zfs set <replaceable>property</replaceable>=<replaceable>value</replaceable> <replaceable>dataset</replaceable></command>。大部份屬性有限制可用的值,<command>zfs get</command> 會顯示每個可以使用的屬性及其可用的值。大部份可以使用 <command>zfs inherit</command> 還原成其繼承的值。</para> + + <para>也可設定使用者自訂的屬性。這些屬性也會成為資料集設定的一部份,且可以被用來提供資料集或其內容的額外資訊。要別分自訂屬性與 <acronym>ZFS</acronym> 提供的屬性,會使用冒號 (<literal>:</literal>) 建立一個自訂命名空間供自訂屬性使用。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set <replaceable>custom</replaceable>:<replaceable>costcenter</replaceable>=<replaceable>1234</replaceable> <replaceable>tank</replaceable></userinput> <prompt>#</prompt> <userinput>zfs get <replaceable>custom</replaceable>:<replaceable>costcenter</replaceable> <replaceable>tank</replaceable></userinput> NAME PROPERTY VALUE SOURCE tank custom:costcenter 1234 local</screen> - <para xml:lang="en">To remove a custom property, use - <command>zfs inherit</command> with <option>-r</option>. If - the custom property is not defined in any of the parent - datasets, it will be removed completely (although the changes - are still recorded in the pool's history).</para> + <para>要移除自訂屬性,可用 <command>zfs inherit</command> 加上 <option>-r</option>。若父資料集未定義任何自訂屬性,將會將該屬性完全移除 (更改動作仍會記錄於儲存池的歷史記錄)。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs inherit -r <replaceable>custom</replaceable>:<replaceable>costcenter</replaceable> <replaceable>tank</replaceable></userinput> <prompt>#</prompt> <userinput>zfs get <replaceable>custom</replaceable>:<replaceable>costcenter</replaceable> <replaceable>tank</replaceable></userinput> @@ -33350,59 +32668,16 @@ tank custom:costcenter - - <sect2 xml:id="zfs-zfs-snapshot"> <title>管理快照 (Snapshot)</title> - <para xml:lang="en"><link linkend="zfs-term-snapshot">Snapshots</link> are one - of the most powerful features of <acronym>ZFS</acronym>. A - snapshot provides a read-only, point-in-time copy of the - dataset. With Copy-On-Write (<acronym>COW</acronym>), - snapshots can be created quickly by preserving the older - version of the data on disk. If no snapshots exist, space is - reclaimed for future use when data is rewritten or deleted. - Snapshots preserve disk space by recording only the - differences between the current dataset and a previous - version. Snapshots are allowed only on whole datasets, not on - individual files or directories. When a snapshot is created - from a dataset, everything contained in it is duplicated. - This includes the file system properties, files, directories, - permissions, and so on. Snapshots use no additional space - when they are first created, only consuming space as the - blocks they reference are changed. Recursive snapshots taken - with <option>-r</option> create a snapshot with the same name - on the dataset and all of its children, providing a consistent - moment-in-time snapshot of all of the file systems. This can - be important when an application has files on multiple - datasets that are related or dependent upon each other. - Without snapshots, a backup would have copies of the files - from different points in time.</para> - - <para xml:lang="en">Snapshots in <acronym>ZFS</acronym> provide a variety of - features that even other file systems with snapshot - functionality lack. A typical example of snapshot use is to - have a quick way of backing up the current state of the file - system when a risky action like a software installation or a - system upgrade is performed. If the action fails, the - snapshot can be rolled back and the system has the same state - as when the snapshot was created. If the upgrade was - successful, the snapshot can be deleted to free up space. - Without snapshots, a failed upgrade often requires a restore - from backup, which is tedious, time consuming, and may require - downtime during which the system cannot be used. Snapshots - can be rolled back quickly, even while the system is running - in normal operation, with little or no downtime. The time - savings are enormous with multi-terabyte storage systems and - the time required to copy the data from backup. Snapshots are - not a replacement for a complete backup of a pool, but can be - used as a quick and easy way to store a copy of the dataset at - a specific point in time.</para> + <para>快照 (<link linkend="zfs-term-snapshot">Snapshot</link>) 是 <acronym>ZFS</acronym> 最強大的功能之一。快照提供了資料集唯讀、單一時間點 (Point-in-Time) 的複製功能,使用了寫入時複製 (Copy-On-Write, <acronym>COW</acronym>) 的技術,可以透過保存在磁碟上的舊版資料快速的建立快照。若沒有快照存在,在資料被覆蓋或刪除時,便回收空間供未來使用。由於只記錄前一個版本與目前資料集的差異,因此快照可節省磁碟空間。快照只允許在整個資料集上使用,無法在各別檔案或目錄。當建立了一個資料集的快照時,便備份了所有內含的資料,這包含了檔案系統屬性、檔案、目錄、權限等等。第一次建立快照時只會使用到更改參照到資料區塊的空間,不會用到額外的空間。使用 <option>-r</option> 可以對使用同名的資料集及其所有子資料集的建立一個遞迴快照,提供一致且即時 (Moment-in-time) 的完整檔案系統快照功能,這對於那些彼此有相關或相依檔案存放在不同資料集的應用程式非常重要。若不使用快照,備份所複製的資料其實是不同時間點的,可能會有不一致的問題。</para> + + <para><acronym>ZFS</acronym> 中的快照提供了多種功能,即使是在其他缺乏快照功能的檔案系統上。一個使用快照的典型例子是在安裝軟體或執行系統升級這種有風險的動作時,能有一個快速的方式可以備份檔案系統目前的狀態,若動作失敗,可以使用快照還原 (Roll back) 到與快照建立時相同的系統狀態,若升級成功,便可刪除快照來釋放空間。若沒有快照功能,升級失敗通常會需要使用備份來恢復 (Restore) 系統,而這個動作非常繁瑣、耗時且可能會需要停機一段時間系統無法使用。使用快照可以快速的還原,即使系統正在執行一般的運作,只而要短暫或甚至不需停機。能夠節省大量在有數 TB 的儲存系統上從備份複製所需資料的時間。快照並非要用來取代儲存池的完整備份,但可以用在快速且簡單的保存某個特定時間點的資料集。</para> <sect3 xml:id="zfs-zfs-snapshot-creation"> <title>建立快照</title> - <para xml:lang="en">Snapshots are created with <command>zfs snapshot - <replaceable>dataset</replaceable>@<replaceable>snapshotname</replaceable></command>. - Adding <option>-r</option> creates a snapshot recursively, - with the same name on all child datasets.</para> + <para>快照可以使用 <command>zfs snapshot <replaceable>dataset</replaceable>@<replaceable>snapshotname</replaceable></command> 來建立。加入 <option>-r</option> 可以遞迴對所有同名的子資料集建立快照。</para> - <para xml:lang="en">Create a recursive snapshot of the entire pool:</para> + <para>建立一個整個儲存池的遞迴快照:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs list -t all</userinput> NAME USED AVAIL REFER MOUNTPOINT @@ -33440,33 +32715,16 @@ mypool/var/newname@new_snapshot_name 0 - 87.5K - mypool/var/newname@my_recursive_snapshot 0 - 87.5K - mypool/var/tmp@my_recursive_snapshot 0 - 152K -</screen> - <para xml:lang="en">Snapshots are not shown by a normal - <command>zfs list</command> operation. To list snapshots, - <option>-t snapshot</option> is appended to - <command>zfs list</command>. <option>-t all</option> - displays both file systems and snapshots.</para> + <para>建立的快照不會顯示在一般的 <command>zfs list</command> 操作結果,要列出快照需在 <command>zfs list</command> 後加上 <option>-t snapshot</option>,使用 <option>-t all</option> 可以同時列出檔案系統的內容及快照。</para> - <para xml:lang="en">Snapshots are not mounted directly, so path is shown in - the <literal>MOUNTPOINT</literal> column. There is no - mention of available disk space in the - <literal>AVAIL</literal> column, as snapshots cannot be - written to after they are created. Compare the snapshot - to the original dataset from which it was created:</para> + <para>快照並不會直接掛載,因此 <literal>MOUNTPOINT</literal> 欄位的路徑如此顯示。在 <literal>AVAIL</literal> 欄位不會有可用的磁碟空間,因為快照建立之後便無法再寫入。比較快照與其原來建立時的資料集:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs list -rt all <replaceable>mypool/usr/home</replaceable></userinput> NAME USED AVAIL REFER MOUNTPOINT mypool/usr/home 184K 93.2G 184K /usr/home mypool/usr/home@my_recursive_snapshot 0 - 184K -</screen> - <para xml:lang="en">Displaying both the dataset and the snapshot together - reveals how snapshots work in - <link linkend="zfs-term-cow">COW</link> fashion. They save - only the changes (<emphasis>delta</emphasis>) that were made - and not the complete file system contents all over again. - This means that snapshots take little space when few changes - are made. Space usage can be made even more apparent by - copying a file to the dataset, then making a second - snapshot:</para> + <para>同時顯示資料集與快照可以了解快照如何使用 <link linkend="zfs-term-cow">COW</link> 技術來運作。快照只會保存有更動 (<emphasis>差異</emphasis>) 的資料,並非整個檔案系統的內容,這個意思是說,快照只會在有做更動時使用一小部份的空間,複製一個檔案到該資料集,可以讓空間使用量變的更明顯,然後再做第二個快照:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cp <replaceable>/etc/passwd</replaceable> <replaceable>/var/tmp</replaceable></userinput> <prompt>#</prompt> <userinput>zfs snapshot <replaceable>mypool/var/tmp</replaceable>@<replaceable>after_cp</replaceable></userinput> @@ -33476,27 +32734,13 @@ mypool/var/tmp 206K 93.2G 118K /var/tmp mypool/var/tmp@my_recursive_snapshot 88K - 152K - mypool/var/tmp@after_cp 0 - 118K -</screen> - <para xml:lang="en">The second snapshot contains only the changes to the - dataset after the copy operation. This yields enormous - space savings. Notice that the size of the snapshot - <replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable> - also changed in the <literal>USED</literal> - column to indicate the changes between itself and the - snapshot taken afterwards.</para> + <para>第二快照只會包含了資料集做了複製動作後的更動,這樣的機制可以節省大量的空間。注意在複製之後快照 <replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable> 於 <literal>USED</literal> 欄位中的大小也更改了,這說明了這個更動在前次快照與之後快照間的關係。</para> </sect3> <sect3 xml:id="zfs-zfs-snapshot-diff"> <title>比對快照</title> - <para xml:lang="en">ZFS provides a built-in command to compare the - differences in content between two snapshots. This is - helpful when many snapshots were taken over time and the - user wants to see how the file system has changed over time. - For example, <command>zfs diff</command> lets a user find - the latest snapshot that still contains a file that was - accidentally deleted. Doing this for the two snapshots that - were created in the previous section yields this - output:</para> + <para>ZFS 提供了內建指令可以用來比對兩個快照 (Snapshot) 之間的差異,在使用者想要查看一段時間之間檔案系統所的變更時非常有用。例如 <command>zfs diff</command> 可以讓使用者在最後一次快照中找到意外刪除的檔案。對前面一節所做的兩個快照使用這個指令會產生以下結果:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs list -rt all <replaceable>mypool/var/tmp</replaceable></userinput> NAME USED AVAIL REFER MOUNTPOINT @@ -33507,52 +32751,39 @@ mypool/var/tmp@after_cp 0 - 118K - M /var/tmp/ + /var/tmp/passwd</screen> - <para xml:lang="en">The command lists the changes between the specified - snapshot (in this case - <literal><replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable></literal>) - and the live file system. The first column shows the - type of change:</para> + <para>指令會列出指定快照 (在這個例子中為 <literal><replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable></literal>) 與目前檔案系統間的更改。第一個欄位是更改的類型:</para> <informaltable pgwide="1"> <tgroup cols="2"> <tbody valign="top"> <row> <entry xml:lang="en">+</entry> - <entry xml:lang="en">The path or file was added.</entry> + <entry>加入了該路徑或檔案。</entry> </row> <row> <entry xml:lang="en">-</entry> - <entry xml:lang="en">The path or file was deleted.</entry> + <entry>刪除了該路徑或檔案。</entry> </row> <row> <entry xml:lang="en">M</entry> - <entry xml:lang="en">The path or file was modified.</entry> + <entry>修改了該路徑或檔案。</entry> </row> <row> <entry xml:lang="en">R</entry> - <entry xml:lang="en">The path or file was renamed.</entry> + <entry>重新命名了該路徑或檔案。</entry> </row> </tbody> </tgroup> </informaltable> - <para xml:lang="en">Comparing the output with the table, it becomes clear - that <filename><replaceable>passwd</replaceable></filename> - was added after the snapshot - <literal><replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable></literal> - was created. This also resulted in a modification to the - parent directory mounted at - <literal><replaceable>/var/tmp</replaceable></literal>.</para> + <para>對照這個表格來看輸出的結果,可以明顯的看到 <filename><replaceable>passwd</replaceable></filename> 是在快照 <literal><replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable></literal> 建立之後才加入的,結果也同樣看的到掛載到 <literal><replaceable>/var/tmp</replaceable></literal> 的父目錄已經做過修改。</para> - <para xml:lang="en">Comparing two snapshots is helpful when using the - <acronym>ZFS</acronym> replication feature to transfer a - dataset to a different host for backup purposes.</para> + <para>在使用 <acronym>ZFS</acronym> 備份功能來傳輸一個資料集到另一個主機備份時比對兩個快照也同樣很有用。</para> - <para xml:lang="en">Compare two snapshots by providing the full dataset name - and snapshot name of both datasets:</para> + <para>比對兩個快照需要提供兩個資料集的完整資料集名稱與快照名稱:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cp /var/tmp/passwd /var/tmp/passwd.copy</userinput> <prompt>#</prompt> <userinput>zfs snapshot <replaceable>mypool/var/tmp@diff_snapshot</replaceable></userinput> @@ -33564,45 +32795,15 @@ M /var/tmp/ M /var/tmp/ + /var/tmp/passwd</screen> - <para xml:lang="en">A backup administrator can compare two snapshots - received from the sending host and determine the actual - changes in the dataset. See the - <link linkend="zfs-zfs-send">Replication</link> section for - more information.</para> + <para>備份管理者可以比對兩個自傳送主機所接收到的兩個快照並查看實際在資料集中的變更。請參考 <link linkend="zfs-zfs-send">備份</link> 一節來取得更多資訊。</para> </sect3> <sect3 xml:id="zfs-zfs-snapshot-rollback"> <title>使用快照還原</title> - <para xml:lang="en">When at least one snapshot is available, it can be - rolled back to at any time. Most of the time this is the - case when the current state of the dataset is no longer - required and an older version is preferred. Scenarios such - as local development tests have gone wrong, botched system - updates hampering the system's overall functionality, or the - requirement to restore accidentally deleted files or - directories are all too common occurrences. Luckily, - rolling back a snapshot is just as easy as typing - <command>zfs rollback - <replaceable>snapshotname</replaceable></command>. - Depending on how many changes are involved, the operation - will finish in a certain amount of time. During that time, - the dataset always remains in a consistent state, much like - a database that conforms to ACID principles is performing a - rollback. This is happening while the dataset is live and - accessible without requiring a downtime. Once the snapshot - has been rolled back, the dataset has the same state as it - had when the snapshot was originally taken. All other data - in that dataset that was not part of the snapshot is - discarded. Taking a snapshot of the current state of the - dataset before rolling back to a previous one is a good idea - when some data is required later. This way, the user can - roll back and forth between snapshots without losing data - that is still valuable.</para> - - <para xml:lang="en">In the first example, a snapshot is rolled back because - of a careless <command>rm</command> operation that removes - too much data than was intended.</para> + <para>只要至少有一個可用的快照便可以隨時還原。大多數在已不需要目前資料集,想要改用較舊版的資料的情況,例如,本地開發的測試發生錯誤、不良的系統更新破壞了系統的整體功能或需要還原意外刪除檔案或目錄 ... 等,都是非常常見的情形。幸運的,要還原到某個快照只需要簡單輸入 <command>zfs rollback <replaceable>snapshotname</replaceable></command>。會依快照所做的變更數量來決定處理的時間,還原的操作會在一段時間後完成。在這段時間中,資料集會一直保持一致的狀態,類似一個符合 ACID 原則的資料庫在做還原。還原可在資料集處於上線及可存取的情況下完成,不需要停機。還原到快照之後,資料集便回到當初執行快照時相同的狀態,所有沒有在快照中的其他資料便會被丟棄,因此往後若還有可能需要部份資料時,建議在還原到前一個快照之前先對目前的資料集做快照,這樣一來,使用者便可以在快照之間來回快換,而不會遺失重要的資料。</para> + + <para>在第一個範例中,因為 <command>rm</command> 操作不小心移除了預期外的資料,要還原到快照。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs list -rt all <replaceable>mypool/var/tmp</replaceable></userinput> NAME USED AVAIL REFER MOUNTPOINT @@ -33617,22 +32818,13 @@ passwd passwd.copy vi.recover <prompt>%</prompt></screen> - <para xml:lang="en">At this point, the user realized that too many files - were deleted and wants them back. <acronym>ZFS</acronym> - provides an easy way to get them back using rollbacks, but - only when snapshots of important data are performed on a - regular basis. To get the files back and start over from - the last snapshot, issue the command:</para> + <para>在此時,使用者發現到刪除了太多檔案並希望能夠還原。<acronym>ZFS</acronym> 提供了簡單的方可以取回檔案,便是使用還原 (Rollback),但這只在有定期對重要的資料使用快照時可用。要拿回檔案並從最後一次快照重新開始,可執行以下指令:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs rollback <replaceable>mypool/var/tmp@diff_snapshot</replaceable></userinput> <prompt>%</prompt> <userinput>ls /var/tmp</userinput> passwd passwd.copy vi.recover</screen> - <para xml:lang="en">The rollback operation restored the dataset to the state - of the last snapshot. It is also possible to roll back to a - snapshot that was taken much earlier and has other snapshots - that were created after it. When trying to do this, - <acronym>ZFS</acronym> will issue this warning:</para> + <para>還原操作會將資料集還原為最後一次快照的狀態。這也可以還原到更早之前,有其他在其之後建立的快照。要這麼做時,<acronym>ZFS</acronym> 會發出這個警告:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs list -rt snapshot <replaceable>mypool/var/tmp</replaceable></userinput> AME USED AVAIL REFER MOUNTPOINT @@ -33645,17 +32837,7 @@ use '-r' to force deletion of the following snapshots: mypool/var/tmp@after_cp mypool/var/tmp@diff_snapshot</screen> - <para xml:lang="en">This warning means that snapshots exist between the - current state of the dataset and the snapshot to which the - user wants to roll back. To complete the rollback, these - snapshots must be deleted. <acronym>ZFS</acronym> cannot - track all the changes between different states of the - dataset, because snapshots are read-only. - <acronym>ZFS</acronym> will not delete the affected - snapshots unless the user specifies <option>-r</option> to - indicate that this is the desired action. If that is the - intention, and the consequences of losing all intermediate - snapshots is understood, the command can be issued:</para> + <para>這個警告是因在該快照與資料集的目前狀態之間有其他快照存在,然而使用者想要還原到該快照。要完成這樣的還原動作,必須刪除在這之間的快照,因為 <acronym>ZFS</acronym> 無法追蹤不同資料集狀態間的變更。在使用者未指定 <option>-r</option> 來確認這個動作前,<acronym>ZFS</acronym> 不會刪除受影響的快照。若確定要這麼做,那麼必須要知道會遺失所有在這之間的快照,然後可執行以下指令:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs rollback -r <replaceable>mypool/var/tmp@my_recursive_snapshot</replaceable></userinput> <prompt>#</prompt> <userinput>zfs list -rt snapshot <replaceable>mypool/var/tmp</replaceable></userinput> @@ -33664,27 +32846,13 @@ mypool/var/tmp@my_recursive_snapshot 8K - 152K - <prompt>%</prompt> <userinput>ls /var/tmp</userinput> vi.recover</screen> - <para xml:lang="en">The output from <command>zfs list -t snapshot</command> - confirms that the intermediate snapshots - were removed as a result of - <command>zfs rollback -r</command>.</para> + <para>可從 <command>zfs list -t snapshot</command> 的結果來確認 <command>zfs rollback -r</command> 會移除的快照。</para> </sect3> <sect3 xml:id="zfs-zfs-snapshot-snapdir"> - <title>自快照還原單一檔案</title> - - <para xml:lang="en">Snapshots are mounted in a hidden directory under the - parent dataset: - <filename>.zfs/snapshots/<replaceable>snapshotname</replaceable></filename>. - By default, these directories will not be displayed even - when a standard <command>ls -a</command> is issued. - Although the directory is not displayed, it is there - nevertheless and can be accessed like any normal directory. - The property named <literal>snapdir</literal> controls - whether these hidden directories show up in a directory - listing. Setting the property to <literal>visible</literal> - allows them to appear in the output of <command>ls</command> - and other commands that deal with directory contents.</para> + <title>從快照還原個別檔案</title> + + <para>快照會掛載在父資料集下的隱藏目錄:<filename>.zfs/snapshots/<replaceable>snapshotname</replaceable></filename>。預設不會顯示這些目錄,即使是用 <command>ls -a</command> 指令。雖然該目錄不會顯示,但該目錄實際存在,而且可以像一般的目錄一樣存取。一個名稱為 <literal>snapdir</literal> 的屬性可以控制是否在目錄清單中顯示這些隱藏目錄,設定該屬性為可見 (<literal>visible</literal>) 可以讓這些目錄出現在 <command>ls</command> 以及其他處理目錄內容的指令中。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs get snapdir <replaceable>mypool/var/tmp</replaceable></userinput> NAME PROPERTY VALUE SOURCE @@ -33695,16 +32863,7 @@ mypool/var/tmp snapdir hidden default <prompt>%</prompt> <userinput>ls -a /var/tmp</userinput> . .. .zfs passwd vi.recover</screen> - <para xml:lang="en">Individual files can easily be restored to a previous - state by copying them from the snapshot back to the parent - dataset. The directory structure below - <filename>.zfs/snapshot</filename> has a directory named - exactly like the snapshots taken earlier to make it easier - to identify them. In the next example, it is assumed that a - file is to be restored from the hidden - <filename>.zfs</filename> directory by copying it from the - snapshot that contained the latest version of the - file:</para> + <para>要還原個別檔案到先前的狀態非常簡單,只要從快照中複製檔案到父資料集。在 <filename>.zfs/snapshot</filename> 目錄結構下有一個與先前所做的快照名稱相同的目錄,可以很容易的找到。在下個範例中,我們會示範從隱藏的 <filename>.zfs</filename> 目錄還原一個檔案,透過從含有該檔案的最新版快照複製:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>rm /var/tmp/passwd</userinput> <prompt>%</prompt> <userinput>ls -a /var/tmp</userinput> @@ -33715,61 +32874,25 @@ after_cp my_recursive_snapshot passwd vi.recover <prompt>#</prompt> <userinput>cp /var/tmp/.zfs/snapshot/<replaceable>after_cp/passwd</replaceable> <replaceable>/var/tmp</replaceable></userinput></screen> - <para xml:lang="en">When <command>ls .zfs/snapshot</command> was issued, the - <literal>snapdir</literal> property might have been set to - hidden, but it would still be possible to list the contents - of that directory. It is up to the administrator to decide - whether these directories will be displayed. It is possible - to display these for certain datasets and prevent it for - others. Copying files or directories from this hidden - <filename>.zfs/snapshot</filename> is simple enough. Trying - it the other way around results in this error:</para> + <para>執行 <command>ls .zfs/snapshot</command> 時,雖然 <literal>snapdir</literal> 可能已經設為隱藏,但仍可能可以顯示該目錄中的內容,這取決於管理者是否要顯示這些目錄,可以只顯示特定的資料集,而其他的則不顯示。從這個隱藏的 <filename>.zfs/snapshot</filename> 複製檔案或目錄非常簡單,除此之外,嘗試其他的動作則會出現以下錯誤:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cp <replaceable>/etc/rc.conf</replaceable> /var/tmp/.zfs/snapshot/<replaceable>after_cp/</replaceable></userinput> cp: /var/tmp/.zfs/snapshot/after_cp/rc.conf: Read-only file system</screen> - <para xml:lang="en">The error reminds the user that snapshots are read-only - and cannot be changed after creation. Files cannot be - copied into or removed from snapshot directories because - that would change the state of the dataset they - represent.</para> - - <para xml:lang="en">Snapshots consume space based on how much the parent - file system has changed since the time of the snapshot. The - <literal>written</literal> property of a snapshot tracks how - much space is being used by the snapshot.</para> - - <para xml:lang="en">Snapshots are destroyed and the space reclaimed with - <command>zfs destroy - <replaceable>dataset</replaceable>@<replaceable>snapshot</replaceable></command>. - Adding <option>-r</option> recursively removes all snapshots - with the same name under the parent dataset. Adding - <option>-n -v</option> to the command displays a list of the - snapshots that would be deleted and an estimate of how much - space would be reclaimed without performing the actual - destroy operation.</para> + <para>這個錯誤用來提醒使用者快照是唯讀的,在建立之後不能更改。無法複製檔案進去或從該快照目錄中移除,因為這會變更該資料集所代表的狀態。</para> + + <para>快照所消耗的空間是依據自快照之後父檔案系統做了多少變更來決定,快照的 <literal>written</literal> 屬性可以用來追蹤有多少空間被快照所使用。</para> + + <para>使用 <command>zfs destroy <replaceable>dataset</replaceable>@<replaceable>snapshot</replaceable></command> 可以摧毀快照並回收空間。加上 <option>-r</option> 可以遞迴移除所有在父資料集下使用同名的快照。加入 <option>-n -v</option> 來顯示將要移除的快照清單以及估計回收的空間,而不會實際執行摧毀的操作。</para> </sect3> </sect2> <sect2 xml:id="zfs-zfs-clones"> <title>管理複本 (Clone)</title> - <para xml:lang="en">A clone is a copy of a snapshot that is treated more like - a regular dataset. Unlike a snapshot, a clone is not read - only, is mounted, and can have its own properties. Once a - clone has been created using <command>zfs clone</command>, the - snapshot it was created from cannot be destroyed. The - child/parent relationship between the clone and the snapshot - can be reversed using <command>zfs promote</command>. After a - clone has been promoted, the snapshot becomes a child of the - clone, rather than of the original parent dataset. This will - change how the space is accounted, but not actually change the - amount of space consumed. The clone can be mounted at any - point within the <acronym>ZFS</acronym> file system hierarchy, - not just below the original location of the snapshot.</para> - - <para xml:lang="en">To demonstrate the clone feature, this example dataset is - used:</para> + <para>複本 (Clone) 是快照的複製,但更像是一般的資料集,與快照不同的是,複本是非唯讀的 (可寫),且可掛載,可以有自己的屬性。使用 <command>zfs clone</command> 建立複本之後,便無法再摧毀用來建立複本的快照。複本與快照的父/子關係可以使用 <command>zfs promote</command> 來對換。提升複本之後 ,快照便會成為複本的子資料集,而不是原來的父資料集,這個動作會改變空間計算的方式,但並不會實際改變空間的使用量。複本可以被掛載到 <acronym>ZFS</acronym> 檔案系統階層中的任何一點,並非只能位於原來快照的位置底下。</para> + + <para>要示範複本功能會用到這個範例資料集:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs list -rt all <replaceable>camino/home/joe</replaceable></userinput> NAME USED AVAIL REFER MOUNTPOINT @@ -33777,14 +32900,7 @@ camino/home/joe 108K 1.3G 87K /usr/home/joe camino/home/joe@plans 21K - 85.5K - camino/home/joe@backup 0K - 87K -</screen> - <para xml:lang="en">A typical use for clones is to experiment with a specific - dataset while keeping the snapshot around to fall back to in - case something goes wrong. Since snapshots cannot be - changed, a read/write clone of a snapshot is created. After - the desired result is achieved in the clone, the clone can be - promoted to a dataset and the old file system removed. This - is not strictly necessary, as the clone and dataset can - coexist without problems.</para> + <para>會使用到複本一般是要在可以保留快照以便出錯時可還原的情況下使用指定的資料集做實驗,由於快照並無法做更改,所以會建立一個可以讀/寫的快照複本。當在複本中做完想要執行的動作後,便可以提升複本成資料集,然後移除舊的檔案系統。嚴格來說這並非必要,因為複本與資料集可同時存在,不會有任何問題。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs clone <replaceable>camino/home/joe</replaceable>@<replaceable>backup</replaceable> <replaceable>camino/home/joenew</replaceable></userinput> <prompt>#</prompt> <userinput>ls /usr/home/joe*</userinput> @@ -33798,16 +32914,7 @@ Filesystem Size Used Avail Capacity Mounted on usr/home/joe 1.3G 31k 1.3G 0% /usr/home/joe usr/home/joenew 1.3G 31k 1.3G 0% /usr/home/joenew</screen> - <para xml:lang="en">After a clone is created it is an exact copy of the state - the dataset was in when the snapshot was taken. The clone can - now be changed independently from its originating dataset. - The only connection between the two is the snapshot. - <acronym>ZFS</acronym> records this connection in the property - <literal>origin</literal>. Once the dependency between the - snapshot and the clone has been removed by promoting the clone - using <command>zfs promote</command>, the - <literal>origin</literal> of the clone is removed as it is now - an independent dataset. This example demonstrates it:</para> + <para>建立完的複本便有與建立快照時狀態相同的資料集,現在複本可以獨立於原來的資料集來做更改。剩下唯一與資料集之間的關係便是快照,<acronym>ZFS</acronym> 會在屬性 <literal>origin</literal> 記錄這個關係,一旦在快照與複本之間的相依關係因為使用 <command>zfs promote</command> 提升而移除時,複本的 <literal>origin</literal> 也會因為成為一個完全獨立的資料集而移除。以下範例會示範這個動作:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs get origin <replaceable>camino/home/joenew</replaceable></userinput> NAME PROPERTY VALUE SOURCE @@ -33817,14 +32924,7 @@ camino/home/joenew origin camino/home/joe@backup - NAME PROPERTY VALUE SOURCE camino/home/joenew origin - -</screen> - <para xml:lang="en">After making some changes like copying - <filename>loader.conf</filename> to the promoted clone, for - example, the old directory becomes obsolete in this case. - Instead, the promoted clone can replace it. This can be - achieved by two consecutive commands: <command>zfs - destroy</command> on the old dataset and <command>zfs - rename</command> on the clone to name it like the old - dataset (it could also get an entirely different name).</para> + <para>做為部份更改之後,例如複製 <filename>loader.conf</filename> 到提升後的複本,這個例子中的舊目錄便無須保留,取而代之的是提升後的複本,這個動作可以用兩個連續的指令來完成:在舊資料集上執行 <command>zfs destroy</command> 並在與舊資料相似名稱 (也可能用完全不同的名稱) 的複本上執行 <command>zfs rename</command>。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>cp <replaceable>/boot/defaults/loader.conf</replaceable> <replaceable>/usr/home/joenew</replaceable></userinput> <prompt>#</prompt> <userinput>zfs destroy -f <replaceable>camino/home/joe</replaceable></userinput> @@ -33835,81 +32935,35 @@ backup.txz loader.conf plans.txt Filesystem Size Used Avail Capacity Mounted on usr/home/joe 1.3G 128k 1.3G 0% /usr/home/joe</screen> - <para xml:lang="en">The cloned snapshot is now handled like an ordinary - dataset. It contains all the data from the original snapshot - plus the files that were added to it like - <filename>loader.conf</filename>. Clones can be used in - different scenarios to provide useful features to ZFS users. - For example, jails could be provided as snapshots containing - different sets of installed applications. Users can clone - these snapshots and add their own applications as they see - fit. Once they are satisfied with the changes, the clones can - be promoted to full datasets and provided to end users to work - with like they would with a real dataset. This saves time and - administrative overhead when providing these jails.</para> + <para>快照的複本現在可以如同一般資料集一樣使用,它的內容包含了所有來自原始快照的資料以及後來加入的檔案,例如 <filename>loader.conf</filename>。複本可以在許多不同的情境下使用提供 ZFS 的使用者有用的功能,例如,Jail 可以透過含有已安裝了各種應用程式集的快照來提供,使用者可以複製這些快照然後加入自己想要嘗試的應用程式,一但更改可以滿足需求,便可提升複本為完整的資料集然後提供給終端使用者,讓終端使用者可以如同實際擁有資料集一般的使用,這個以節省提供這些 Jail 的時間與管理成本。</para> </sect2> <sect2 xml:id="zfs-zfs-send"> - <title>備援</title> - - <para xml:lang="en">Keeping data on a single pool in one location exposes - it to risks like theft and natural or human disasters. Making - regular backups of the entire pool is vital. - <acronym>ZFS</acronym> provides a built-in serialization - feature that can send a stream representation of the data to - standard output. Using this technique, it is possible to not - only store the data on another pool connected to the local - system, but also to send it over a network to another system. - Snapshots are the basis for this replication (see the section - on <link linkend="zfs-zfs-snapshot"><acronym>ZFS</acronym> - snapshots</link>). The commands used for replicating data - are <command>zfs send</command> and - <command>zfs receive</command>.</para> - - <para xml:lang="en">These examples demonstrate <acronym>ZFS</acronym> - replication with these two pools:</para> + <title>備份 (Replication)</title> + + <para>將資料保存在單一地點的單一儲存池上會讓資料暴露在盜竊、自然或人為的風險之下,定期備份整個儲存池非常重要,<acronym>ZFS</acronym> 提供了內建的序列化 (Serialization) 功能可以將資料以串流傳送到標準輸出。使用這項技術,不僅可以將資料儲存到另一個已連結到本地系統的儲存池,也可以透過網路將資料傳送到另一個系統,這種備份方式以快照為基礎 (請參考章節 <link linkend="zfs-zfs-snapshot"><acronym>ZFS</acronym> 快照(Snapshot)</link>)。用來備份資料的指令為 <command>zfs send</command> 及 <command>zfs receive</command>。</para> + + <para>以下例子將示範使用兩個儲存池來做 <acronym>ZFS</acronym> 備份:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool list</userinput> NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 960M 77K 896M 0% 1.00x ONLINE - mypool 984M 43.7M 940M 4% 1.00x ONLINE -</screen> - <para xml:lang="en">The pool named <replaceable>mypool</replaceable> is the - primary pool where data is written to and read from on a - regular basis. A second pool, - <replaceable>backup</replaceable> is used as a standby in case - the primary pool becomes unavailable. Note that this - fail-over is not done automatically by <acronym>ZFS</acronym>, - but must be manually done by a system administrator when - needed. A snapshot is used to provide a consistent version of - the file system to be replicated. Once a snapshot of - <replaceable>mypool</replaceable> has been created, it can be - copied to the <replaceable>backup</replaceable> pool. Only - snapshots can be replicated. Changes made since the most - recent snapshot will not be included.</para> + <para>名為 <replaceable>mypool</replaceable> 的儲存池為主要的儲存池,資料會定期寫入與讀取的位置。第二個儲存池 <replaceable>backup</replaceable> 用來待命 (Standby),萬一主要儲存池無法使用時可替換。注意,<acronym>ZFS</acronym> 並不會自動做容錯移轉 (Fail-over),必須要由系統管理者在需要的時候手動完成。快照會用來提供一個與檔系統一致的版本來做備份,<replaceable>mypool</replaceable> 的快照建立之後,便可以複製到 <replaceable>backup</replaceable> 儲存池,只有快照可以做備份,最近一次快照之後所做的變更不會含在內容裡面。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs snapshot <replaceable>mypool</replaceable>@<replaceable>backup1</replaceable></userinput> <prompt>#</prompt> <userinput>zfs list -t snapshot</userinput> NAME USED AVAIL REFER MOUNTPOINT mypool@backup1 0 - 43.6M -</screen> - <para xml:lang="en">Now that a snapshot exists, <command>zfs send</command> - can be used to create a stream representing the contents of - the snapshot. This stream can be stored as a file or received - by another pool. The stream is written to standard output, - but must be redirected to a file or pipe or an error is - produced:</para> + <para>快照存在以後,便可以使用 <command>zfs send</command> 來建立一個代表快照內容的串流,這個串流可以儲存成檔案或由其他儲存池接收。串流會寫入到標準輸出,但是必須要重新導向到一個檔案或轉接到其他地方,否則會錯誤:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs send <replaceable>mypool</replaceable>@<replaceable>backup1</replaceable></userinput> Error: Stream can not be written to a terminal. You must redirect standard output.</screen> - <para xml:lang="en">To back up a dataset with <command>zfs send</command>, - redirect to a file located on the mounted backup pool. Ensure - that the pool has enough free space to accommodate the size of - the snapshot being sent, which means all of the data contained - in the snapshot, not just the changes from the previous - snapshot.</para> + <para>要使用 <command>zfs send</command> 備份一個資料集,可重新導向到一個位於在已掛載到備份儲存池上的檔案。確定該儲存池有足夠的空間容納要傳送的快照,這裡指的是該快照中內含的所有資料,並非只有上次快照到該快照間的變更。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs send <replaceable>mypool</replaceable>@<replaceable>backup1</replaceable> > <replaceable>/backup/backup1</replaceable></userinput> <prompt>#</prompt> <userinput>zpool list</userinput> @@ -33917,23 +32971,9 @@ NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 960M 63.7M 896M 6% 1.00x ONLINE - mypool 984M 43.7M 940M 4% 1.00x ONLINE -</screen> - <para xml:lang="en">The <command>zfs send</command> transferred all the data - in the snapshot called <replaceable>backup1</replaceable> to - the pool named <replaceable>backup</replaceable>. Creating - and sending these snapshots can be done automatically with a - <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></citerefentry> job.</para> - - <para xml:lang="en">Instead of storing the backups as archive files, - <acronym>ZFS</acronym> can receive them as a live file system, - allowing the backed up data to be accessed directly. To get - to the actual data contained in those streams, - <command>zfs receive</command> is used to transform the - streams back into files and directories. The example below - combines <command>zfs send</command> and - <command>zfs receive</command> using a pipe to copy the data - from one pool to another. The data can be used directly on - the receiving pool after the transfer is complete. A dataset - can only be replicated to an empty dataset.</para> + <para><command>zfs send</command> 會傳輸在快照 <replaceable>backup1</replaceable> 中所有的資料到儲存池 <replaceable>backup</replaceable>。可以使用 <citerefentry><refentrytitle>cron</refentrytitle><manvolnum>8</manvolnum></citerefentry> 排程來自動完成建立與傳送快照的動作。</para> + + <para>若不想將備份以封存檔案儲存,<acronym>ZFS</acronym> 可用實際的檔案系統來接收資料,讓備份的資料可以直接被存取。要取得實際包含在串流中的資料可以用 <command>zfs receive</command> 將串流轉換回檔案與目錄。以下例子會以管線符號連接 <command>zfs send</command> 及 <command>zfs receive</command>,將資料從一個儲存池複製到另一個,傳輸完成後可以直接使用接收儲存池上的資料。一個資料集只可以被複製到另一個空的資料集。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs snapshot <replaceable>mypool</replaceable>@<replaceable>replica1</replaceable></userinput> <prompt>#</prompt> <userinput>zfs send -v <replaceable>mypool</replaceable>@<replaceable>replica1</replaceable> | zfs receive <replaceable>backup/mypool</replaceable></userinput> @@ -33949,10 +32989,7 @@ mypool 984M 43.7M 940M 4% 1.00x ONLINE -</screen> <sect3 xml:id="zfs-send-incremental"> <title>漸進式備份</title> - <para xml:lang="en"><command>zfs send</command> can also determine the - difference between two snapshots and send only the - differences between the two. This saves disk space and - transfer time. For example:</para> + <para><command>zfs send</command> 也可以比較兩個快照之間的差異,並且只傳送兩者之間的差異,這麼做可以節省磁碟空間及傳輸時間。例如:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs snapshot <replaceable>mypool</replaceable>@<replaceable>replica2</replaceable></userinput> <prompt>#</prompt> <userinput>zfs list -t snapshot</userinput> @@ -33964,16 +33001,7 @@ NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT backup 960M 61.7M 898M 6% 1.00x ONLINE - mypool 960M 50.2M 910M 5% 1.00x ONLINE -</screen> - <para xml:lang="en">A second snapshot called - <replaceable>replica2</replaceable> was created. This - second snapshot contains only the changes that were made to - the file system between now and the previous snapshot, - <replaceable>replica1</replaceable>. Using - <command>zfs send -i</command> and indicating the pair of - snapshots generates an incremental replica stream containing - only the data that has changed. This can only succeed if - the initial snapshot already exists on the receiving - side.</para> + <para>會建立一個名為 <replaceable>replica2</replaceable> 的第二個快照,這個快照只中只會含有目前與前次快照 <replaceable>replica1</replaceable> 之間檔案系統所做的變更。使用 <command>zfs send -i</command> 並指定要用來產生漸進備份串流的快照,串流中只會含有做過更改的資料。這個動作只在接收端已經有初始快照時才可用。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs send -v -i <replaceable>mypool</replaceable>@<replaceable>replica1</replaceable> <replaceable>mypool</replaceable>@<replaceable>replica2</replaceable> | zfs receive <replaceable>/backup/mypool</replaceable></userinput> send from @replica1 to mypool@replica2 estimated size is 5.02M @@ -33998,85 +33026,37 @@ backup/mypool@replica2 0 - 55.2M - mypool@replica1 29.9K - 50.0M - mypool@replica2 0 - 55.0M -</screen> - <para xml:lang="en">The incremental stream was successfully transferred. - Only the data that had changed was replicated, rather than - the entirety of <replaceable>replica1</replaceable>. Only - the differences were sent, which took much less time to - transfer and saved disk space by not copying the complete - pool each time. This is useful when having to rely on slow - networks or when costs per transferred byte must be - considered.</para> - - <para xml:lang="en">A new file system, - <replaceable>backup/mypool</replaceable>, is available with - all of the files and data from the pool - <replaceable>mypool</replaceable>. If <option>-P</option> - is specified, the properties of the dataset will be copied, - including compression settings, quotas, and mount points. - When <option>-R</option> is specified, all child datasets of - the indicated dataset will be copied, along with all of - their properties. Sending and receiving can be automated so - that regular backups are created on the second pool.</para> + <para>如此一來,便成功傳輸漸進式的串流,只有做過更改的資料會被備份,不會傳送完整的 <replaceable>replica1</replaceable>。由於不會備份完整的儲存池,只傳送差異的部份,所以可以減少傳輸的時間並節省磁碟空間,特別是在網路緩慢或需要考量每位元傳輸成本時非常有用。</para> + + <para>從儲存池 <replaceable>mypool</replaceable> 複製所有檔案與資料的新檔案系統 <replaceable>backup/mypool</replaceable> 便可以使用。若指定 <option>-P</option>,會一併複製資料集的屬性,這包含壓縮 (Compression) 設定,配額 (Quota) 及掛載點 (Mount point)。若指定 <option>-R</option>,會複製所有指定資料集的子資料集,及這些子資料集的所有屬性。可將傳送與接收自動化來定期使用第二個儲存池做備份。</para> </sect3> <sect3 xml:id="zfs-send-ssh"> - <title>透過 <application>SSH</application> 傳送已加密的備份</title> - - <para xml:lang="en">Sending streams over the network is a good way to keep a - remote backup, but it does come with a drawback. Data sent - over the network link is not encrypted, allowing anyone to - intercept and transform the streams back into data without - the knowledge of the sending user. This is undesirable, - especially when sending the streams over the internet to a - remote host. <application>SSH</application> can be used to - securely encrypt data send over a network connection. Since - <acronym>ZFS</acronym> only requires the stream to be - redirected from standard output, it is relatively easy to - pipe it through <application>SSH</application>. To keep the - contents of the file system encrypted in transit and on the - remote system, consider using <link xlink:href="http://wiki.freebsd.org/PEFS">PEFS</link>.</para> - - <para xml:lang="en">A few settings and security precautions must be - completed first. Only the necessary steps required for the - <command>zfs send</command> operation are shown here. For - more information on <application>SSH</application>, see - <xref linkend="openssh"/>.</para> - - <para xml:lang="en">This configuration is required:</para> + <title>透過 <application>SSH</application> 傳送加密的備份</title> + + <para>透過網路來傳送串流對要遠端備份是相當不錯的方式,但是也有一些缺點,透過網路連結傳送的資料沒有加密,這會讓任何人都可以在未告知傳送使用者的情況下攔截並轉換串流回資料,這是我們所不想見到的情況,特別是在使用網際網路傳送串流到遠端的主機時。<application>SSH</application> 可用來安全的加密要透過網路連線傳送的資料,在 <acronym>ZFS</acronym> 只需要從標準輸出重新導向便可簡單的轉接到 <application>SSH</application>。要在傳送或在遠端系統中維持檔案系統內容在加密的狀態也可考慮使用 <link xlink:href="http://wiki.freebsd.org/PEFS">PEFS</link>。</para> + + <para>有一些設定以及安全性注意事項必須先完成,只有對 <command>zfs send</command> 操作必要的步驟才會在此說明,要取得更多有關 <application>SSH</application> 的資訊請參考 <xref linkend="openssh"/>。</para> + + <para>必要的環境設定:</para> <itemizedlist> <listitem> - <para xml:lang="en">Passwordless <application>SSH</application> access - between sending and receiving host using - <application>SSH</application> keys</para> + <para>使用 <application>SSH</application> 金鑰設定傳送端與接收端間無密碼的 <application>SSH</application> 存取</para> </listitem> <listitem> - <para xml:lang="en">Normally, the privileges of the - <systemitem class="username">root</systemitem> user are - needed to send and receive streams. This requires - logging in to the receiving system as - <systemitem class="username">root</systemitem>. - However, logging in as - <systemitem class="username">root</systemitem> is - disabled by default for security reasons. The - <link linkend="zfs-zfs-allow">ZFS Delegation</link> - system can be used to allow a - non-<systemitem class="username">root</systemitem> user - on each system to perform the respective send and - receive operations.</para> + <para>正常會需要 <systemitem class="username">root</systemitem> 的權限來傳送與接收串流,這需要可以 <systemitem class="username">root</systemitem> 登入到接收端系統。但是,預設因安全性考慮會關閉以 <systemitem class="username">root</systemitem> 登入。ZFS 委託 (<link linkend="zfs-zfs-allow">ZFS Delegation</link>) 系統可以用來允許一個非 <systemitem class="username">root</systemitem> 使用者在每個系統上執行各自的發送與接收操作。</para> </listitem> <listitem> - <para xml:lang="en">On the sending system:</para> + <para>在傳送端系統上:</para> <screen xml:lang="en"><prompt>#</prompt> <command>zfs allow -u someuser send,snapshot <replaceable>mypool</replaceable></command></screen> </listitem> <listitem> - <para xml:lang="en">To mount the pool, the unprivileged user must own - the directory, and regular users must be allowed to - mount file systems. On the receiving system:</para> + <para>要掛載儲存池,無權限的使用者必須擁有該目錄且必須允許一般的使用者掛載檔案系統。在接收端系統上:</para> <screen xml:lang="en"><prompt>#</prompt> sysctl vfs.usermount=1 vfs.usermount: 0 -> 1 @@ -34087,146 +33067,79 @@ vfs.usermount: 0 -> 1 </listitem> </itemizedlist> - <para xml:lang="en">The unprivileged user now has the ability to receive and - mount datasets, and the <replaceable>home</replaceable> - dataset can be replicated to the remote system:</para> + <para>無權限的使用者現在有能力可以接收並掛載資料集,且 <replaceable>home</replaceable> 資料集可以被複製到遠端系統:</para> <screen xml:lang="en"><prompt>%</prompt> <userinput>zfs snapshot -r <replaceable>mypool/home</replaceable>@<replaceable>monday</replaceable></userinput> <prompt>%</prompt> <userinput>zfs send -R <replaceable>mypool/home</replaceable>@<replaceable>monday</replaceable> | ssh <replaceable>someuser@backuphost</replaceable> zfs recv -dvu <replaceable>recvpool/backup</replaceable></userinput></screen> - <para xml:lang="en">A recursive snapshot called - <replaceable>monday</replaceable> is made of the file system - dataset <replaceable>home</replaceable> that resides on the - pool <replaceable>mypool</replaceable>. Then it is sent - with <command>zfs send -R</command> to include the dataset, - all child datasets, snaphots, clones, and settings in the - stream. The output is piped to the waiting - <command>zfs receive</command> on the remote host - <replaceable>backuphost</replaceable> through - <application>SSH</application>. Using a fully qualified - domain name or IP address is recommended. The receiving - machine writes the data to the - <replaceable>backup</replaceable> dataset on the - <replaceable>recvpool</replaceable> pool. Adding - <option>-d</option> to <command>zfs recv</command> - overwrites the name of the pool on the receiving side with - the name of the snapshot. <option>-u</option> causes the - file systems to not be mounted on the receiving side. When - <option>-v</option> is included, more detail about the - transfer is shown, including elapsed time and the amount of - data transferred.</para> + <para>替儲存在儲存池 <replaceable>mypool</replaceable> 上的檔案系統資料集 <replaceable>home</replaceable> 製作一個遞迴快照 <replaceable>monday</replaceable>,然後使用 <command>zfs send -R</command> 來傳送包含該資料集及其所有子資料集、快照、複製與設定的串流。輸出會被導向到 <application>SSH</application> 連線的遠端主機 <replaceable>backuphost</replaceable> 上等候輸入的 <command>zfs receive</command>,在此建議使用完整網域名稱或 IP 位置。接收端的機器會寫入資料到 <replaceable>recvpool</replaceable> 儲存池上的 <replaceable>backup</replaceable> 資料集,在 <command>zfs recv</command> 加上 <option>-d</option> 可覆寫在接收端使用相同名稱的快照,加上 <option>-u</option> 可讓檔案系統在接收端不會被掛載,當使用 <option>-v</option>,會顯示更多有關傳輸的詳細資訊,包含已花費的時間及已傳輸的資料量。</para> </sect3> </sect2> <sect2 xml:id="zfs-zfs-quota"> <title>資料集、使用者以及群組配額</title> - <para xml:lang="en"><link linkend="zfs-term-quota">Dataset quotas</link> are - used to restrict the amount of space that can be consumed - by a particular dataset. - <link linkend="zfs-term-refquota">Reference Quotas</link> work - in very much the same way, but only count the space - used by the dataset itself, excluding snapshots and child - datasets. Similarly, - <link linkend="zfs-term-userquota">user</link> and - <link linkend="zfs-term-groupquota">group</link> quotas can be - used to prevent users or groups from using all of the - space in the pool or dataset.</para> - - <para xml:lang="en">To enforce a dataset quota of 10 GB for - <filename>storage/home/bob</filename>:</para> + <para>資料集配額 (<link linkend="zfs-term-quota">Dataset quota</link>) 可用來限制特定資料集可以使用的的空間量。參考配額 (<link linkend="zfs-term-refquota">Reference Quota</link>) 的功能也非常相似,差在參考配額只會計算資料集自己使用的空間,不含快照與子資料集。類似的,使用者 (<link linkend="zfs-term-userquota">User</link>) 與群組 (<link linkend="zfs-term-groupquota">Group</link>) 配額可以用來避免使用者或群組用掉儲存池或資料集的所有空間。</para> + + <para>要設定 <filename>storage/home/bob</filename> 的資料集配額為 10 GB:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set quota=10G storage/home/bob</userinput></screen> - <para xml:lang="en">To enforce a reference quota of 10 GB for - <filename>storage/home/bob</filename>:</para> + <para>要設定 <filename>storage/home/bob</filename> 的參考配額為 10 GB:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set refquota=10G storage/home/bob</userinput></screen> - <para xml:lang="en">To remove a quota of 10 GB for - <filename>storage/home/bob</filename>:</para> + <para>要移除 <filename>storage/home/bob</filename> 的 10 GB 配額:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set quota=none storage/home/bob</userinput></screen> - <para xml:lang="en">The general format is - <literal>userquota@<replaceable>user</replaceable>=<replaceable>size</replaceable></literal>, - and the user's name must be in one of these formats:</para> + <para>設定使用者配額的一般格式為 <literal>userquota@<replaceable>user</replaceable>=<replaceable>size</replaceable></literal> 使用者的名稱必須使用以下格式:</para> <itemizedlist> <listitem> - <para xml:lang="en"><acronym>POSIX</acronym> compatible name such as - <replaceable>joe</replaceable>.</para> + <para><acronym>POSIX</acronym> 相容的名稱,如 <replaceable>joe</replaceable>。</para> </listitem> <listitem> - <para xml:lang="en"><acronym>POSIX</acronym> numeric ID such as - <replaceable>789</replaceable>.</para> + <para><acronym>POSIX</acronym> 數字 ID,如 <replaceable>789</replaceable>。</para> </listitem> <listitem> - <para xml:lang="en"><acronym>SID</acronym> name - such as - <replaceable>joe.bloggs@example.com</replaceable>.</para> + <para><acronym>SID</acronym> 名稱,如 <replaceable>joe.bloggs@example.com</replaceable>。</para> </listitem> <listitem> - <para xml:lang="en"><acronym>SID</acronym> - numeric ID such as - <replaceable>S-1-123-456-789</replaceable>.</para> + <para><acronym>SID</acronym> 數字 ID,如 <replaceable>S-1-123-456-789</replaceable>。</para> </listitem> </itemizedlist> - <para xml:lang="en">For example, to enforce a user quota of 50 GB for the - user named <replaceable>joe</replaceable>:</para> + <para>例如,要設定使用者名為 <replaceable>joe</replaceable> 的使用者配額為 50 GB:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set userquota@joe=50G</userinput></screen> - <para xml:lang="en">To remove any quota:</para> + <para>要移除所有配額:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set userquota@joe=none</userinput></screen> <note> - <para xml:lang="en">User quota properties are not displayed by - <command>zfs get all</command>. - Non-<systemitem class="username">root</systemitem> users can - only see their own quotas unless they have been granted the - <literal>userquota</literal> privilege. Users with this - privilege are able to view and set everyone's quota.</para> + <para>使用者配額的屬性不會顯示在 <command>zfs get all</command>。非 <systemitem class="username">root</systemitem> 的使用者只可以看到自己的配額,除非它們有被授予 <literal>userquota</literal> 權限,擁有這個權限的使用者可以檢視與設定任何人的配額。</para> </note> - <para xml:lang="en">The general format for setting a group quota is: - <literal>groupquota@<replaceable>group</replaceable>=<replaceable>size</replaceable></literal>.</para> + <para>要設定群組配額的一般格式為:<literal>groupquota@<replaceable>group</replaceable>=<replaceable>size</replaceable></literal>。</para> - <para xml:lang="en">To set the quota for the group - <replaceable>firstgroup</replaceable> to 50 GB, - use:</para> + <para>要設定群組 <replaceable>firstgroup</replaceable> 的配額為 50 GB 可使用:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set groupquota@firstgroup=50G</userinput></screen> - <para xml:lang="en">To remove the quota for the group - <replaceable>firstgroup</replaceable>, or to make sure that - one is not set, instead use:</para> + <para>要移除群組 <replaceable>firstgroup</replaceable> 的配額,或確保該群組未設定配額可使用:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set groupquota@firstgroup=none</userinput></screen> - <para xml:lang="en">As with the user quota property, - non-<systemitem class="username">root</systemitem> users can - only see the quotas associated with the groups to which they - belong. However, - <systemitem class="username">root</systemitem> or a user with - the <literal>groupquota</literal> privilege can view and set - all quotas for all groups.</para> - - <para xml:lang="en">To display the amount of space used by each user on - a file system or snapshot along with any quotas, use - <command>zfs userspace</command>. For group information, use - <command>zfs groupspace</command>. For more information about - supported options or how to display only specific options, - refer to <citerefentry><refentrytitle>zfs</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para> - - <para xml:lang="en">Users with sufficient privileges, and - <systemitem class="username">root</systemitem>, can list the - quota for <filename>storage/home/bob</filename> using:</para> + <para>如同使用者配額屬性,非 <systemitem class="username">root</systemitem> 使用者只可以查看自己所屬群組的配額。而 <systemitem class="username">root</systemitem> 或擁有 <literal>groupquota</literal> 權限的使用者,可以檢視並設定所有群組的任何配額。</para> + + <para>要顯示在檔案系統或快照上每位使用者所使用的空間量及配額可使用 <command>zfs userspace</command>,要取得群組的資訊則可使用 <command>zfs groupspace</command>,要取得有關支援的選項資訊或如何只顯示特定選項的資訊請參考 <citerefentry><refentrytitle>zfs</refentrytitle><manvolnum>1</manvolnum></citerefentry>。</para> + + <para>有足夠權限的使用者及 <systemitem class="username">root</systemitem> 可以使用以下指令列出 <filename>storage/home/bob</filename> 的配額:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs get quota storage/home/bob</userinput></screen> </sect2> @@ -34234,33 +33147,19 @@ vfs.usermount: 0 -> 1 <sect2 xml:id="zfs-zfs-reservation"> <title>保留空間</title> - <para xml:lang="en"><link linkend="zfs-term-reservation">Reservations</link> - guarantee a minimum amount of space will always be available - on a dataset. The reserved space will not be available to any - other dataset. This feature can be especially useful to - ensure that free space is available for an important dataset - or log files.</para> + <para>保留空間 (<link linkend="zfs-term-reservation">Reservation</link>) 可以確保資料集最少可用的空間量,其他任何資料集無法使用保留的空間,這個功能在要確保有足夠的可用空間來存放重要的資料集或日誌檔時特別有用。</para> - <para xml:lang="en">The general format of the <literal>reservation</literal> - property is - <literal>reservation=<replaceable>size</replaceable></literal>, - so to set a reservation of 10 GB on - <filename>storage/home/bob</filename>, use:</para> + <para><literal>reservation</literal> 屬性的一般格式為 <literal>reservation=<replaceable>size</replaceable></literal>,所以要在 <filename>storage/home/bob</filename> 設定保留 10 GB 的空間可以用:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set reservation=10G storage/home/bob</userinput></screen> - <para xml:lang="en">To clear any reservation:</para> + <para>要清除任何保留空間:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set reservation=none storage/home/bob</userinput></screen> - <para xml:lang="en">The same principle can be applied to the - <literal>refreservation</literal> property for setting a - <link linkend="zfs-term-refreservation">Reference - Reservation</link>, with the general format - <literal>refreservation=<replaceable>size</replaceable></literal>.</para> + <para>同樣的原則可以應用在 <literal>refreservation</literal> 屬性來設定參考保留空間 (<link linkend="zfs-term-refreservation">Reference Reservation</link>),參考保留空間的一般格式為 <literal>refreservation=<replaceable>size</replaceable></literal>。</para> - <para xml:lang="en">This command shows any reservations or refreservations - that exist on <filename>storage/home/bob</filename>:</para> + <para>這個指令會顯示任何已設定於 <filename>storage/home/bob</filename> 的 reservation 或 refreservation:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs get reservation storage/home/bob</userinput> <prompt>#</prompt> <userinput>zfs get refreservation storage/home/bob</userinput></screen> @@ -34269,34 +33168,11 @@ vfs.usermount: 0 -> 1 <sect2 xml:id="zfs-zfs-compression"> <title>壓縮 (Compression)</title> - <para xml:lang="en"><acronym>ZFS</acronym> provides transparent compression. - Compressing data at the block level as it is written not only - saves space, but can also increase disk throughput. If data - is compressed by 25%, but the compressed data is written to - the disk at the same rate as the uncompressed version, - resulting in an effective write speed of 125%. Compression - can also be a great alternative to - <link linkend="zfs-zfs-deduplication">Deduplication</link> - because it does not require additional memory.</para> - - <para xml:lang="en"><acronym>ZFS</acronym> offers several different - compression algorithms, each with different trade-offs. With - the introduction of <acronym>LZ4</acronym> compression in - <acronym>ZFS</acronym> v5000, it is possible to enable - compression for the entire pool without the large performance - trade-off of other algorithms. The biggest advantage to - <acronym>LZ4</acronym> is the <emphasis>early abort</emphasis> - feature. If <acronym>LZ4</acronym> does not achieve at least - 12.5% compression in the first part of the data, the block is - written uncompressed to avoid wasting CPU cycles trying to - compress data that is either already compressed or - uncompressible. For details about the different compression - algorithms available in <acronym>ZFS</acronym>, see the - <link linkend="zfs-term-compression">Compression</link> entry - in the terminology section.</para> - - <para xml:lang="en">The administrator can monitor the effectiveness of - compression using a number of dataset properties.</para> + <para><acronym>ZFS</acronym> 提供直接的壓縮功能,在資料區塊層級壓縮資料不僅可以節省空間,也可以增加磁碟的效能。若資料壓縮了 25%,但壓縮的資料會使用了與未壓縮版本相同的速率寫入到磁碟,所以實際的寫入速度會是原來的 125%。壓縮功能也可來替代去重複 (<link linkend="zfs-zfs-deduplication">Deduplication</link>) 功能,因為壓縮並不需要使用額外的記憶體。</para> + + <para><acronym>ZFS</acronym> 提了多種不同的壓縮演算法,每一種都有不同的優缺點,隨著 <acronym>ZFS</acronym> v5000 引進了 <acronym>LZ4</acronym> 壓縮技術,可對整個儲存池開啟壓縮,而不像其他演算法需要消耗大量的效能來達成,最大的優點是 <acronym>LZ4</acronym> 擁有 <emphasis>提早放棄</emphasis> 的功能,若 <acronym>LZ4</acronym> 無法在資料一開始的部份達成至少 12.5% 的壓縮率,便會以不壓縮的方式來寫入資料區塊來避免 CPU 在那些已經壓縮過或無法壓縮的資料上浪費運算能力。要取得更多有關 <acronym>ZFS</acronym> 中可用的壓縮演算法詳細資訊,可參考術語章節中的壓縮 (<link linkend="zfs-term-compression">Compression</link>) 項目。</para> + + <para>管理者可以使用資料集的屬性來監視壓縮的效果。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs get used,compressratio,compression,logicalused <replaceable>mypool/compressed_dataset</replaceable></userinput> NAME PROPERTY VALUE SOURCE @@ -34305,94 +33181,44 @@ mypool/compressed_dataset compressratio 1.11x - mypool/compressed_dataset compression lz4 local mypool/compressed_dataset logicalused 496G -</screen> - <para xml:lang="en">The dataset is currently using 449 GB of space (the - used property). Without compression, it would have taken - 496 GB of space (the <literal>logicallyused</literal> - property). This results in the 1.11:1 compression - ratio.</para> - - <para xml:lang="en">Compression can have an unexpected side effect when - combined with - <link linkend="zfs-term-userquota">User Quotas</link>. - User quotas restrict how much space a user can consume on a - dataset, but the measurements are based on how much space is - used <emphasis>after compression</emphasis>. So if a user has - a quota of 10 GB, and writes 10 GB of compressible - data, they will still be able to store additional data. If - they later update a file, say a database, with more or less - compressible data, the amount of space available to them will - change. This can result in the odd situation where a user did - not increase the actual amount of data (the - <literal>logicalused</literal> property), but the change in - compression caused them to reach their quota limit.</para> - - <para xml:lang="en">Compression can have a similar unexpected interaction with - backups. Quotas are often used to limit how much data can be - stored to ensure there is sufficient backup space available. - However since quotas do not consider compression, more data - may be written than would fit with uncompressed - backups.</para> + <para>資料集目前使用了 449 GB 的空間 (在 used 屬性)。在尚未壓縮前,該資料集應該會使用 496 GB 的空間 (於 <literal>logicallyused</literal> 屬性),這個結果顯示目前的壓縮比為 1.11:1。</para> + + <para>壓縮功能在與使用者配額 (<link linkend="zfs-term-userquota">User Quota</link>) 一併使用時可能會產生無法預期的副作用。使用者配額會限制一個使用者在一個資料集上可以使用多少空間,但衡量的依據是以 <emphasis>壓縮後</emphasis> 所使用的空間,因此,若一個使用者有 10 GB 的配額,寫入了 10 GB 可壓縮的資料,使用者將還會有空間儲存額外的資料。若使用者在之後更新了一個檔案,例如一個資料庫,可能有更多或較少的可壓縮資料,那麼剩餘可用的空間量也會因此而改變,這可能會造成奇怪的現象便是,一個使用者雖然沒有增加實際的資料量 (於 <literal>logicalused</literal> 屬性),但因為更改影響了壓縮率,導致使用者達到配額的上限。</para> + + <para>壓縮功能在與備份功能一起使用時也可能會有類似的問題,通常會使用配額功能來限制能夠儲存的資料量來確保有足夠的備份空間可用。但是由於配額功能並不會考量壓縮狀況,可能會有比未壓縮版本備份更多的資料量會被寫入到資料集。</para> </sect2> <sect2 xml:id="zfs-zfs-deduplication"> <title>去重複 (Deduplication)</title> - <para xml:lang="en">When enabled, - <link linkend="zfs-term-deduplication">deduplication</link> - uses the checksum of each block to detect duplicate blocks. - When a new block is a duplicate of an existing block, - <acronym>ZFS</acronym> writes an additional reference to the - existing data instead of the whole duplicate block. - Tremendous space savings are possible if the data contains - many duplicated files or repeated information. Be warned: - deduplication requires an extremely large amount of memory, - and most of the space savings can be had without the extra - cost by enabling compression instead.</para> - - <para xml:lang="en">To activate deduplication, set the - <literal>dedup</literal> property on the target pool:</para> + <para>當開啟,去重複 (<link linkend="zfs-term-deduplication">Deduplication</link>) 功能會使用每個資料區塊的校驗碼 (Checksum) 來偵測重複的資料區塊,當新的資料區塊與現有的資料區塊重複,<acronym>ZFS</acronym> 便會寫入連接到現有資料的參考來替代寫入重複的資料區塊,這在資料中有大量重複的檔案或資訊時可以節省大量的空間,要注意的是:去重複功能需要使用大量的記憶體且大部份可節省的空間可改開啟壓縮功能來達成,而壓縮功能不需要使用額外的記憶體。</para> + + <para>要開啟去重複功能,需在目標儲存池設定 <literal>dedup</literal> 屬性:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zfs set dedup=on <replaceable>pool</replaceable></userinput></screen> - <para xml:lang="en">Only new data being written to the pool will be - deduplicated. Data that has already been written to the pool - will not be deduplicated merely by activating this option. A - pool with a freshly activated deduplication property will look - like this example:</para> + <para>只有要被寫入到儲存池的新資料才會做去重複的動作,先前已被寫入到儲存池的資料不會因此啟動了這個選項而做去重複。查看已開啟去重複屬性的儲存池會如下:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool list</userinput> NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT pool 2.84G 2.19M 2.83G 0% 1.00x ONLINE -</screen> - <para xml:lang="en">The <literal>DEDUP</literal> column shows the actual rate - of deduplication for the pool. A value of - <literal>1.00x</literal> shows that data has not been - deduplicated yet. In the next example, the ports tree is - copied three times into different directories on the - deduplicated pool created above.</para> + <para><literal>DEDUP</literal> 欄位會顯示儲存池的實際去重複率,數值為 <literal>1.00x</literal> 代表資料尚未被去重複。在下一個例子會在前面所建立的去重複儲存池中複製三份 Port 樹到不同的目錄。中。</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool list</userinput> for d in dir1 dir2 dir3; do for> mkdir $d && cp -R /usr/ports $d & for> done</screen> - <para xml:lang="en">Redundant data is detected and deduplicated:</para> + <para>已經偵測到重複的資料並做去重複:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zpool list</userinput> NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT pool 2.84G 20.9M 2.82G 0% 3.00x ONLINE -</screen> - <para xml:lang="en">The <literal>DEDUP</literal> column shows a factor of - <literal>3.00x</literal>. Multiple copies of the ports tree - data was detected and deduplicated, using only a third of the - space. The potential for space savings can be enormous, but - comes at the cost of having enough memory to keep track of the - deduplicated blocks.</para> + <para><literal>DEDUP</literal> 欄位顯示有 <literal>3.00x</literal> 的去重複率,這代表已偵測到多份複製的 Port 樹資料並做了去重複的動作,且只會使用第三份資料所佔的空間。去重複能節省空間的潛力可以非常巨大,但會需要消耗大量的記憶體來持續追蹤去重複的資料區塊。</para> - <para xml:lang="en">Deduplication is not always beneficial, especially when - the data on a pool is not redundant. - <acronym>ZFS</acronym> can show potential space savings by - simulating deduplication on an existing pool:</para> + <para>去重複並非總是有效益的,特別是當儲存池中的資料本身並沒有重複時。<acronym>ZFS</acronym> 可以透過在現有儲存池上模擬開啟去重複功能來顯示可能節省的空間:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>zdb -S <replaceable>pool</replaceable></userinput> Simulated DDT histogram: @@ -34415,87 +33241,31 @@ refcnt blocks LSIZE PSIZE DSIZE blocks LSIZE PSIZE DSIZE dedup = 1.05, compress = 1.11, copies = 1.00, dedup * compress / copies = 1.16</screen> - <para xml:lang="en">After <command>zdb -S</command> finishes analyzing the - pool, it shows the space reduction ratio that would be - achieved by activating deduplication. In this case, - <literal>1.16</literal> is a very poor space saving ratio that - is mostly provided by compression. Activating deduplication - on this pool would not save any significant amount of space, - and is not worth the amount of memory required to enable - deduplication. Using the formula - <emphasis>ratio = dedup * compress / copies</emphasis>, - system administrators can plan the storage allocation, - deciding whether the workload will contain enough duplicate - blocks to justify the memory requirements. If the data is - reasonably compressible, the space savings may be very good. - Enabling compression first is recommended, and compression can - also provide greatly increased performance. Only enable - deduplication in cases where the additional savings will be - considerable and there is sufficient memory for the <link linkend="zfs-term-deduplication"><acronym>DDT</acronym></link>.</para> + <para>在 <command>zdb -S</command> 分析完儲存池後會顯示在啟動去重複後可達到的空間減少比例。在本例中,<literal>1.16</literal> 是非常差的空間節省比例,因為這個比例使用壓縮功能便能達成。若在此儲存池上啟動去重複並不能明顯的節省空間使用量,那麼就不值得耗費大量的記憶體來開啟去重複功能。透過公式 <emphasis>ratio = dedup * compress / copies</emphasis>,系統管理者可以規劃儲存空間的配置,來判斷要處理的資料是否有足夠的重複資料區塊來平衡所需的記憶體。若資料是可壓縮的,那麼空間節少的效果可能會非常好,建議先開啟壓縮功能,且壓縮功能也可以大大提高效能。去重複功能只有在可以節省可觀的空間且有足夠的記憶體做 <link linkend="zfs-term-deduplication"><acronym>DDT</acronym></link> 時才開啟。</para> </sect2> <sect2 xml:id="zfs-zfs-jail"> <title><acronym>ZFS</acronym> 與 Jail</title> - <para xml:lang="en"><command>zfs jail</command> and the corresponding - <literal>jailed</literal> property are used to delegate a - <acronym>ZFS</acronym> dataset to a - <link linkend="jails">Jail</link>. - <command>zfs jail <replaceable>jailid</replaceable></command> - attaches a dataset to the specified jail, and - <command>zfs unjail</command> detaches it. For the dataset to - be controlled from within a jail, the - <literal>jailed</literal> property must be set. Once a - dataset is jailed, it can no longer be mounted on the - host because it may have mount points that would compromise - the security of the host.</para> + <para><command>zfs jail</command> 以及相關的 <literal>jailed</literal> 屬性可以用來將一個 <acronym>ZFS</acronym> 資料集委託給一個 <link linkend="jails">Jail</link> 管理。<command>zfs jail <replaceable>jailid</replaceable></command> 可以將一個資料集連結到一個指定的 Jail,而 <command>zfs unjail</command> 則可解除連結。資料集要可以在 Jail 中控制需設定 <literal>jailed</literal> 屬性,一旦資料集被隔離便無法再掛載到主機,因為有掛載點可能會破壞主機的安全性。</para> </sect2> </sect1> <sect1 xml:id="zfs-zfs-allow"> <title>委託管理</title> - <para xml:lang="en">A comprehensive permission delegation system allows - unprivileged users to perform <acronym>ZFS</acronym> - administration functions. For example, if each user's home - directory is a dataset, users can be given permission to create - and destroy snapshots of their home directories. A backup user - can be given permission to use replication features. A usage - statistics script can be allowed to run with access only to the - space utilization data for all users. It is even possible to - delegate the ability to delegate permissions. Permission - delegation is possible for each subcommand and most - properties.</para> + <para>一個全面性的權限委託系統可能無權限的使用者執行 <acronym>ZFS</acronym> 的管理功能。例如,若每個使用者的家目錄均為一個資料集,便可以給予使用者權限建立與摧毀它們家目錄中的快照。可以給予備份使用者使用備份功能的權限。一個使用量統計的 Script 可以允許其在執行時能存取所有使用者的空間利用率資料。甚至可以將委託權限委託給其他人,每個子指令與大多數屬性都可使用權限委託。</para> <sect2 xml:id="zfs-zfs-allow-create"> - <title xml:lang="en">Delegating Dataset Creation</title> - - <para xml:lang="en"><command>zfs allow - <replaceable>someuser</replaceable> create - <replaceable>mydataset</replaceable></command> gives the - specified user permission to create child datasets under the - selected parent dataset. There is a caveat: creating a new - dataset involves mounting it. That requires setting the - FreeBSD <literal>vfs.usermount</literal> <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> to - <literal>1</literal> to allow non-root users to mount a - file system. There is another restriction aimed at preventing - abuse: non-<systemitem class="username">root</systemitem> - users must own the mountpoint where the file system is to be - mounted.</para> + <title>委託資料集建立</title> + + <para><command>zfs allow <replaceable>someuser</replaceable> create <replaceable>mydataset</replaceable></command> 可以給予指定的使用者在指定的父資料集下建立子資料集的權限。這裡需要注意:建立新資料集會牽涉到掛載,因此需要設定 FreeBSD 的 <literal>vfs.usermount</literal> <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> 為 <literal>1</literal> 來允許非 root 的使用者掛載一個檔案系統。這裡還有另一項限制可以避免濫用:非 <systemitem class="username">root</systemitem> 使用者必須擁有掛載點在檔案系統中所在位置的權限才可掛載。</para> </sect2> <sect2 xml:id="zfs-zfs-allow-allow"> - <title xml:lang="en">Delegating Permission Delegation</title> - - <para xml:lang="en"><command>zfs allow - <replaceable>someuser</replaceable> allow - <replaceable>mydataset</replaceable></command> gives the - specified user the ability to assign any permission they have - on the target dataset, or its children, to other users. If a - user has the <literal>snapshot</literal> permission and the - <literal>allow</literal> permission, that user can then grant - the <literal>snapshot</literal> permission to other - users.</para> + <title>委託權限委託</title> + + <para><command>zfs allow <replaceable>someuser</replaceable> allow <replaceable>mydataset</replaceable></command> 可以給予指定的使用者有權限指派它們在目標資料集或其子資料集上擁有的任何權限給其他人。若該使用者擁有 <literal>snapshot</literal> 權限及 <literal>allow</literal> 權限,則該使用者可以授權 <literal>snapshot</literal> 權限給其他使用者。</para> </sect2> </sect1> @@ -34505,9 +33275,7 @@ dedup = 1.05, compress = 1.11, copies = 1.00, dedup * compress / copies = 1.16</ <sect2 xml:id="zfs-advanced-tuning"> <title>調校</title> - <para xml:lang="en">There are a number of tunables that can be adjusted to - make <acronym>ZFS</acronym> perform best for different - workloads.</para> + <para>這裡有數個可調校的項目可以調整,來讓 <acronym>ZFS</acronym> 在面對各種工作都能以最佳狀況運作。</para> <itemizedlist> <listitem> @@ -34770,65 +33538,35 @@ dedup = 1.05, compress = 1.11, copies = 1.00, dedup * compress / copies = 1.16</ <sect2 xml:id="zfs-advanced-i386"> <title>i386 上的 <acronym>ZFS</acronym></title> - <para xml:lang="en">Some of the features provided by <acronym>ZFS</acronym> - are memory intensive, and may require tuning for maximum - efficiency on systems with limited - <acronym>RAM</acronym>.</para> + <para><acronym>ZFS</acronym> 所提供的部份功能需要使用大量記憶體,且可能需要對有限 <acronym>RAM</acronym> 的系統調校來取得最佳的效率。</para> <sect3> <title>記憶體</title> - <para xml:lang="en">As a bare minimum, the total system memory should be at - least one gigabyte. The amount of recommended - <acronym>RAM</acronym> depends upon the size of the pool and - which <acronym>ZFS</acronym> features are used. A general - rule of thumb is 1 GB of RAM for every 1 TB of - storage. If the deduplication feature is used, a general - rule of thumb is 5 GB of RAM per TB of storage to be - deduplicated. While some users successfully use - <acronym>ZFS</acronym> with less <acronym>RAM</acronym>, - systems under heavy load may panic due to memory exhaustion. - Further tuning may be required for systems with less than - the recommended RAM requirements.</para> + <para>最低需求,總系統記憶體應至少有 1 GB,建議的 <acronym>RAM</acronym> 量需視儲存池的大小以及使用的 <acronym>ZFS</acronym> 功能而定。一般的經驗法則是每 1 TB 的儲存空間需要 1 GB 的 RAM,若有開啟去重複的功能,一般的經驗法則是每 1 TB 的要做去重複的儲存空間需要 5 GB 的 RAM。雖然有部份使用者成功使用較少的 <acronym>RAM</acronym> 來運作 <acronym>ZFS</acronym>,但系統在負載較重時有可能會因為記憶用耗而導致當機,對於要使用低於建議 RAM 需求量來運作的系統可能會需要更進一步的調校。</para> </sect3> <sect3> <title>核心設定</title> - <para xml:lang="en">Due to the address space limitations of the - <trademark>i386</trademark> platform, <acronym>ZFS</acronym> users on the - <trademark>i386</trademark> architecture must add this option to a - custom kernel configuration file, rebuild the kernel, and - reboot:</para> + <para>由於在 <trademark>i386</trademark> 平台上位址空間的限制,在 <trademark>i386</trademark> 架構上的 <acronym>ZFS</acronym> 使用者必須加入這個選項到自訂核心設定檔,重新編譯核心並重新開啟:</para> <programlisting xml:lang="en">options KVA_PAGES=512</programlisting> - <para xml:lang="en">This expands the kernel address space, allowing - the <varname>vm.kvm_size</varname> tunable to be pushed - beyond the currently imposed limit of 1 GB, or the - limit of 2 GB for <acronym>PAE</acronym>. To find the - most suitable value for this option, divide the desired - address space in megabytes by four. In this example, it - is <literal>512</literal> for 2 GB.</para> + <para>這個選項會增加核心位址空間,允許調整 <varname>vm.kvm_size</varname> 超出目前的 1 GB 限制或在 <acronym>PAE</acronym> 的 2 GB 限制。要找到這個選項最合適的數值,可以將想要的位址空間換算成 MB 然後除以 4,在本例中,以 2 GB 計算後即為 <literal>512</literal>。</para> </sect3> <sect3> <title>載入程式可調參數</title> - <para xml:lang="en">The <filename>kmem</filename> address space can be - increased on all FreeBSD architectures. On a test system with - 1 GB of physical memory, success was achieved with - these options added to - <filename>/boot/loader.conf</filename>, and the system - restarted:</para> + <para>在所有的 FreeBSD 架構上均可增加 <filename>kmem</filename> 位址空間,經測試在一個 1 GB 實體記憶體的測試系統上,加入以下選項到 <filename>/boot/loader.conf</filename>,重新開啟系統,可成功設定。</para> <programlisting xml:lang="en">vm.kmem_size="330M" vm.kmem_size_max="330M" vfs.zfs.arc_max="40M" vfs.zfs.vdev.cache.size="5M"</programlisting> - <para xml:lang="en">For a more detailed list of recommendations for - <acronym>ZFS</acronym>-related tuning, see <link xlink:href="http://wiki.freebsd.org/ZFSTuningGuide"/>.</para> + <para>要取得更多詳細的 <acronym>ZFS</acronym> 相關調校的建議清單,請參考 <link xlink:href="http://wiki.freebsd.org/ZFSTuningGuide"/>。</para> </sect3> </sect2> </sect1> @@ -34879,840 +33617,270 @@ vfs.zfs.vdev.cache.size="5M"</programlisting> <sect1 xml:id="zfs-term"> <title><acronym>ZFS</acronym> 特色與術語</title> - <para xml:lang="en"><acronym>ZFS</acronym> is a fundamentally different file - system because it is more than just a file system. - <acronym>ZFS</acronym> combines the roles of file system and - volume manager, enabling additional storage devices to be added - to a live system and having the new space available on all of - the existing file systems in that pool immediately. By - combining the traditionally separate roles, - <acronym>ZFS</acronym> is able to overcome previous limitations - that prevented <acronym>RAID</acronym> groups being able to - grow. Each top level device in a pool is called a - <emphasis>vdev</emphasis>, which can be a simple disk or a - <acronym>RAID</acronym> transformation such as a mirror or - <acronym>RAID-Z</acronym> array. <acronym>ZFS</acronym> file - systems (called <emphasis>datasets</emphasis>) each have access - to the combined free space of the entire pool. As blocks are - allocated from the pool, the space available to each file system - decreases. This approach avoids the common pitfall with - extensive partitioning where free space becomes fragmented - across the partitions.</para> + <para><acronym>ZFS</acronym> 是一個從本質上與眾不同的檔案系統,由於它並非只是一個檔案系統,<acronym>ZFS</acronym> 結合了檔案系統及磁碟區管理程式,讓額外的儲存裝置可以即時的加入到系統並可讓既有的檔案系統立即使用這些在儲存池中空間。透過結合傳統區分為二的兩個角色,<acronym>ZFS</acronym> 能夠克服以往 <acronym>RAID</acronym> 磁碟群組無法擴充的限制。每個在儲存池頂層的裝置稱作 <emphasis>vdev</emphasis>,其可以是一個簡單的磁碟或是一個 <acronym>RAID</acronym> 如鏡像或 <acronym>RAID-Z</acronym> 陣列。<acronym>ZFS</acronym> 的檔案系統 (稱作 <emphasis>資料集 (Dataset)</emphasis>) 每一個資料集均可存取整個存池所共通的可用空間,隨著使用儲存池來配置空間區塊,儲存池能給每個檔案系統使用的可用空間就會減少,這個方法可以避免擴大分割區會使的可用空間分散分割區之間的常見問題。</para> <informaltable pgwide="1"> <tgroup cols="2"> <tbody valign="top"> <row> - <entry xml:id="zfs-term-pool" xml:lang="en">pool</entry> - - <entry xml:lang="en">A storage <emphasis>pool</emphasis> is the most - basic building block of <acronym>ZFS</acronym>. A pool - is made up of one or more vdevs, the underlying devices - that store the data. A pool is then used to create one - or more file systems (datasets) or block devices - (volumes). These datasets and volumes share the pool of - remaining free space. Each pool is uniquely identified - by a name and a <acronym>GUID</acronym>. The features - available are determined by the <acronym>ZFS</acronym> - version number on the pool. + <entry xml:id="zfs-term-pool">儲存池 (Pool)</entry> - <note> - <para xml:lang="en">FreeBSD 9.0 and 9.1 include support for - <acronym>ZFS</acronym> version 28. Later versions - use <acronym>ZFS</acronym> version 5000 with feature - flags. The new feature flags system allows greater - cross-compatibility with other implementations of - <acronym>ZFS</acronym>.</para> - </note> - </entry> + <entry><emphasis>儲存池 (Pool)</emphasis> 是建構 <acronym>ZFS</acronym> 最基礎的單位。一個儲存池可由一個或多個 vdev 所組成,是用來儲存資料的底層裝置。儲存池會被拿來建立一個或多個檔案系統 (資料集 Dataset) 或區塊裝置 (磁碟區 Volume),這些資料集與磁碟區會共用儲存池的剩餘可用空間。每一個儲存池可由名稱與 <acronym>GUID</acronym> 來辨識。可用的功能會依儲存池上的 <acronym>ZFS</acronym> 版本而有不同。<note> + <para>FreeBSD 9.0 與 9.1 支援 <acronym>ZFS</acronym> 版本 28,之後的版本使用 <acronym>ZFS</acronym> 版本 5000 與功能旗標,新的功能旗標 (Feature flags) 系統有更佳的相容性,能夠與其他人實作的 <acronym>ZFS</acronym> 相容。</para> + </note></entry> </row> <row> - <entry xml:id="zfs-term-vdev" xml:lang="en">vdev Types</entry> + <entry xml:id="zfs-term-vdev">vdev 型態 (vdev Types)</entry> - <entry xml:lang="en">A pool is made up of one or more vdevs, which - themselves can be a single disk or a group of disks, in - the case of a <acronym>RAID</acronym> transform. When - multiple vdevs are used, <acronym>ZFS</acronym> spreads - data across the vdevs to increase performance and - maximize usable space. - - <itemizedlist> + <entry>儲存池是由一個或多個 vdev 所組成,vdev 可以是一個磁碟或是 <acronym>RAID</acronym> Transform 的磁碟群組。當使用多個 vdev,<acronym>ZFS</acronym> 可以分散資料到各個 vdev 來增加效能與最大的可用空間。<itemizedlist> <listitem> - <para xml:id="zfs-term-vdev-disk" xml:lang="en"><emphasis>Disk</emphasis> - - The most basic type of vdev is a standard block - device. This can be an entire disk (such as - <filename><replaceable>/dev/ada0</replaceable></filename> - or - <filename><replaceable>/dev/da0</replaceable></filename>) - or a partition - (<filename><replaceable>/dev/ada0p3</replaceable></filename>). - On FreeBSD, there is no performance penalty for using - a partition rather than the entire disk. This - differs from recommendations made by the Solaris - documentation.</para> + <para xml:id="zfs-term-vdev-disk"><emphasis>磁碟 (Disk)</emphasis> - 最基本的 vdev 型態便是一個標準的資料區塊裝置,這可以是一整個磁碟 (例如 <filename><replaceable>/dev/ada0</replaceable></filename> 或 <filename><replaceable>/dev/da0</replaceable></filename>) 或一個分割區 (<filename><replaceable>/dev/ada0p3</replaceable></filename>)。在 FreeBSD 上,使用分割區來替代整個磁碟不會影響效能,這可能與 Solaris 說明文件所建議的有所不同。</para> </listitem> <listitem> - <para xml:id="zfs-term-vdev-file" xml:lang="en"><emphasis>File</emphasis> - - In addition to disks, <acronym>ZFS</acronym> - pools can be backed by regular files, this is - especially useful for testing and experimentation. - Use the full path to the file as the device path - in <command>zpool create</command>. All vdevs must be - at least 128 MB in size.</para> + <para xml:id="zfs-term-vdev-file"><emphasis>檔案 (File)</emphasis> - 除了磁碟外,<acronym>ZFS</acronym> 儲存池可以使用一般檔案為基礎,這在測試與實驗時特別有用。在 <command>zpool create</command> 時使用檔案的完整路徑作為裝置路徑。所有 vdev 必須至少有 128 MB 的大小。</para> </listitem> <listitem> - <para xml:id="zfs-term-vdev-mirror" xml:lang="en"><emphasis>Mirror</emphasis> - - When creating a mirror, specify the - <literal>mirror</literal> keyword followed by the - list of member devices for the mirror. A mirror - consists of two or more devices, all data will be - written to all member devices. A mirror vdev will - only hold as much data as its smallest member. A - mirror vdev can withstand the failure of all but - one of its members without losing any data.</para> + <para xml:id="zfs-term-vdev-mirror"><emphasis>鏡像 (Mirror)</emphasis> - 要建立鏡像,需使用 <literal>mirror</literal> 關鍵字,後面接著要做為該鏡像成員裝置的清單。一個鏡像需要由兩個或多個裝置來組成,所有的資料都會被寫入到所有的成員裝置。鏡像 vdev 可以對抗所有成員故障只剩其中一個而不損失任何資料。</para> <note> - <para xml:lang="en">A regular single disk vdev can be upgraded - to a mirror vdev at any time with - <command>zpool - <link linkend="zfs-zpool-attach">attach</link></command>.</para> + <para>正常單一磁碟的 vdev 可以使用 <command>zpool <link linkend="zfs-zpool-attach">attach</link></command> 隨時升級成為鏡像 vdev。</para> </note> </listitem> <listitem> - <para xml:id="zfs-term-vdev-raidz" xml:lang="en"><emphasis><acronym>RAID-Z</acronym></emphasis> - - <acronym>ZFS</acronym> implements - <acronym>RAID-Z</acronym>, a variation on standard - <acronym>RAID-5</acronym> that offers better - distribution of parity and eliminates the - <quote><acronym>RAID-5</acronym> write - hole</quote> in which the data and parity - information become inconsistent after an - unexpected restart. <acronym>ZFS</acronym> - supports three levels of <acronym>RAID-Z</acronym> - which provide varying levels of redundancy in - exchange for decreasing levels of usable storage. - The types are named <acronym>RAID-Z1</acronym> - through <acronym>RAID-Z3</acronym> based on the - number of parity devices in the array and the - number of disks which can fail while the pool - remains operational.</para> - - <para xml:lang="en">In a <acronym>RAID-Z1</acronym> configuration - with four disks, each 1 TB, usable storage is - 3 TB and the pool will still be able to - operate in degraded mode with one faulted disk. - If an additional disk goes offline before the - faulted disk is replaced and resilvered, all data - in the pool can be lost.</para> - - <para xml:lang="en">In a <acronym>RAID-Z3</acronym> configuration - with eight disks of 1 TB, the volume will - provide 5 TB of usable space and still be - able to operate with three faulted disks. <trademark>Sun</trademark> - recommends no more than nine disks in a single - vdev. If the configuration has more disks, it is - recommended to divide them into separate vdevs and - the pool data will be striped across them.</para> - - <para xml:lang="en">A configuration of two - <acronym>RAID-Z2</acronym> vdevs consisting of 8 - disks each would create something similar to a - <acronym>RAID-60</acronym> array. A - <acronym>RAID-Z</acronym> group's storage capacity - is approximately the size of the smallest disk - multiplied by the number of non-parity disks. - Four 1 TB disks in <acronym>RAID-Z1</acronym> - has an effective size of approximately 3 TB, - and an array of eight 1 TB disks in - <acronym>RAID-Z3</acronym> will yield 5 TB of - usable space.</para> + <para xml:id="zfs-term-vdev-raidz"><emphasis><acronym>RAID-Z</acronym></emphasis> - <acronym>ZFS</acronym> 實作了 <acronym>RAID-Z</acronym>,以標準的 <acronym>RAID-5</acronym> 修改而來,可提供奇偶校驗 (Parity) 更佳的分散性並去除了 <quote><acronym>RAID-5</acronym> write hole</quote> 導致在預期之外的重啟後資料與奇偶校驗資訊不一致的問題。<acronym>ZFS</acronym> 支援三個層級的 <acronym>RAID-Z</acronym>,可提供不同程度的備援來換取減少不同程度的可用空間,類型的名稱以陣列中奇偶校驗裝置的數量與儲存池可以容許磁碟故障的數量來命名,從 <acronym>RAID-Z1</acronym> 到 <acronym>RAID-Z3</acronym> 。</para> + + <para>在 <acronym>RAID-Z1</acronym> 配置 4 個磁碟,每個磁碟 1 TB,可用的儲存空間則為 3 TB,且若其中一個磁碟故障仍可以降級 (Degraded) 的模式運作,若在故障磁碟尚未更換並修復 (Resilver) 之前又有磁碟故障,所有在儲存池中的資料便會遺失。</para> + + <para>在 <acronym>RAID-Z3</acronym> 配置 8 個 1 TB 的磁碟,磁碟區將會可以提供 5 TB 的可用空間且在 3 個磁碟故障的情況下仍可運作。<trademark>Sun</trademark> 建議單一個 vdev 不要使用超過 9 個磁碟。若配置需要使用更多磁碟,建議分成兩個 vdev,這樣儲存池的資料便會分散到這兩個 vdev。</para> + + <para>使用兩個 <acronym>RAID-Z2</acronym> 各由 8 個磁碟組成的 vdev 的配置可以建立一個類似 <acronym>RAID-60</acronym> 的陣列。<acronym>RAID-Z</acronym> 群組的儲存空量會接近其中最小的磁碟乘上非奇偶校驗磁碟的數量。4 個 1 TB 磁碟在 <acronym>RAID-Z1</acronym> 會有接近 3 TB 的實際大小,且一個由 8 個 1 TB 磁碟組成的 <acronym>RAID-Z3</acronym> 陣列會有 5 TB 的可用空間。</para> </listitem> <listitem> - <para xml:id="zfs-term-vdev-spare" xml:lang="en"><emphasis>Spare</emphasis> - - <acronym>ZFS</acronym> has a special pseudo-vdev - type for keeping track of available hot spares. - Note that installed hot spares are not deployed - automatically; they must manually be configured to - replace the failed device using - <command>zfs replace</command>.</para> + <para xml:id="zfs-term-vdev-spare"><emphasis>備援 (Spare)</emphasis> - <acronym>ZFS</acronym> 有特殊的虛擬 vdev 型態可用來持續追蹤可用的熱備援裝置 (Hot spare)。注意,安裝的熱備援裝置並不會自動佈署,熱備援裝置需要手動使用 <command>zfs replace</command> 設定替換故障的裝置。</para> </listitem> <listitem> - <para xml:id="zfs-term-vdev-log" xml:lang="en"><emphasis>Log</emphasis> - - <acronym>ZFS</acronym> Log Devices, also known - as <acronym>ZFS</acronym> Intent Log (<link linkend="zfs-term-zil"><acronym>ZIL</acronym></link>) - move the intent log from the regular pool devices - to a dedicated device, typically an - <acronym>SSD</acronym>. Having a dedicated log - device can significantly improve the performance - of applications with a high volume of synchronous - writes, especially databases. Log devices can be - mirrored, but <acronym>RAID-Z</acronym> is not - supported. If multiple log devices are used, - writes will be load balanced across them.</para> + <para xml:id="zfs-term-vdev-log"><emphasis>日誌 (Log)</emphasis> - <acronym>ZFS</acronym> 記錄裝置,也被稱作 <acronym>ZFS</acronym> 意圖日誌 (ZFS Intent Log, <link linkend="zfs-term-zil"><acronym>ZIL</acronym></link>) 會從正常的儲存池裝置移動意圖日誌到獨立的裝置上,通常是一個 <acronym>SSD</acronym>。有了獨立的日誌裝置,可以明顯的增進有大量同步寫入應用程式的效能,特別是資料庫。日誌裝置可以做成鏡像,但不支援 <acronym>RAID-Z</acronym>,若使用多個日誌裝置,寫入動作會被負載平衡分散到這些裝置。</para> </listitem> <listitem> - <para xml:id="zfs-term-vdev-cache" xml:lang="en"><emphasis>Cache</emphasis> - - Adding a cache vdev to a pool will add the - storage of the cache to the <link linkend="zfs-term-l2arc"><acronym>L2ARC</acronym></link>. - Cache devices cannot be mirrored. Since a cache - device only stores additional copies of existing - data, there is no risk of data loss.</para> + <para xml:id="zfs-term-vdev-cache"><emphasis>快取 (Cache)</emphasis> - 加入快取 vdev 到儲存池可以增加儲存空間的 <link linkend="zfs-term-l2arc"><acronym>L2ARC</acronym></link> 快取。快取裝置無法做鏡像,因快取裝置只會儲存額外的現有資料的複本,並沒有資料遺失的風險。</para> </listitem> </itemizedlist></entry> </row> <row> - <entry xml:id="zfs-term-txg" xml:lang="en">Transaction Group - (<acronym>TXG</acronym>)</entry> - - <entry xml:lang="en">Transaction Groups are the way changed blocks are - grouped together and eventually written to the pool. - Transaction groups are the atomic unit that - <acronym>ZFS</acronym> uses to assert consistency. Each - transaction group is assigned a unique 64-bit - consecutive identifier. There can be up to three active - transaction groups at a time, one in each of these three - states: - - <itemizedlist> + <entry xml:id="zfs-term-txg">交易群組 (Transaction Group, <acronym>TXG</acronym>)</entry> + + <entry>交易群組是一種將更動的資料區塊包裝成一組的方式,最後再一次寫入到儲存池。交易群組是 <acronym>ZFS</acronym> 用來檢驗一致性的基本單位。每個交易群組會被分配一個獨一無二的 64-bit 連續代號。最多一次可以有三個活動中的交易群組,這三個交易群組的每一個都有這三種狀態:<itemizedlist> <listitem> - <para xml:lang="en"><emphasis>Open</emphasis> - When a new - transaction group is created, it is in the open - state, and accepts new writes. There is always - a transaction group in the open state, however the - transaction group may refuse new writes if it has - reached a limit. Once the open transaction group - has reached a limit, or the <link linkend="zfs-advanced-tuning-txg-timeout"><varname>vfs.zfs.txg.timeout</varname></link> - has been reached, the transaction group advances - to the next state.</para> + <para><emphasis>開放 (Open)</emphasis> - 新的交易群組建立之後便處於開放的狀態,可以接受新的寫入動作。永遠會有開放狀態的交易群組,即始交易群組可能會因到達上限而拒絕新的寫入動作。一但開放的交易群組到達上限或到達 <link linkend="zfs-advanced-tuning-txg-timeout"><varname>vfs.zfs.txg.timeout</varname></link>,交易群組便會繼續進入下一個狀態。</para> </listitem> <listitem> - <para xml:lang="en"><emphasis>Quiescing</emphasis> - A short state - that allows any pending operations to finish while - not blocking the creation of a new open - transaction group. Once all of the transactions - in the group have completed, the transaction group - advances to the final state.</para> + <para><emphasis>靜置中 (Quiescing)</emphasis> - 一個短暫的狀態,會等候任何未完成的操作完成,不會阻擋新開放的交易群組建立。一旦所有在群組中的交易完成,交易群組便會進入到最終狀態。</para> </listitem> <listitem> - <para xml:lang="en"><emphasis>Syncing</emphasis> - All of the data - in the transaction group is written to stable - storage. This process will in turn modify other - data, such as metadata and space maps, that will - also need to be written to stable storage. The - process of syncing involves multiple passes. The - first, all of the changed data blocks, is the - biggest, followed by the metadata, which may take - multiple passes to complete. Since allocating - space for the data blocks generates new metadata, - the syncing state cannot finish until a pass - completes that does not allocate any additional - space. The syncing state is also where - <emphasis>synctasks</emphasis> are completed. - Synctasks are administrative operations, such as - creating or destroying snapshots and datasets, - that modify the uberblock are completed. Once the - sync state is complete, the transaction group in - the quiescing state is advanced to the syncing - state.</para> + <para><emphasis>同步中 (Syncing)</emphasis> - 所有在交易群組中的資料會被寫任到穩定的儲存空間,這個程序會依序修改其他也需同樣寫入到穩定儲存空間的資料,如 Metadata 與空間對應表。同步的程多會牽涉多個循環,首先是同步所有更改的資料區塊,也是最大的部份,接著是 Metadata,這可能會需要多個循環來完成。由於要配置空間供資料區塊使用會產生新的 Metadata,同步中狀態在到達循環完成而不再需要分配任何額外空間的狀態前無法結束。同步中狀態也是完成 <emphasis>synctask</emphasis> 的地方,Synctask 是指管理操作,如:建立或摧毀快照與資料集,會修改 uberblock,也會在此時完成。同步狀態完成後,其他處於狀態中狀態的交易群組便會進入同步中狀態。</para> </listitem> - </itemizedlist> - - All administrative functions, such as <link linkend="zfs-term-snapshot"><command>snapshot</command></link> - are written as part of the transaction group. When a - synctask is created, it is added to the currently open - transaction group, and that group is advanced as quickly - as possible to the syncing state to reduce the - latency of administrative commands.</entry> + </itemizedlist> 所有管理功能如快照 (<link linkend="zfs-term-snapshot"><command>Snapshot</command></link>) 會作為交易群組的一部份寫入。當 synctask 建立之後,便會加入到目前開放的交易群組中,然後該群組會盡快的進入同步中狀態來減少管理指令的延遲。</entry> </row> <row> <entry xml:id="zfs-term-arc" xml:lang="en">Adaptive Replacement Cache (<acronym>ARC</acronym>)</entry> - <entry xml:lang="en"><acronym>ZFS</acronym> uses an Adaptive Replacement - Cache (<acronym>ARC</acronym>), rather than a more - traditional Least Recently Used (<acronym>LRU</acronym>) - cache. An <acronym>LRU</acronym> cache is a simple list - of items in the cache, sorted by when each object was - most recently used. New items are added to the top of - the list. When the cache is full, items from the - bottom of the list are evicted to make room for more - active objects. An <acronym>ARC</acronym> consists of - four lists; the Most Recently Used - (<acronym>MRU</acronym>) and Most Frequently Used - (<acronym>MFU</acronym>) objects, plus a ghost list for - each. These ghost lists track recently evicted objects - to prevent them from being added back to the cache. - This increases the cache hit ratio by avoiding objects - that have a history of only being used occasionally. - Another advantage of using both an - <acronym>MRU</acronym> and <acronym>MFU</acronym> is - that scanning an entire file system would normally evict - all data from an <acronym>MRU</acronym> or - <acronym>LRU</acronym> cache in favor of this freshly - accessed content. With <acronym>ZFS</acronym>, there is - also an <acronym>MFU</acronym> that only tracks the most - frequently used objects, and the cache of the most - commonly accessed blocks remains.</entry> + <entry><acronym>ZFS</acronym> 使用了自適應替換快取 (Adaptive Replacement Cache, <acronym>ARC</acronym>),而不是傳統的最近最少使用 (Least Recently Used, <acronym>LRU</acronym>) 快取,LRU 快取在快取中是一個簡單的項目清單,會依每個物件最近使用的時間來排序,新項會加入到清單的最上方,當快取額滿了便會去除清單最下方的項目來空出空間給較常使用的物件。<acronym>ARC</acronym> 結合了四種快取清單,最近最常使用 (Most Recently Used, <acronym>MRU</acronym>) 及最常使用 (Most Frequently Used, <acronym>MFU</acronym>) 物件加上兩個清單各自的幽靈清單 (Ghost list),這些幽靈清單會追蹤最近被去除的物件來避免又被加回到快取,避免過去只有偶爾被使用的物件加入清單可以增加快取的命中率。同時使用 <acronym>MRU</acronym> 及 <acronym>MFU</acronym> 的另外一個優點是掃描一個完整檔案系統可以去除在 <acronym>MRU</acronym> 或 <acronym>LRU</acronym> 快取中的所有資料,有利於這些才剛存取的內容。使用 <acronym>ZFS</acronym> 也有 <acronym>MFU</acronym> 可只追蹤最常使用的物件並保留最常被存取的資料區塊快取。</entry> </row> <row> <entry xml:id="zfs-term-l2arc" xml:lang="en"><acronym>L2ARC</acronym></entry> - <entry xml:lang="en"><acronym>L2ARC</acronym> is the second level - of the <acronym>ZFS</acronym> caching system. The - primary <acronym>ARC</acronym> is stored in - <acronym>RAM</acronym>. Since the amount of - available <acronym>RAM</acronym> is often limited, - <acronym>ZFS</acronym> can also use - <link linkend="zfs-term-vdev-cache">cache vdevs</link>. - Solid State Disks (<acronym>SSD</acronym>s) are often - used as these cache devices due to their higher speed - and lower latency compared to traditional spinning - disks. <acronym>L2ARC</acronym> is entirely optional, - but having one will significantly increase read speeds - for files that are cached on the <acronym>SSD</acronym> - instead of having to be read from the regular disks. - <acronym>L2ARC</acronym> can also speed up <link linkend="zfs-term-deduplication">deduplication</link> - because a <acronym>DDT</acronym> that does not fit in - <acronym>RAM</acronym> but does fit in the - <acronym>L2ARC</acronym> will be much faster than a - <acronym>DDT</acronym> that must be read from disk. The - rate at which data is added to the cache devices is - limited to prevent prematurely wearing out - <acronym>SSD</acronym>s with too many writes. Until the - cache is full (the first block has been evicted to make - room), writing to the <acronym>L2ARC</acronym> is - limited to the sum of the write limit and the boost - limit, and afterwards limited to the write limit. A - pair of <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> values control these rate limits. - <link linkend="zfs-advanced-tuning-l2arc_write_max"><varname>vfs.zfs.l2arc_write_max</varname></link> - controls how many bytes are written to the cache per - second, while <link linkend="zfs-advanced-tuning-l2arc_write_boost"><varname>vfs.zfs.l2arc_write_boost</varname></link> - adds to this limit during the - <quote>Turbo Warmup Phase</quote> (Write Boost).</entry> + <entry><acronym>L2ARC</acronym> 是 <acronym>ZFS</acronym> 快取系統的第二層,主要的 <acronym>ARC</acronym> 會儲存在 <acronym>RAM</acronym> 當中,但因為 <acronym>RAM</acronym> 可用的空間量通常有限,因此 <acronym>ZFS</acronym> 也可以使用 <link linkend="zfs-term-vdev-cache">快取 vdev (Cache vdev)</link>。固態磁碟 (Solid State Disk, <acronym>SSD</acronym>) 常被拿來此處作為快取裝置,因為比起傳統旋轉碟片的磁碟,固體磁碟有較快的速度與較低的延遲。<acronym>L2ARC</acronym> 是選用的,但使用可以明顯增進那些已使用 <acronym>SSD</acronym> 快取的檔案讀取速度,無須從一般磁碟讀取。<acronym>L2ARC</acronym> 也同樣可以加速去重複 (<link linkend="zfs-term-deduplication">Deduplication</link>),因為 <acronym>DDT</acronym> 並不適合放在 <acronym>RAM</acronym>,但適合放在 <acronym>L2ARC</acronym>,比起要從磁碟讀取,可以加快不少速度。為了避免 <acronym>SSD</acronym> 因寫入次速過多而過早耗損,加入到快取裝置的資料速率會被限制,直到快取用盡 (去除第一個資料區塊來騰出空間) 之前,寫入到 <acronym>L2ARC</acronym> 的資料速率會限制在寫入限制 (Write limit) 與加速限制 (Boost limit) 的總合,之後則會限制為寫入限制,可以控制這兩個速度限制的 <citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry> 數值分別為 <link linkend="zfs-advanced-tuning-l2arc_write_max"><varname>vfs.zfs.l2arc_write_max</varname></link> 控制每秒有多少數位元組可寫入到快取,而 <link linkend="zfs-advanced-tuning-l2arc_write_boost"><varname>vfs.zfs.l2arc_write_boost</varname></link> 可在 <quote>渦輪預熱階段</quote> (即寫入加速) 時增加寫入限制。</entry> </row> <row> <entry xml:id="zfs-term-zil" xml:lang="en"><acronym>ZIL</acronym></entry> - <entry xml:lang="en"><acronym>ZIL</acronym> accelerates synchronous - transactions by using storage devices like - <acronym>SSD</acronym>s that are faster than those used - in the main storage pool. When an application requests - a synchronous write (a guarantee that the data has been - safely stored to disk rather than merely cached to be - written later), the data is written to the faster - <acronym>ZIL</acronym> storage, then later flushed out - to the regular disks. This greatly reduces latency and - improves performance. Only synchronous workloads like - databases will benefit from a <acronym>ZIL</acronym>. - Regular asynchronous writes such as copying files will - not use the <acronym>ZIL</acronym> at all.</entry> + <entry><acronym>ZIL</acronym> 會使用儲存裝置,例如,比那些用在主要儲存池還快的 <acronym>SSD</acronym> 來加速同步交易 (Synchronous transaction)。當應用程式請求做一個同步的寫入時 (保証資料會安全的儲存到磁碟,而不是先快取稍後再寫入),資料會先寫入到速度較快的 <acronym>ZIL</acronym> 儲存空間,之後再一併寫入到一般的磁碟。這可大量的減少延遲並增進效能。<acronym>ZIL</acronym> 只會有利於使用像資料庫這類的同步工作,一般非同步的寫入像複製檔案,則完全不會用到 <acronym>ZIL</acronym>。</entry> </row> <row> - <entry xml:id="zfs-term-cow" xml:lang="en">Copy-On-Write</entry> - - <entry xml:lang="en">Unlike a traditional file system, when data is - overwritten on <acronym>ZFS</acronym>, the new data is - written to a different block rather than overwriting the - old data in place. Only when this write is complete is - the metadata then updated to point to the new location. - In the event of a shorn write (a system crash or power - loss in the middle of writing a file), the entire - original contents of the file are still available and - the incomplete write is discarded. This also means that - <acronym>ZFS</acronym> does not require a <citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry> - after an unexpected shutdown.</entry> + <entry xml:id="zfs-term-cow">寫入時複製 (Copy-On-Write)</entry> + + <entry>不像傳統的檔案系統,在 <acronym>ZFS</acronym>,當資料要被覆寫時,不會直接覆寫舊資料所在的位置,而是將新資料會寫入到另一個資料區塊,只在資料寫入完成後才會更新 Metadata 指向新的位置。因此,在發生寫入中斷 (在寫入檔案的過程中系統當機或電源中斷) 時,原來檔案的完整內容並不會遺失,只會放棄未寫入完成的新資料,這也意謂著 <acronym>ZFS</acronym> 在發生預期之外的關機後不需要做 <citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry>。</entry> </row> <row> - <entry xml:id="zfs-term-dataset" xml:lang="en">Dataset</entry> - - <entry xml:lang="en"><emphasis>Dataset</emphasis> is the generic term - for a <acronym>ZFS</acronym> file system, volume, - snapshot or clone. Each dataset has a unique name in - the format - <replaceable>poolname/path@snapshot</replaceable>. - The root of the pool is technically a dataset as well. - Child datasets are named hierarchically like - directories. For example, - <replaceable>mypool/home</replaceable>, the home - dataset, is a child of <replaceable>mypool</replaceable> - and inherits properties from it. This can be expanded - further by creating - <replaceable>mypool/home/user</replaceable>. This - grandchild dataset will inherit properties from the - parent and grandparent. Properties on a child can be - set to override the defaults inherited from the parents - and grandparents. Administration of datasets and their - children can be - <link linkend="zfs-zfs-allow">delegated</link>.</entry> + <entry xml:id="zfs-term-dataset">資料集 (Dataset)</entry> + + <entry><emphasis>資料集 (Dataset)</emphasis> 是 <acronym>ZFS</acronym> 檔案系統、磁碟區、快照或複本的通用術語。每個資料集都有獨一無二的名稱使用 <replaceable>poolname/path@snapshot</replaceable> 格式。儲存池的根部技術上來說也算一個資料集,子資料集會採用像目錄一樣的層級來命名,例如 <replaceable>mypool/home</replaceable>,home 資料集是 <replaceable>mypool</replaceable> 的子資料集並且會繼承其屬性。這可以在往後繼續擴展成 <replaceable>mypool/home/user</replaceable>,這個孫資料集會繼承其父及祖父的屬性。在子資料集的屬性可以覆蓋預設繼承自父及祖父的屬性。資料集及其子資料級的管理權限可以委託 (<link linkend="zfs-zfs-allow">Delegate</link>) 給他人。</entry> </row> <row> - <entry xml:id="zfs-term-filesystem" xml:lang="en">File system</entry> - - <entry xml:lang="en">A <acronym>ZFS</acronym> dataset is most often used - as a file system. Like most other file systems, a - <acronym>ZFS</acronym> file system is mounted somewhere - in the systems directory hierarchy and contains files - and directories of its own with permissions, flags, and - other metadata.</entry> + <entry xml:id="zfs-term-filesystem">檔案系統 (File system)</entry> + + <entry><acronym>ZFS</acronym> 資料集最常被當做檔案系統使用。如同大多數其他的檔案系統,<acronym>ZFS</acronym> 檔案系統會被掛載在系統目錄層級的某一處且內含各自擁有權限、旗標及 Metadata 的檔案與目錄。</entry> </row> <row> - <entry xml:id="zfs-term-volume" xml:lang="en">Volume</entry> - - <entry xml:lang="en">In additional to regular file system datasets, - <acronym>ZFS</acronym> can also create volumes, which - are block devices. Volumes have many of the same - features, including copy-on-write, snapshots, clones, - and checksumming. Volumes can be useful for running - other file system formats on top of - <acronym>ZFS</acronym>, such as <acronym>UFS</acronym> - virtualization, or exporting <acronym>iSCSI</acronym> - extents.</entry> + <entry xml:id="zfs-term-volume">磁碟區 (Volume)</entry> + + <entry>除了一般的檔案系統資料集之外,<acronym>ZFS</acronym> 也可以建立磁碟區 (Volume),磁碟區是資料區塊裝置。磁碟區有許多與資料集相似的功能,包含複製時寫入、快照、複本以及資料校驗。要在 <acronym>ZFS</acronym> 的頂層執行其他檔案系統格式時使用磁碟區非常有用,例如 <acronym>UFS</acronym> 虛擬化或匯出 <acronym>iSCSI</acronym> 延伸磁區 (Extent)。</entry> </row> <row> - <entry xml:id="zfs-term-snapshot" xml:lang="en">Snapshot</entry> - - <entry xml:lang="en">The - <link linkend="zfs-term-cow">copy-on-write</link> - (<acronym>COW</acronym>) design of - <acronym>ZFS</acronym> allows for nearly instantaneous, - consistent snapshots with arbitrary names. After taking - a snapshot of a dataset, or a recursive snapshot of a - parent dataset that will include all child datasets, new - data is written to new blocks, but the old blocks are - not reclaimed as free space. The snapshot contains - the original version of the file system, and the live - file system contains any changes made since the snapshot - was taken. No additional space is used. As new data is - written to the live file system, new blocks are - allocated to store this data. The apparent size of the - snapshot will grow as the blocks are no longer used in - the live file system, but only in the snapshot. These - snapshots can be mounted read only to allow for the - recovery of previous versions of files. It is also - possible to - <link linkend="zfs-zfs-snapshot">rollback</link> a live - file system to a specific snapshot, undoing any changes - that took place after the snapshot was taken. Each - block in the pool has a reference counter which keeps - track of how many snapshots, clones, datasets, or - volumes make use of that block. As files and snapshots - are deleted, the reference count is decremented. When a - block is no longer referenced, it is reclaimed as free - space. Snapshots can also be marked with a - <link linkend="zfs-zfs-snapshot">hold</link>. When a - snapshot is held, any attempt to destroy it will return - an <literal>EBUSY</literal> error. Each snapshot can - have multiple holds, each with a unique name. The - <link linkend="zfs-zfs-snapshot">release</link> command - removes the hold so the snapshot can deleted. Snapshots - can be taken on volumes, but they can only be cloned or - rolled back, not mounted independently.</entry> + <entry xml:id="zfs-term-snapshot">快照 (Snapshot)</entry> + + <entry><acronym>ZFS</acronym> 的寫入時複製 (<link linkend="zfs-term-cow">Copy-On-Write</link>, <acronym>COW</acronym>) 設計可以使用任意的名稱做到幾乎即時、一致的快照。在製做資料集的快照或父資料集遞迴快照 (會包含其所有子資料集) 之後,新的資料會寫入到資的資料區塊,但不會回收舊的資料區塊為可用空間,快照中會使用原版本的檔案系統,而快照之後所做的變更則會儲存在目前的檔案系統,因此不會重複使用額外的空間。當新的資料寫入到目前的檔案系統,便會配置新的資料區塊來儲存這些資料。快照表面大小 (Apparent size) 會隨著在目前檔案系統停止使用的資料區塊而成長,但僅限於快照。可以用唯讀的方式掛載這些快照來復原先前版本的檔案,也可以還原 (<link linkend="zfs-zfs-snapshot">Rollback</link>) 目前的檔案系統到指定的快照,來還原任何在快照之後所做的變更。每個在儲存池中的資料區塊都會有一個參考記數器,可以用來持續追蹤有多少快照、複本、資料集或是磁碟區使用這個資料區塊,當刪除檔案與快照參照的計數變會滅少,直到沒有任何東西參考這個資料區塊才會被回收為可用空間。快照也可使用 <link linkend="zfs-zfs-snapshot">hold</link> 來標記,檔標記為 hold 時,任何嘗試要刪除該快照的動作便會回傳 <literal>EBUSY</literal> 的錯誤,每個快照可以標記多個不同唯一名稱的 hold,而 <link linkend="zfs-zfs-snapshot">release</link> 指令則可以移除 hold,這樣才可刪除快照。在磁碟區上快可以製作快照,但只能用來複製或還原,無法獨立掛載。</entry> </row> <row> - <entry xml:id="zfs-term-clone" xml:lang="en">Clone</entry> - - <entry xml:lang="en">Snapshots can also be cloned. A clone is a - writable version of a snapshot, allowing the file system - to be forked as a new dataset. As with a snapshot, a - clone initially consumes no additional space. As - new data is written to a clone and new blocks are - allocated, the apparent size of the clone grows. When - blocks are overwritten in the cloned file system or - volume, the reference count on the previous block is - decremented. The snapshot upon which a clone is based - cannot be deleted because the clone depends on it. The - snapshot is the parent, and the clone is the child. - Clones can be <emphasis>promoted</emphasis>, reversing - this dependency and making the clone the parent and the - previous parent the child. This operation requires no - additional space. Because the amount of space used by - the parent and child is reversed, existing quotas and - reservations might be affected.</entry> + <entry xml:id="zfs-term-clone">複本 (Clone)</entry> + + <entry>快照也可以做複本,複本是可寫入版本的快照,讓檔案系統可分支成為新的資料集。如同快照,複本一開始不會消耗任何額外空間,隨著新資料寫入到複本會配置新的資料區塊,複本的表面大小 (Apparent size) 才會成長,當在複本檔案系統或磁碟區的資料區塊被覆寫時,在先前資料區塊的參考計數則會減少。建立複本所使用的快照無法被刪除,因為複本會相依該快照,快照為父,複本為子。複本可以被提升 (<emphasis>promoted</emphasis>)、反轉相依關係,來讓複本成為父,之前的父變為子,這個操作不需要額外的空間。由於反轉了父與子使用的空間量,所以可能會影響既有的配額 (Quota) 與保留空間 (Reservation)。</entry> </row> <row> - <entry xml:id="zfs-term-checksum" xml:lang="en">Checksum</entry> - - <entry xml:lang="en">Every block that is allocated is also checksummed. - The checksum algorithm used is a per-dataset property, - see <link linkend="zfs-zfs-set"><command>set</command></link>. - The checksum of each block is transparently validated as - it is read, allowing <acronym>ZFS</acronym> to detect - silent corruption. If the data that is read does not - match the expected checksum, <acronym>ZFS</acronym> will - attempt to recover the data from any available - redundancy, like mirrors or <acronym>RAID-Z</acronym>). - Validation of all checksums can be triggered with <link linkend="zfs-term-scrub"><command>scrub</command></link>. - Checksum algorithms include: - - <itemizedlist> + <entry xml:id="zfs-term-checksum">校驗碼 (Checksum)</entry> + + <entry>配置每個資料區塊快的同時也會做資料校驗,資料校驗用的演算法是依資料集屬性而有所不同的,請參考 <link linkend="zfs-zfs-set"><command>set</command></link>。每個資料區塊會在讀取的過成便完成校驗,讓 <acronym>ZFS</acronym> 可以偵測到隱藏的損壞,若資料不符合預期的校驗碼,<acronym>ZFS</acronym> 會嘗試從任何可用的備援來還原資料,例如鏡像 (Mirror) 或 <acronym>RAID-Z</acronym>。要檢驗所有資料的校驗碼可以使用清潔 (<link linkend="zfs-term-scrub"><command>Scrub</command></link>),資料校驗的演算法有:<itemizedlist> <listitem> - <para xml:lang="en"><literal>fletcher2</literal></para> + <para><literal>fletcher2</literal></para> </listitem> <listitem> - <para xml:lang="en"><literal>fletcher4</literal></para> + <para><literal>fletcher4</literal></para> </listitem> <listitem> - <para xml:lang="en"><literal>sha256</literal></para> + <para><literal>sha256</literal></para> </listitem> - </itemizedlist> - - The <literal>fletcher</literal> algorithms are faster, - but <literal>sha256</literal> is a strong cryptographic - hash and has a much lower chance of collisions at the - cost of some performance. Checksums can be disabled, - but it is not recommended.</entry> + </itemizedlist> <literal>fletcher</literal> 演算法最快,而 <literal>sha256</literal> 雖較消耗效能,但其有強大的密碼雜湊與較低的衝突率。也可關閉資料校驗,但並不建議。</entry> </row> <row> <entry xml:id="zfs-term-compression">壓縮 (Compression)</entry> - <entry xml:lang="en">Each dataset has a compression property, which - defaults to off. This property can be set to one of a - number of compression algorithms. This will cause all - new data that is written to the dataset to be - compressed. Beyond a reduction in space used, read and - write throughput often increases because fewer blocks - are read or written. - - <itemizedlist> + <entry>每個資料集都有壓縮 (Compression) 屬性,預設是關閉的,這個屬性可以設定使用以下幾個壓縮演算法的其中一個來壓縮寫入到資料集的新資料。壓縮除了減少空間使用量外,常也會增加讀取與寫入的吞吐量,因為會減少讀取與寫入的資料區塊。 <itemizedlist> <listitem xml:id="zfs-term-compression-lz4"> - <para xml:lang="en"><emphasis><acronym>LZ4</acronym></emphasis> - - Added in <acronym>ZFS</acronym> pool version - 5000 (feature flags), <acronym>LZ4</acronym> is - now the recommended compression algorithm. - <acronym>LZ4</acronym> compresses approximately - 50% faster than <acronym>LZJB</acronym> when - operating on compressible data, and is over three - times faster when operating on uncompressible - data. <acronym>LZ4</acronym> also decompresses - approximately 80% faster than - <acronym>LZJB</acronym>. On modern - <acronym>CPU</acronym>s, <acronym>LZ4</acronym> - can often compress at over 500 MB/s, and - decompress at over 1.5 GB/s (per single CPU - core).</para> + <para><emphasis><acronym>LZ4</acronym></emphasis> - <acronym>ZFS</acronym> 儲存池版本 5000 (功能旗標) 後所增加,<acronym>LZ4</acronym> 現在是建議的壓縮演算法,在處理可壓縮的資料時 <acronym>LZ4</acronym> 壓縮比 <acronym>LZJB</acronym> 快將近 50%,在處理不可壓縮的資料時快將近三倍,<acronym>LZ4</acronym> 解壓縮也比 <acronym>LZJB</acronym> 將近 80%。在現代的 <acronym>CPU</acronym> 上,<acronym>LZ4</acronym> 經常平均可用 500 MB/s 的速度壓縮,而解壓縮可到達 1.5 GB/s (每個 CPU 核心)。</para> <note> - <para xml:lang="en"><acronym>LZ4</acronym> compression is - only available after FreeBSD 9.2.</para> + <para><acronym>LZ4</acronym> 壓縮只在 FreeBSD 9.2 之後可使用。</para> </note> </listitem> <listitem xml:id="zfs-term-compression-lzjb"> - <para xml:lang="en"><emphasis><acronym>LZJB</acronym></emphasis> - - The default compression algorithm. Created by - Jeff Bonwick (one of the original creators of - <acronym>ZFS</acronym>). <acronym>LZJB</acronym> - offers good compression with less - <acronym>CPU</acronym> overhead compared to - <acronym>GZIP</acronym>. In the future, the - default compression algorithm will likely change - to <acronym>LZ4</acronym>.</para> + <para><emphasis><acronym>LZJB</acronym></emphasis> - 預設的壓縮演算法。由 Jeff Bonwick 所開發 (<acronym>ZFS</acronym> 的創始人之一)。<acronym>LZJB</acronym>與 <acronym>GZIP</acronym> 相比,可以較低的 <acronym>CPU</acronym> 提供較佳的壓縮功能。在未來預設的壓縮演算法將會更換為 <acronym>LZ4</acronym>。</para> </listitem> <listitem xml:id="zfs-term-compression-gzip"> - <para xml:lang="en"><emphasis><acronym>GZIP</acronym></emphasis> - - A popular stream compression algorithm available - in <acronym>ZFS</acronym>. One of the main - advantages of using <acronym>GZIP</acronym> is its - configurable level of compression. When setting - the <literal>compress</literal> property, the - administrator can choose the level of compression, - ranging from <literal>gzip1</literal>, the lowest - level of compression, to <literal>gzip9</literal>, - the highest level of compression. This gives the - administrator control over how much - <acronym>CPU</acronym> time to trade for saved - disk space.</para> + <para><emphasis><acronym>GZIP</acronym></emphasis> - 在 <acronym>ZFS</acronym> 可用的熱門串流壓縮演算法。使用 <acronym>GZIP</acronym> 主要的優點之一便是可設定壓縮層級。當設定 <literal>compress</literal> 屬性,管理者可以選擇壓縮層級範圍從最低的壓縮層級 <literal>gzip1</literal> 到最高的壓縮層級 <literal>gzip9</literal>。這讓管理者可以控制要使用多少 <acronym>CPU</acronym> 來節省磁碟空間。</para> </listitem> <listitem xml:id="zfs-term-compression-zle"> - <para xml:lang="en"><emphasis><acronym>ZLE</acronym></emphasis> - - Zero Length Encoding is a special compression - algorithm that only compresses continuous runs of - zeros. This compression algorithm is only useful - when the dataset contains large blocks of - zeros.</para> + <para><emphasis><acronym>ZLE</acronym></emphasis> - 零長度編號是一個特殊的壓縮演算法,它只會壓縮連續的零。這種壓縮演算法只在資料集中含有大量為零的資料區塊時有用。</para> </listitem> </itemizedlist></entry> </row> <row> - <entry xml:id="zfs-term-copies" xml:lang="en">Copies</entry> - - <entry xml:lang="en">When set to a value greater than 1, the - <literal>copies</literal> property instructs - <acronym>ZFS</acronym> to maintain multiple copies of - each block in the - <link linkend="zfs-term-filesystem">File System</link> - or - <link linkend="zfs-term-volume">Volume</link>. Setting - this property on important datasets provides additional - redundancy from which to recover a block that does not - match its checksum. In pools without redundancy, the - copies feature is the only form of redundancy. The - copies feature can recover from a single bad sector or - other forms of minor corruption, but it does not protect - the pool from the loss of an entire disk.</entry> + <entry xml:id="zfs-term-copies">備份數 (Copies)</entry> + + <entry>當設定大於 1 的數值時,<literal>copies</literal> 屬性會指示 <acronym>ZFS</acronym> 備份每個在檔案系統 (<link linkend="zfs-term-filesystem">File System</link>) 或磁碟區 (<link linkend="zfs-term-volume">Volume</link>) 的資料區塊數份。在重要的資料集上設定這個屬性可以做額外的備援以在資料校驗碼不相符時可做復原。在沒有做備援的儲存池上,備份功能提供只是一種資料的備援方式,備份功能可以復原單一壞軌或其他情況的次要損壞,但無法復原儲存池中整個磁碟損壞所損失的資料。</entry> </row> <row> <entry xml:id="zfs-term-deduplication">去重複 (Deduplication)</entry> - <entry xml:lang="en">Checksums make it possible to detect duplicate - blocks of data as they are written. With deduplication, - the reference count of an existing, identical block is - increased, saving storage space. To detect duplicate - blocks, a deduplication table (<acronym>DDT</acronym>) - is kept in memory. The table contains a list of unique - checksums, the location of those blocks, and a reference - count. When new data is written, the checksum is - calculated and compared to the list. If a match is - found, the existing block is used. The - <acronym>SHA256</acronym> checksum algorithm is used - with deduplication to provide a secure cryptographic - hash. Deduplication is tunable. If - <literal>dedup</literal> is <literal>on</literal>, then - a matching checksum is assumed to mean that the data is - identical. If <literal>dedup</literal> is set to - <literal>verify</literal>, then the data in the two - blocks will be checked byte-for-byte to ensure it is - actually identical. If the data is not identical, the - hash collision will be noted and the two blocks will be - stored separately. Because <acronym>DDT</acronym> must - store the hash of each unique block, it consumes a very - large amount of memory. A general rule of thumb is - 5-6 GB of ram per 1 TB of deduplicated data). - In situations where it is not practical to have enough - <acronym>RAM</acronym> to keep the entire - <acronym>DDT</acronym> in memory, performance will - suffer greatly as the <acronym>DDT</acronym> must be - read from disk before each new block is written. - Deduplication can use <acronym>L2ARC</acronym> to store - the <acronym>DDT</acronym>, providing a middle ground - between fast system memory and slower disks. Consider - using compression instead, which often provides nearly - as much space savings without the additional memory - requirement.</entry> + <entry>校驗碼讓在寫入時可以偵測重複資料區塊,使用去重複,可以增加既有、完全相同的資料區塊參考數來節省儲存空間。要偵測重複的資料區塊需要在記憶體中儲存去重複資料表 (Deduplication table, <acronym>DDT</acronym>),這個資料表中會有唯一的校驗碼清單、這些資料區塊的所在位置以及參考數。當寫入新資料時,便會計算校驗碼然後比對清單中是否有符合的既有資料區塊已在清單。去重複使用了 <acronym>SHA256</acronym> 校驗碼演算法來提供一個安全的加密雜湊,去重複功能是可以調校的,若 <literal>dedup</literal> 設為 <literal>on</literal> 只要符合校驗碼便會認為資料完全相同,若 <literal>dedup</literal> 設為 <literal>verify</literal> 則會一個一個位元檢查兩個資料區塊的資料來確保資料真的完全相同,若資料不同便會註記與雜湊衝突並會分別儲存兩個資料區塊。由於 <acronym>DDT</acronym> 須要儲存每個唯一資料區塊的雜湊,所以會消耗大量的記憶體,一般的經驗法則是每 1 TB 的去重複資料需要使用 5-6 GB 的記憶體。由於要有足夠的 <acronym>RAM</acronym> 來儲存整個 <acronym>DDT</acronym> 在實務上並不實際,導致在每個新資料區塊寫入前需要從磁碟來讀取 <acronym>DDT</acronym> 會對效能有很大的影響,去重複功能可以使用 <acronym>L2ARC</acronym> 儲存 <acronym>DDT</acronym> 以在快速的系統記憶體及較慢的磁碟之間取得一個平衡點。也可以考慮使用壓縮功能來取代此功能,因為壓縮也能節省相近的空間使用量而不需要大量額外的記憶體。</entry> </row> <row> - <entry xml:id="zfs-term-scrub" xml:lang="en">Scrub</entry> - - <entry xml:lang="en">Instead of a consistency check like <citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry>, - <acronym>ZFS</acronym> has <command>scrub</command>. - <command>scrub</command> reads all data blocks stored on - the pool and verifies their checksums against the known - good checksums stored in the metadata. A periodic check - of all the data stored on the pool ensures the recovery - of any corrupted blocks before they are needed. A scrub - is not required after an unclean shutdown, but is - recommended at least once every three months. The - checksum of each block is verified as blocks are read - during normal use, but a scrub makes certain that even - infrequently used blocks are checked for silent - corruption. Data security is improved, especially in - archival storage situations. The relative priority of - <command>scrub</command> can be adjusted with <link linkend="zfs-advanced-tuning-scrub_delay"><varname>vfs.zfs.scrub_delay</varname></link> - to prevent the scrub from degrading the performance of - other workloads on the pool.</entry> + <entry xml:id="zfs-term-scrub">清潔 (Scrub)</entry> + + <entry><acronym>ZFS</acronym> 有 <command>scrub</command> 來替代 <citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry> 來做一致性的檢查。<command>scrub</command> 會讀取所有儲存在儲存池中的資料區塊並且根據儲存在 Metadata 中已知良好的校驗碼來檢驗這些資料區塊的校驗碼,定期檢查儲存池中儲存的所有資料可以確保實際使用這些資料前已將所有損壞的資料區塊復原。在不正常的關閉之後並不需要做清潔動作,但建議每三個月至少執行一次。在正常使用讀取時便會檢查每個資料區塊的校驗碼,但清潔動作可以確保那些不常用的資料也會被檢查以避免隱藏的損壞,如此便能增進資料的安全性,特別是對用來保存資料的儲存裝置。<command>scrub</command> 可以使用 <link linkend="zfs-advanced-tuning-scrub_delay"><varname>vfs.zfs.scrub_delay</varname></link> 調整相對優先權來避免清潔動作降低儲存池上其他工作的效率。</entry> </row> <row> - <entry xml:id="zfs-term-quota" xml:lang="en">Dataset Quota</entry> + <entry xml:id="zfs-term-quota">資料集配額 (Dataset Quota)</entry> - <entry xml:lang="en"><acronym>ZFS</acronym> provides very fast and - accurate dataset, user, and group space accounting in - addition to quotas and space reservations. This gives - the administrator fine grained control over how space is - allocated and allows space to be reserved for critical - file systems. - - <para xml:lang="en"><acronym>ZFS</acronym> supports different types of + <entry>除了配額及空間保留外,<acronym>ZFS</acronym> 提供非常快速且準確的資料集、使用者及群組空間的計算功能,這可讓管理者調整空間配置的方式且可為重要的檔案系統保留空間。 <para><acronym>ZFS</acronym> supports different types of quotas: the dataset quota, the <link linkend="zfs-term-refquota">reference quota (<acronym>refquota</acronym>)</link>, the <link linkend="zfs-term-userquota">user quota</link>, and the <link linkend="zfs-term-groupquota">group - quota</link>.</para> - - <para xml:lang="en">Quotas limit the amount of space that a dataset - and all of its descendants, including snapshots of the - dataset, child datasets, and the snapshots of those - datasets, can consume.</para> - - <note> - <para xml:lang="en">Quotas cannot be set on volumes, as the - <literal>volsize</literal> property acts as an - implicit quota.</para> + quota</link>.</para> <para>配額會限制資料集及後裔包含資料集的快照、子資料集及子資料集的快照能使用的空間量。</para> <note> + <para>磁碟區上無法設定配額,因為 <literal>volsize</literal> 屬性已經被用來做內定的配額。</para> </note></entry> </row> <row> - <entry xml:id="zfs-term-refquota" xml:lang="en">Reference - Quota</entry> - - <entry xml:lang="en">A reference quota limits the amount of space a - dataset can consume by enforcing a hard limit. However, - this hard limit includes only space that the dataset - references and does not include space used by - descendants, such as file systems or snapshots.</entry> + <entry xml:id="zfs-term-refquota">參考配額 (Reference Quota)</entry> + + <entry>參考配額可以設定一個硬性限制 (Hard limit) 來限制資料集能使用的空間量,而這個硬性限制只包含了資料集參考的空間,並不含其後裔所使用的空間,如:檔案系統或快照。</entry> </row> <row> - <entry xml:id="zfs-term-userquota" xml:lang="en">User - Quota</entry> + <entry xml:id="zfs-term-userquota">使用者配額 (User Quota)</entry> - <entry xml:lang="en">User quotas are useful to limit the amount of space - that can be used by the specified user.</entry> + <entry>使用者配額在用來限制特定使用者能使用的空間量時非常有用。</entry> </row> <row> - <entry xml:id="zfs-term-groupquota" xml:lang="en">Group - Quota</entry> + <entry xml:id="zfs-term-groupquota">群組配額 (Group Quota)</entry> - <entry xml:lang="en">The group quota limits the amount of space that a - specified group can consume.</entry> + <entry>群組配額可以限制特定群組能使用的空間量。</entry> </row> <row> - <entry xml:id="zfs-term-reservation" xml:lang="en">Dataset - Reservation</entry> - - <entry xml:lang="en">The <literal>reservation</literal> property makes - it possible to guarantee a minimum amount of space for a - specific dataset and its descendants. If a 10 GB - reservation is set on - <filename>storage/home/bob</filename>, and another - dataset tries to use all of the free space, at least - 10 GB of space is reserved for this dataset. If a - snapshot is taken of - <filename>storage/home/bob</filename>, the space used by - that snapshot is counted against the reservation. The - <link linkend="zfs-term-refreservation"><literal>refreservation</literal></link> - property works in a similar way, but it - <emphasis>excludes</emphasis> descendants like - snapshots. - - <para xml:lang="en">Reservations of any sort are useful in many - situations, such as planning and testing the - suitability of disk space allocation in a new system, - or ensuring that enough space is available on file - systems for audio logs or system recovery procedures - and files.</para> - </entry> + <entry xml:id="zfs-term-reservation">資料集保留空間 (Dataset Reservation)</entry> + + <entry><literal>reservation</literal> 屬性可以確保對特定資料集及其後裔最小可用的空間量,若在 <filename>storage/home/bob</filename> 設定 10 GB 的保留空間且其他資料集嘗試使用所有剩餘的空間時,會保留至少 10 GB 的空間供這個資料集使用。若要製作 <filename>storage/home/bob</filename> 的快照,該快照所使用的空間也會被列入保留空間計算。 <link linkend="zfs-term-refreservation"><literal>refreservation</literal></link> 屬性也以類似的方式運作,但是他 <emphasis>不包含</emphasis> 後裔,例如:快照。 <para>不管那一種保留空間在許多情境皆很有用,例如:要規劃與測試磁碟空間配置在新系統上的適應性,或是確保有足夠的空間供稽查日誌或系統還原程序及檔案使用。</para></entry> </row> <row> - <entry xml:id="zfs-term-refreservation" xml:lang="en">Reference - Reservation</entry> - - <entry xml:lang="en">The <literal>refreservation</literal> property - makes it possible to guarantee a minimum amount of - space for the use of a specific dataset - <emphasis>excluding</emphasis> its descendants. This - means that if a 10 GB reservation is set on - <filename>storage/home/bob</filename>, and another - dataset tries to use all of the free space, at least - 10 GB of space is reserved for this dataset. In - contrast to a regular - <link linkend="zfs-term-reservation">reservation</link>, - space used by snapshots and descendant datasets is not - counted against the reservation. For example, if a - snapshot is taken of - <filename>storage/home/bob</filename>, enough disk space - must exist outside of the - <literal>refreservation</literal> amount for the - operation to succeed. Descendants of the main data set - are not counted in the <literal>refreservation</literal> - amount and so do not encroach on the space set.</entry> + <entry xml:id="zfs-term-refreservation">參考保留空間 (Reference Reservation)</entry> + + <entry><literal>refreservation</literal> 屬性可以確保對特定資料集 <emphasis>不包含</emphasis> 其後裔最小可用的空間,這代表若在 <filename>storage/home/bob</filename> 設定 10 GB 的保留空間且其他資料集嘗試使用所有剩餘的空間時,會保留至少 10 GB 的空間供這個資料集使用。於正常 <link linkend="zfs-term-reservation">reservation</link> 不同的是,由快照及後裔資料集所使用的空間並不會列入保留空間計算。例如,若要製作一個 <filename>storage/home/bob</filename> 的快照,在 <literal>refreservation</literal> 空間之外必須要有足夠的空間才能成功完成這項操作,主資料集的後裔並不會列入 <literal>refreservation</literal> 空間額計算,所以也不會佔用保留空間。</entry> </row> <row> - <entry xml:id="zfs-term-resilver" xml:lang="en">Resilver</entry> - - <entry xml:lang="en">When a disk fails and is replaced, the new disk - must be filled with the data that was lost. The process - of using the parity information distributed across the - remaining drives to calculate and write the missing data - to the new drive is called - <emphasis>resilvering</emphasis>.</entry> + <entry xml:id="zfs-term-resilver">修復 (Resilver)</entry> + + <entry>當有磁碟故障且被更換後,新的磁碟必須回存先前所遺失的資料,會使用分散在其他磁碟上的奇偶校驗資訊來計算並寫入遺失的資料到新的磁碟機的這個程序稱作 <emphasis>修復 (Resilvering)</emphasis>。</entry> </row> <row> - <entry xml:id="zfs-term-online" xml:lang="en">Online</entry> + <entry xml:id="zfs-term-online">上線 (Online)</entry> - <entry xml:lang="en">A pool or vdev in the <literal>Online</literal> - state has all of its member devices connected and fully - operational. Individual devices in the - <literal>Online</literal> state are functioning - normally.</entry> + <entry>一個儲存池或 vdev 處於線上 (<literal>Online</literal>) 狀態時代表所有該裝置的成員均已連結且正常運作。個別裝置處於線上 (<literal>Online</literal>) 狀態時代表功能正常。</entry> </row> <row> - <entry xml:id="zfs-term-offline" xml:lang="en">Offline</entry> - - <entry xml:lang="en">Individual devices can be put in an - <literal>Offline</literal> state by the administrator if - there is sufficient redundancy to avoid putting the pool - or vdev into a - <link linkend="zfs-term-faulted">Faulted</link> state. - An administrator may choose to offline a disk in - preparation for replacing it, or to make it easier to - identify.</entry> + <entry xml:id="zfs-term-offline">離線 (Offline)</entry> + + <entry>若有足夠的備援可避免儲存池或 vdev 進入故障 (<link linkend="zfs-term-faulted">Faulted</link>) 狀態,個別裝置若可由管理者設為離線 (<literal>Offline</literal>) 狀態,管理者可以選擇要設定那一個磁碟為離線來準備更換或是讓其更容易辨識。</entry> </row> <row> - <entry xml:id="zfs-term-degraded" xml:lang="en">Degraded</entry> - - <entry xml:lang="en">A pool or vdev in the <literal>Degraded</literal> - state has one or more disks that have been disconnected - or have failed. The pool is still usable, but if - additional devices fail, the pool could become - unrecoverable. Reconnecting the missing devices or - replacing the failed disks will return the pool to an - <link linkend="zfs-term-online">Online</link> state - after the reconnected or new device has completed the - <link linkend="zfs-term-resilver">Resilver</link> - process.</entry> + <entry xml:id="zfs-term-degraded">降級 (Degraded)</entry> + + <entry>一個儲存池或 vdev 處於降級 (<literal>Degraded</literal>) 狀態代表其有一個或多個磁碟已斷線或故障,此時儲存池仍可以使用,但只要再有其他的裝置故障,儲存池會無法復原。重新連線缺少的裝置或更換故障的磁碟,並在新裝置完成修復 (<link linkend="zfs-term-resilver">Resilver</link>) 程序可讓儲存池返回線上 (<link linkend="zfs-term-online">Online</link>) 狀態。</entry> </row> <row> - <entry xml:id="zfs-term-faulted" xml:lang="en">Faulted</entry> - - <entry xml:lang="en">A pool or vdev in the <literal>Faulted</literal> - state is no longer operational. The data on it can no - longer be accessed. A pool or vdev enters the - <literal>Faulted</literal> state when the number of - missing or failed devices exceeds the level of - redundancy in the vdev. If missing devices can be - reconnected, the pool will return to a - <link linkend="zfs-term-online">Online</link> state. If - there is insufficient redundancy to compensate for the - number of failed disks, then the contents of the pool - are lost and must be restored from backups.</entry> + <entry xml:id="zfs-term-faulted">故障 (Faulted)</entry> + + <entry>一個儲存池或 vdev 處於故障 (<literal>Faulted</literal>) 狀態代表無法運作,會無法存取在該裝置上的資料。當在 vdev 中缺少或故障的裝置數超過備援的層級,儲存池或 vdev 會進入故障 (<literal>Faulted</literal>) 狀態。若缺少的裝置可以重新連結上,儲存池便會返回線上 (<link linkend="zfs-term-online">Online</link>) 狀態。若沒有足夠的備援可補償故障的磁碟數量便會遺失儲存池中的內容且只能從備份還原。</entry> </row> </tbody> </tgroup> @@ -35976,7 +34144,7 @@ http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/usb-disks.html <itemizedlist> <listitem> - <para>了解<link linkend="basics"><trademark class="registered">UNIX</trademark> 與 FreeBSD 的基礎</link>。</para> + <para>了解 <link linkend="basics"><trademark class="registered">UNIX</trademark> 與 FreeBSD 的基礎</link>。</para> </listitem> <listitem> @@ -36405,8 +34573,8 @@ http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/usb-disks.html </sect2> </sect1> - <sect1 xml:id="virtualization-guest-virtualbox-guest-additions"> - <title>安裝 <trademark>VirtualBox</trademark> Guest Additions 於 FreeBSD 客端</title> + <sect1 xml:id="virtualization-guest-virtualbox"> + <title>在 <trademark>VirtualBox</trademark> 使用 FreeBSD 作為客端</title> <para xml:lang="en">FreeBSD works well as a guest in <application><trademark>VirtualBox</trademark></application>. The virtualization @@ -36760,8 +34928,8 @@ net.link.tap.up_on_open: 0 -> 1 <para xml:lang="en">Download an installation image of FreeBSD to install:</para> - <screen xml:lang="en"><prompt>#</prompt> <userinput>fetch <replaceable>ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.2/FreeBSD-10.2-RELEASE-amd64-bootonly.iso</replaceable></userinput> -FreeBSD-10.2-RELEASE-amd64-bootonly.iso 100% of 230 MB 570 kBps 06m17s</screen> + <screen xml:lang="en"><prompt>#</prompt> <userinput>fetch <replaceable>ftp://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/10.3/FreeBSD-10.3-RELEASE-amd64-bootonly.iso</replaceable></userinput> +FreeBSD-10.3-RELEASE-amd64-bootonly.iso 100% of 230 MB 570 kBps 06m17s</screen> <para xml:lang="en">FreeBSD comes with an example script for running a virtual machine in <application>bhyve</application>. The script will @@ -36780,7 +34948,7 @@ FreeBSD-10.2-RELEASE-amd64-bootonly.iso 100% of 230 MB 570 kBps 06m17s</ machine, used to track the running machines. This example starts the virtual machine in installation mode:</para> - <screen xml:lang="en"><prompt>#</prompt> <userinput>sh /usr/share/examples/bhyve/vmrun.sh -c <replaceable>4</replaceable> -m <replaceable>1024M</replaceable> -t <replaceable>tap0</replaceable> -d <replaceable>guest.img</replaceable> -i -I <replaceable>FreeBSD-10.0-RELEASE-amd64-bootonly.iso</replaceable> <replaceable>guestname</replaceable></userinput></screen> + <screen xml:lang="en"><prompt>#</prompt> <userinput>sh /usr/share/examples/bhyve/vmrun.sh -c <replaceable>4</replaceable> -m <replaceable>1024M</replaceable> -t <replaceable>tap0</replaceable> -d <replaceable>guest.img</replaceable> -i -I <replaceable>FreeBSD-10.3-RELEASE-amd64-bootonly.iso</replaceable> <replaceable>guestname</replaceable></userinput></screen> <para xml:lang="en">The virtual machine will boot and start the installer. After installing a system in the virtual machine, when the @@ -46499,8 +44667,8 @@ Exports list on foobar: <prompt>#</prompt> <userinput>service autounmountd start</userinput></screen> <para xml:lang="en">The <citerefentry><refentrytitle>autofs</refentrytitle><manvolnum>5</manvolnum></citerefentry> map format is the same as in other - operating systems, it might be desirable to consult - information from other operating systems, such as the <link xlink:href="http://images.apple.com/business/docs/Autofs.pdf">Mac + operating systems. Information about this format from other + sources can be useful, like the <link xlink:href="http://web.archive.org/web/20160813071113/http://images.apple.com/business/docs/Autofs.pdf">Mac OS X document</link>.</para> <para xml:lang="en">Consult the <citerefentry><refentrytitle>automount</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>automountd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, @@ -48839,7 +47007,7 @@ options { disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA"; -// If you've got a DNS server around at your upstream provider, enter +// If you have a DNS server around at your upstream provider, enter // its IP address here, and enable the line below. This will make you // benefit from its cache, thus reduce overall DNS traffic in the Internet. /* @@ -48895,7 +47063,7 @@ options { // query-source address * port NNNNN; }; -// If you enable a local name server, don't forget to enter 127.0.0.1 +// If you enable a local name server, do not forget to enter 127.0.0.1 // first in your /etc/resolv.conf so this server will be queried. // Also, make sure to enable it in /etc/rc.conf. @@ -49091,7 +47259,7 @@ zone "ip6.int" { type master; file "/etc/namedb/master/empty.db"; }; // understand how DNS and BIND work. There are sometimes // non-obvious pitfalls. Setting up a slave zone is usually simpler. // -// NB: Don't blindly enable the examples below. :-) Use actual names +// NB: Do not blindly enable the examples below. :-) Use actual names // and addresses instead. /* An example dynamic zone @@ -50196,7 +48364,7 @@ $include Kexample.com.+005+nnnnn.ZSK.key ; ZSK</programlisting> <programlisting xml:lang="en">LoadModule php5_module libexec/apache24/libphp5.so</programlisting> <!-- -I don't think this is still needed +I do not think this is still needed AddModule mod_php5.c <IfModule mod_php5.c> DirectoryIndex index.php index.html @@ -50443,7 +48611,7 @@ AddModule mod_php5.c a forum for the trade of unlicensed commercial software or worse. If anonymous <acronym>FTP</acronym> uploads are required, then verify the permissions so that these files - can not be read by other anonymous users until they have + cannot be read by other anonymous users until they have been reviewed by an administrator.</para> </note> </sect2> @@ -59476,7 +57644,7 @@ rtsold_enable="YES"</programlisting> the generic tunneling interface <filename><replaceable>gif0</replaceable></filename>:</para> - <programlisting xml:lang="en">gif_interfaces="gif<replaceable>0</replaceable>"</programlisting> + <programlisting xml:lang="en">cloned_interfaces="gif<replaceable>0</replaceable>"</programlisting> <para xml:lang="en">Next, configure that interface with the <acronym>IPv4</acronym> addresses of the local and remote @@ -59484,7 +57652,7 @@ rtsold_enable="YES"</programlisting> and <replaceable>REMOTE_IPv4_ADDR</replaceable> with the actual <acronym>IPv4</acronym> addresses:</para> - <programlisting xml:lang="en">gifconfig_gif0="<replaceable>MY_IPv4_ADDR REMOTE_IPv4_ADDR</replaceable>"</programlisting> + <programlisting xml:lang="en">cloned_interfaces_gif0="<replaceable>MY_IPv4_ADDR REMOTE_IPv4_ADDR</replaceable>"</programlisting> <para xml:lang="en">To apply the <acronym>IPv6</acronym> address that has been assigned for use as the <acronym>IPv6</acronym> tunnel @@ -60021,43 +58189,46 @@ ifconfig_carp1="vhid <replaceable>2</replaceable> advskew <replaceable>100</repl </indexterm> <indexterm><primary>虛擬 LAN</primary></indexterm> - <para xml:lang="en"><acronym>VLANs</acronym> are a way of virtually dividing up a - network into many different subnetworks. Each will have its own - broadcast domain and be isolated from the rest of the + <para xml:lang="en"><acronym>VLANs</acronym> are a way of virtually dividing up + a network into many different subnetworks. Each will have its + own broadcast domain and be isolated from the rest of the <acronym>VLANs</acronym>.</para> <para>在 FreeBSD 上,要使用 <acronym>VLANs</acronym> 必須有網路卡驅動程式的支援,要查看那些驅動程式支援 vlan,請參考 <citerefentry><refentrytitle>vlan</refentrytitle><manvolnum>4</manvolnum></citerefentry> 操作手冊。</para> - <para xml:lang="en">When configuring a <acronym>VLAN</acronym>, a couple pieces of - information must be known. First, which network interface? Second, - what is the <acronym>VLAN</acronym> tag?</para> + <para xml:lang="en">When configuring a <acronym>VLAN</acronym>, a couple pieces + of information must be known. First, which network interface? + Second, what is the <acronym>VLAN</acronym> tag?</para> <para xml:lang="en">To configure <acronym>VLANs</acronym> at run time, with a <acronym>NIC</acronym> of <literal>em0</literal> and a - <acronym>VLAN</acronym> tag of <systemitem>5</systemitem>. The command - would look like this:</para> + <acronym>VLAN</acronym> tag of <systemitem>5</systemitem>. The + command would look like this:</para> <screen xml:lang="en"><prompt>#</prompt> <userinput>ifconfig <replaceable>em0.5</replaceable> create vlan <replaceable>5</replaceable> vlandev <replaceable>em0</replaceable> inet 192.168.20.20/24</userinput></screen> <note> - <para xml:lang="en">See how the interface name includes the <acronym>NIC</acronym> - driver name and the <acronym>VLAN</acronym> tag, separated by a - period? This is a best practice to make maintaining the - <acronym>VLAN</acronym> configuration easy when many - <acronym>VLANs</acronym> are present on a machine.</para> + <para xml:lang="en">See how the interface name includes the + <acronym>NIC</acronym> driver name and the + <acronym>VLAN</acronym> tag, separated by a period? This is a + best practice to make maintaining the <acronym>VLAN</acronym> + configuration easy when many <acronym>VLANs</acronym> are + present on a machine.</para> </note> <para xml:lang="en">To configure <acronym>VLANs</acronym> at boot time, - <filename>/etc/rc.conf</filename> must be updated. To duplicate the - configuration above, the following will need to be added:</para> + <filename>/etc/rc.conf</filename> must be updated. To duplicate + the configuration above, the following will need to be + added:</para> <programlisting xml:lang="en">vlans_<replaceable>em0</replaceable>="<replaceable>5</replaceable>" ifconfig_<replaceable>em0</replaceable>_<replaceable>5</replaceable>="inet 192.168.20.20/24"</programlisting> - <para xml:lang="en">Additional <acronym>VLANs</acronym> may be added, by simply adding - the tag to the <literal>vlans_<replaceable>em0</replaceable></literal> - field and adding an additional line configuring the network on that - <acronym>VLAN</acronym> tag's interface.</para> + <para xml:lang="en">Additional <acronym>VLANs</acronym> may be added, by simply + adding the tag to the + <literal>vlans_<replaceable>em0</replaceable></literal> + field and adding an additional line configuring the network on + that <acronym>VLAN</acronym> tag's interface.</para> </sect1> </chapter> @@ -61361,7 +59532,7 @@ This site doesn't have any products newer than 8.1 which is now EOL'd <sect1 xml:id="bibliography-freebsd"> <title>FreeBSD 相關書籍</title> - <para>國際書籍:</para> + <para>國際書籍:</para> <itemizedlist> <listitem> @@ -61430,7 +59601,7 @@ This site doesn't have any products newer than 8.1 which is now EOL'd </listitem> </itemizedlist> - <para>英文書籍:</para> + <para>英文書籍:</para> <itemizedlist> <listitem> diff --git a/zh_TW.UTF-8/books/handbook/zh_TW.po b/zh_TW.UTF-8/books/handbook/zh_TW.po index ec08f31026..29049265d5 100644 --- a/zh_TW.UTF-8/books/handbook/zh_TW.po +++ b/zh_TW.UTF-8/books/handbook/zh_TW.po @@ -2,15 +2,15 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2016-08-25 18:38+0800\n" -"PO-Revision-Date: 2016-08-25 18:37+0800\n" +"POT-Creation-Date: 2016-10-18 13:09+0800\n" +"PO-Revision-Date: 2016-10-17 19:31+0800\n" "Last-Translator: Chien Wei Lin <cwlin0416@gmail.com>\n" "Language-Team: \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.8\n" +"X-Generator: Poedit 1.8.9\n" #. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2 msgctxt "_" @@ -18,25 +18,25 @@ msgid "translator-credits" msgstr "" #. (itstool) path: info/title -#: book.translate.xml:599 +#: book.translate.xml:602 msgid "FreeBSD Handbook" msgstr "FreeBSD 使用手冊" #. (itstool) path: info/author -#: book.translate.xml:601 +#: book.translate.xml:604 msgid "<orgname>The FreeBSD Documentation Project</orgname>" msgstr "<orgname>FreeBSD 文件計劃</orgname>" #. (itstool) path: info/pubdate #. (itstool) path: info/releaseinfo -#: book.translate.xml:605 book.translate.xml:607 +#: book.translate.xml:608 book.translate.xml:610 msgid "" "$FreeBSD: head/en_US.ISO8859-1/books/handbook/book.xml 48108 2016-01-28 " "02:09:41Z wblock $" msgstr "" #. (itstool) path: info/copyright -#: book.translate.xml:609 +#: book.translate.xml:612 msgid "" "<year>1995</year> <year>1996</year> <year>1997</year> <year>1998</year> " "<year>1999</year> <year>2000</year> <year>2001</year> <year>2002</year> " @@ -47,12 +47,12 @@ msgid "" msgstr "" #. (itstool) path: legalnotice/title -#: book.translate.xml:636 +#: book.translate.xml:639 msgid "Copyright" msgstr "版權" #. (itstool) path: legalnotice/para -#: book.translate.xml:638 +#: book.translate.xml:641 msgid "" "Redistribution and use in source (XML DocBook) and 'compiled' forms (XML, " "HTML, PDF, PostScript, RTF and so forth) with or without modification, are " @@ -60,7 +60,7 @@ msgid "" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:645 +#: book.translate.xml:648 msgid "" "Redistributions of source code (XML DocBook) must retain the above copyright " "notice, this list of conditions and the following disclaimer as the first " @@ -68,7 +68,7 @@ msgid "" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:651 +#: book.translate.xml:654 msgid "" "Redistributions in compiled form (transformed to other DTDs, converted to " "PDF, PostScript, RTF and other formats) must reproduce the above copyright " @@ -77,7 +77,7 @@ msgid "" msgstr "" #. (itstool) path: important/para -#: book.translate.xml:660 +#: book.translate.xml:663 msgid "" "THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT \"AS IS" "\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE " @@ -93,32 +93,32 @@ msgid "" msgstr "" #. (itstool) path: legalnotice/para -#: book.translate.xml:677 +#: book.translate.xml:680 msgid "FreeBSD is a registered trademark of the FreeBSD Foundation." msgstr "FreeBSD 是 FreeBSD 基金會的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:679 +#: book.translate.xml:682 msgid "3Com and HomeConnect are registered trademarks of 3Com Corporation." msgstr "3Com 和 HomeConnect 是 3Com Corporation 的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:681 +#: book.translate.xml:684 msgid "3ware is a registered trademark of 3ware Inc." msgstr "3ware 是 3ware Inc 的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:683 +#: book.translate.xml:686 msgid "ARM is a registered trademark of ARM Limited." msgstr "ARM 是 ARM Limited. 的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:685 +#: book.translate.xml:688 msgid "Adaptec is a registered trademark of Adaptec, Inc." msgstr "Adaptec 是 Adaptec, Inc. 的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:687 +#: book.translate.xml:690 msgid "" "Adobe, Acrobat, Acrobat Reader, Flash and PostScript are either registered " "trademarks or trademarks of Adobe Systems Incorporated in the United States " @@ -128,7 +128,7 @@ msgstr "" "Incorporated 在美國和/或其他國家的商標或註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:691 +#: book.translate.xml:694 msgid "" "Apple, AirPort, FireWire, iMac, iPhone, iPad, Mac, Macintosh, Mac OS, " "Quicktime, and TrueType are trademarks of Apple Inc., registered in the U.S. " @@ -138,12 +138,12 @@ msgstr "" "Quicktime 以及 TrueType 是 Apple Inc. 在美國以及其他國家的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:696 +#: book.translate.xml:699 msgid "Android is a trademark of Google Inc." msgstr "Android 是 Google Inc 的商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:698 +#: book.translate.xml:701 msgid "" "Heidelberg, Helvetica, Palatino, and Times Roman are either registered " "trademarks or trademarks of Heidelberger Druckmaschinen AG in the U.S. and " @@ -153,7 +153,7 @@ msgstr "" "Druckmaschinen AG 在美國以及其他國家的商標或註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:702 +#: book.translate.xml:705 msgid "" "IBM, AIX, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of " "International Business Machines Corporation in the United States, other " @@ -163,7 +163,7 @@ msgstr "" "Machines Corporation 在美國和其他國家的商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:706 +#: book.translate.xml:709 msgid "" "IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical " "and Electronics Engineers, Inc. in the United States." @@ -172,7 +172,7 @@ msgstr "" "Inc. 在美國的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:709 +#: book.translate.xml:712 msgid "" "Intel, Celeron, Centrino, Core, EtherExpress, i386, i486, Itanium, Pentium, " "and Xeon are trademarks or registered trademarks of Intel Corporation or its " @@ -182,7 +182,7 @@ msgstr "" "及 Xeon 是 Intel Corporation 及其分支機構在美國和其他國家的商標或註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:713 +#: book.translate.xml:716 msgid "" "Intuit and Quicken are registered trademarks and/or registered service marks " "of Intuit Inc., or one of its subsidiaries, in the United States and other " @@ -192,12 +192,12 @@ msgstr "" "標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:716 +#: book.translate.xml:719 msgid "Linux is a registered trademark of Linus Torvalds." msgstr "Linux 是 Linus Torvalds 的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:718 +#: book.translate.xml:721 msgid "" "LSI Logic, AcceleRAID, eXtremeRAID, MegaRAID and Mylex are trademarks or " "registered trademarks of LSI Logic Corp." @@ -206,7 +206,7 @@ msgstr "" "商標或註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:721 +#: book.translate.xml:724 msgid "" "Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows " "NT are either registered trademarks or trademarks of Microsoft Corporation " @@ -216,7 +216,7 @@ msgstr "" "Windows NT 是 Microsoft Corporation 在美國和/或其他國家的商標或註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:725 +#: book.translate.xml:728 msgid "" "Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The " "Open Group are trademarks of The Open Group in the United States and other " @@ -226,12 +226,12 @@ msgstr "" "DialTone 和 The Open Group 是其商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:729 +#: book.translate.xml:732 msgid "Oracle is a registered trademark of Oracle Corporation." msgstr "Oracle 是 Oracle Corporation 的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:731 +#: book.translate.xml:734 msgid "" "RealNetworks, RealPlayer, and RealAudio are the registered trademarks of " "RealNetworks, Inc." @@ -239,14 +239,14 @@ msgstr "" "RealNetworks, RealPlayer, 和 RealAudio 是 RealNetworks, Inc. 的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:734 +#: book.translate.xml:737 msgid "" "Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in " "the United States and other countries." msgstr "Red Hat, RPM, 是 Red Hat, Inc. 在美國和其他國家的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:737 +#: book.translate.xml:740 msgid "" "Sun, Sun Microsystems, Java, Java Virtual Machine, JDK, JRE, JSP, JVM, " "Netra, OpenJDK, Solaris, StarOffice, SunOS and VirtualBox are trademarks or " @@ -258,37 +258,37 @@ msgstr "" "Microsystems, Inc. 在美國和其他國家的商標或註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:742 +#: book.translate.xml:745 msgid "MATLAB is a registered trademark of The MathWorks, Inc." msgstr "MATLAB 是 The MathWorks, Inc. 的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:744 +#: book.translate.xml:747 msgid "SpeedTouch is a trademark of Thomson." msgstr "SpeedTouch 是 Thomson 的商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:746 +#: book.translate.xml:749 msgid "VMware is a trademark of VMware, Inc." msgstr "VMware 是 VMware, Inc. 的商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:748 +#: book.translate.xml:751 msgid "Mathematica is a registered trademark of Wolfram Research, Inc." msgstr "Mathematica 是 Wolfram Research, Inc 的註冊商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:750 +#: book.translate.xml:753 msgid "XFree86 is a trademark of The XFree86 Project, Inc." msgstr "XFree86 是 The XFree86 Project, Inc 的商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:752 +#: book.translate.xml:755 msgid "Ogg Vorbis and Xiph.Org are trademarks of Xiph.Org." msgstr "Ogg Vorbis 以及 Xiph.Org 是 Xiph.Org 的商標。" #. (itstool) path: legalnotice/para -#: book.translate.xml:754 +#: book.translate.xml:757 msgid "" "Many of the designations used by manufacturers and sellers to distinguish " "their products are claimed as trademarks. Where those designations appear in " @@ -301,7 +301,7 @@ msgstr "" "quote> 或 <quote>®</quote> 符號來標示。" #. (itstool) path: abstract/para -#: book.translate.xml:763 +#: book.translate.xml:766 msgid "" "Welcome to FreeBSD! This handbook covers the installation and day to day use " "of <emphasis>FreeBSD 9.3-RELEASE</emphasis> and <emphasis>FreeBSD 10.3-" @@ -319,7 +319,7 @@ msgstr "" "遞論壇</link>。" #. (itstool) path: abstract/para -#: book.translate.xml:771 +#: book.translate.xml:774 msgid "" "The latest version of this book is available from the <link xlink:href=" "\"http://www.FreeBSD.org/\">FreeBSD web site</link>. Previous versions can " @@ -344,18 +344,18 @@ msgstr "" "件的資料。" #. (itstool) path: preface/title -#: book.translate.xml:792 +#: book.translate.xml:795 msgid "Preface" msgstr "序" #. (itstool) path: preface/bridgehead #. (itstool) id: book.translate.xml#preface-audience -#: book.translate.xml:794 +#: book.translate.xml:797 msgid "Intended Audience" msgstr "給讀者的話" #. (itstool) path: preface/para -#: book.translate.xml:797 +#: book.translate.xml:800 msgid "" "The FreeBSD newcomer will find that the first section of this book guides " "the user through the FreeBSD installation process and gently introduces the " @@ -369,7 +369,7 @@ msgstr "" "一些常用、共通的東西。而閱讀這部分並不難,只需要您有探索的精神和接受新概念。" #. (itstool) path: preface/para -#: book.translate.xml:804 +#: book.translate.xml:807 msgid "" "Once you have traveled this far, the second, far larger, section of the " "Handbook is a comprehensive reference to all manner of topics of interest to " @@ -382,7 +382,7 @@ msgstr "" "不熟的話,可在閱讀前先預習一番。" #. (itstool) path: preface/para -#: book.translate.xml:811 +#: book.translate.xml:814 msgid "" "For a list of additional sources of information, please see <xref linkend=" "\"bibliography\"/>." @@ -390,12 +390,12 @@ msgstr "延伸閱讀方面,可參閱 <xref linkend=\"bibliography\"/>。" #. (itstool) path: preface/bridgehead #. (itstool) id: book.translate.xml#preface-changes-from3 -#: book.translate.xml:814 +#: book.translate.xml:817 msgid "Changes from the Third Edition" msgstr "自第三版後的主要修訂" #. (itstool) path: preface/para -#: book.translate.xml:817 +#: book.translate.xml:820 msgid "" "The current online version of the Handbook represents the cumulative effort " "of many hundreds of contributors over the past 10 years. The following are " @@ -406,7 +406,7 @@ msgstr "" "2014 年發佈的兩冊第三版後所做的主要修訂:" #. (itstool) path: listitem/para -#: book.translate.xml:824 +#: book.translate.xml:827 msgid "" "<xref linkend=\"dtrace\"/> has been added with information about the " "powerful DTrace performance analysis tool." @@ -414,7 +414,7 @@ msgstr "" "<xref linkend=\"dtrace\"/> 增加說明有關強大的 DTrace 效能分析工具的資訊。" #. (itstool) path: listitem/para -#: book.translate.xml:829 +#: book.translate.xml:832 msgid "" "<xref linkend=\"filesystems\"/> has been added with information about non-" "native file systems in FreeBSD, such as ZFS from <trademark>Sun</trademark>." @@ -423,7 +423,7 @@ msgstr "" "自 <trademark>Sun</trademark> 的 ZSF。" #. (itstool) path: listitem/para -#: book.translate.xml:835 +#: book.translate.xml:838 msgid "" "<xref linkend=\"audit\"/> has been added to cover the new auditing " "capabilities in FreeBSD and explain its use." @@ -431,7 +431,7 @@ msgstr "" "<xref linkend=\"audit\"/> 增加的內容涵蓋 FreeBSD 的新稽查功能及其使用說明。" #. (itstool) path: listitem/para -#: book.translate.xml:840 +#: book.translate.xml:843 msgid "" "<xref linkend=\"virtualization\"/> has been added with information about " "installing FreeBSD on virtualization software." @@ -439,7 +439,7 @@ msgstr "" "<xref linkend=\"virtualization\"/> 增加有關在虛擬化軟體安裝 FreeBSD 的資訊。" #. (itstool) path: listitem/para -#: book.translate.xml:846 +#: book.translate.xml:849 msgid "" "<xref linkend=\"bsdinstall\"/> has been added to cover installation of " "FreeBSD using the new installation utility, <application>bsdinstall</" @@ -450,12 +450,12 @@ msgstr "" #. (itstool) path: preface/bridgehead #. (itstool) id: book.translate.xml#preface-changes-from2 -#: book.translate.xml:852 +#: book.translate.xml:855 msgid "Changes from the Second Edition (2004)" msgstr "自第二版後的主要修訂 (2004)" #. (itstool) path: preface/para -#: book.translate.xml:855 +#: book.translate.xml:858 msgid "" "The third edition was the culmination of over two years of work by the " "dedicated members of the FreeBSD Documentation Project. The printed edition " @@ -466,7 +466,7 @@ msgstr "" "文件內容成長到一定大小,印刷版需要分成兩冊發佈。新版的主要修訂部分如下:" #. (itstool) path: listitem/para -#: book.translate.xml:863 +#: book.translate.xml:866 msgid "" "<xref linkend=\"config-tuning\"/> has been expanded with new information " "about the ACPI power and resource management, the <command>cron</command> " @@ -476,7 +476,7 @@ msgstr "" "<command>cron</command> 以及其他更多的核心調校選項說明內容。" #. (itstool) path: listitem/para -#: book.translate.xml:870 +#: book.translate.xml:873 msgid "" "<xref linkend=\"security\"/> has been expanded with new information about " "virtual private networks (VPNs), file system access control lists (ACLs), " @@ -486,7 +486,7 @@ msgstr "" "(ACL),以及安全報告。" #. (itstool) path: listitem/para -#: book.translate.xml:876 +#: book.translate.xml:879 msgid "" "<xref linkend=\"mac\"/> is a new chapter with this edition. It explains what " "MAC is and how this mechanism can be used to secure a FreeBSD system." @@ -495,24 +495,24 @@ msgstr "" "何運用它來使您的 FreeBSD 系統更安全。" #. (itstool) path: listitem/para -#: book.translate.xml:882 +#: book.translate.xml:885 msgid "" "<xref linkend=\"disks\"/> has been expanded with new information about USB " "storage devices, file system snapshots, file system quotas, file and network " "backed filesystems, and encrypted disk partitions." msgstr "" "<xref linkend=\"disks\"/> 新增了像是:USB 隨身碟、檔案系統快照 (Snapshot)、檔" -"案系統配額 (Quota) 、檔案及網路的備援檔案系統、以及如何對硬碟分割區作加密等詳" -"解。" +"案系統配額 (Quota) 、檔案與網路為基礎的檔案系統、以及如何對硬碟分割區作加密等" +"詳解。" #. (itstool) path: listitem/para -#: book.translate.xml:889 +#: book.translate.xml:892 msgid "" "A troubleshooting section has been added to <xref linkend=\"ppp-and-slip\"/>." msgstr "<xref linkend=\"ppp-and-slip\"/> 增加了疑難排解的章節。" #. (itstool) path: listitem/para -#: book.translate.xml:893 +#: book.translate.xml:896 msgid "" "<xref linkend=\"mail\"/> has been expanded with new information about using " "alternative transport agents, SMTP authentication, UUCP, " @@ -524,7 +524,7 @@ msgstr "" "application> 的運用以及其它進階主題。" #. (itstool) path: listitem/para -#: book.translate.xml:901 +#: book.translate.xml:904 msgid "" "<xref linkend=\"network-servers\"/> is all new with this edition. This " "chapter includes information about setting up the <application>Apache HTTP " @@ -542,7 +542,7 @@ msgstr "" "\"advanced-networking\"/> 。" #. (itstool) path: listitem/para -#: book.translate.xml:911 +#: book.translate.xml:914 msgid "" "<xref linkend=\"advanced-networking\"/> has been expanded with new " "information about using <trademark class=\"registered\">Bluetooth</" @@ -554,14 +554,14 @@ msgstr "" "式 (Asynchronous Transfer Mode, ATM) 網路的介紹。" #. (itstool) path: listitem/para -#: book.translate.xml:918 +#: book.translate.xml:921 msgid "" "A glossary has been added to provide a central location for the definitions " "of technical terms used throughout the book." msgstr "增加詞彙表,用以說明全書中出現的術語。" #. (itstool) path: listitem/para -#: book.translate.xml:924 +#: book.translate.xml:927 msgid "" "A number of aesthetic improvements have been made to the tables and figures " "throughout the book." @@ -569,12 +569,12 @@ msgstr "重新美編書中所列的圖表。" #. (itstool) path: preface/bridgehead #. (itstool) id: book.translate.xml#preface-changes -#: book.translate.xml:929 +#: book.translate.xml:932 msgid "Changes from the First Edition (2001)" msgstr "自第一版後的主要修訂 (2001)" #. (itstool) path: preface/para -#: book.translate.xml:932 +#: book.translate.xml:935 msgid "" "The second edition was the culmination of over two years of work by the " "dedicated members of the FreeBSD Documentation Project. The following were " @@ -584,17 +584,17 @@ msgstr "" "變動如下︰" #. (itstool) path: listitem/para -#: book.translate.xml:940 +#: book.translate.xml:943 msgid "A complete Index has been added." msgstr "增加完整的目錄索引。" #. (itstool) path: listitem/para -#: book.translate.xml:944 +#: book.translate.xml:947 msgid "All ASCII figures have been replaced by graphical diagrams." msgstr "所有的 ASCII 圖表均改成圖檔格式的圖表。" #. (itstool) path: listitem/para -#: book.translate.xml:949 +#: book.translate.xml:952 msgid "" "A standard synopsis has been added to each chapter to give a quick summary " "of what information the chapter contains, and what the reader is expected to " @@ -602,17 +602,17 @@ msgid "" msgstr "每個章節均加入概述,以便快速的瀏覽該章節內容摘要、讀者所欲了解的部分。" #. (itstool) path: listitem/para -#: book.translate.xml:955 +#: book.translate.xml:958 msgid "" "The content has been logically reorganized into three parts: <quote>Getting " "Started</quote>, <quote>System Administration</quote>, and " "<quote>Appendices</quote>." msgstr "" -"內容架構重新組織成三大部分: <quote>入門</quote>、<quote>系統管理</quote> 以" +"內容架構重新組織成三大部分:<quote>入門</quote>、<quote>系統管理</quote> 以" "及 <quote>附錄</quote>。" #. (itstool) path: listitem/para -#: book.translate.xml:962 +#: book.translate.xml:965 msgid "" "<xref linkend=\"basics\"/> has been expanded to contain additional " "information about processes, daemons, and signals." @@ -620,14 +620,14 @@ msgstr "" "<xref linkend=\"basics\"/> 新增了程序、Daemon 以及信號 (Signal) 的介紹。" #. (itstool) path: listitem/para -#: book.translate.xml:968 +#: book.translate.xml:971 msgid "" "<xref linkend=\"ports\"/> has been expanded to contain additional " "information about binary package management." msgstr "<xref linkend=\"ports\"/> 新增了介紹如何管理 Binary 套件的資訊。" #. (itstool) path: listitem/para -#: book.translate.xml:974 +#: book.translate.xml:977 msgid "" "<xref linkend=\"x11\"/> has been completely rewritten with an emphasis on " "using modern desktop technologies such as <application>KDE</application> and " @@ -638,12 +638,12 @@ msgstr "" "<application>GNOME</application>。" #. (itstool) path: listitem/para -#: book.translate.xml:981 +#: book.translate.xml:984 msgid "<xref linkend=\"boot\"/> has been expanded." msgstr "<xref linkend=\"boot\"/> 更新相關內容。" #. (itstool) path: listitem/para -#: book.translate.xml:985 +#: book.translate.xml:988 msgid "" "<xref linkend=\"disks\"/> has been written from what used to be two separate " "chapters on <quote>Disks</quote> and <quote>Backups</quote>. We feel that " @@ -655,7 +655,7 @@ msgstr "" "體、軟體 RAID) 的段落也新增上去了。" #. (itstool) path: listitem/para -#: book.translate.xml:994 +#: book.translate.xml:997 msgid "" "<xref linkend=\"serialcomms\"/> has been completely reorganized and updated " "for FreeBSD 4.X/5.X." @@ -664,18 +664,18 @@ msgstr "" "容。" #. (itstool) path: listitem/para -#: book.translate.xml:999 +#: book.translate.xml:1002 msgid "<xref linkend=\"ppp-and-slip\"/> has been substantially updated." msgstr "<xref linkend=\"ppp-and-slip\"/> 有相當程度的更新。" #. (itstool) path: listitem/para -#: book.translate.xml:1004 +#: book.translate.xml:1007 msgid "" "Many new sections have been added to <xref linkend=\"advanced-networking\"/>." msgstr "<xref linkend=\"advanced-networking\"/> 加入許多新內容。" #. (itstool) path: listitem/para -#: book.translate.xml:1008 +#: book.translate.xml:1011 msgid "" "<xref linkend=\"mail\"/> has been expanded to include more information about " "configuring <application>sendmail</application>." @@ -684,7 +684,7 @@ msgstr "" "的介紹。" #. (itstool) path: listitem/para -#: book.translate.xml:1014 +#: book.translate.xml:1017 msgid "" "<xref linkend=\"linuxemu\"/> has been expanded to include information about " "installing <application><trademark class=\"registered\">Oracle</trademark></" @@ -697,28 +697,28 @@ msgstr "" "trademark></application> 的介紹。" #. (itstool) path: listitem/para -#: book.translate.xml:1021 +#: book.translate.xml:1024 msgid "The following new topics are covered in this second edition:" msgstr "此外,第二版還新加章節,以介紹下列新主題:" #. (itstool) path: listitem/para -#: book.translate.xml:1026 +#: book.translate.xml:1029 msgid "<xref linkend=\"config-tuning\"/>." msgstr "<xref linkend=\"config-tuning\"/>。" #. (itstool) path: listitem/para -#: book.translate.xml:1030 +#: book.translate.xml:1033 msgid "<xref linkend=\"multimedia\"/>." msgstr "<xref linkend=\"multimedia\"/>。" #. (itstool) path: preface/bridgehead #. (itstool) id: book.translate.xml#preface-overview -#: book.translate.xml:1036 +#: book.translate.xml:1039 msgid "Organization of This Book" msgstr "本書架構" #. (itstool) path: preface/para -#: book.translate.xml:1038 +#: book.translate.xml:1041 msgid "" "This book is split into five logically distinct sections. The first section, " "<emphasis>Getting Started</emphasis>, covers the installation and basic " @@ -743,14 +743,14 @@ msgstr "" "則包括網路和各式伺服器主題;而第五部分則為附錄包含各種有關 FreeBSD 的資源。" #. (itstool) path: listitem/para -#: book.translate.xml:1063 +#: book.translate.xml:1066 msgid "" "Introduces FreeBSD to a new user. It describes the history of the FreeBSD " "Project, its goals and development model." msgstr "向新手介紹 FreeBSD。該篇說明了 FreeBSD 計劃的歷史、目標和開發模式。" #. (itstool) path: listitem/para -#: book.translate.xml:1073 +#: book.translate.xml:1076 msgid "" "Walks a user through the entire installation process of FreeBSD 9." "<replaceable>x</replaceable> and later using <application>bsdinstall</" @@ -760,7 +760,7 @@ msgstr "" "<replaceable>x</replaceable> 及之後版本的完整安裝流程。" #. (itstool) path: listitem/para -#: book.translate.xml:1083 +#: book.translate.xml:1086 msgid "" "Covers the basic commands and functionality of the FreeBSD operating system. " "If you are familiar with <trademark class=\"registered\">Linux</trademark> " @@ -771,7 +771,7 @@ msgstr "" "\">Linux</trademark> 或其他類 UNIX® 系統,您則可跳過此章。" #. (itstool) path: listitem/para -#: book.translate.xml:1094 +#: book.translate.xml:1097 msgid "" "Covers the installation of third-party software with both FreeBSD's " "innovative <quote>Ports Collection</quote> and standard binary packages." @@ -780,7 +780,7 @@ msgstr "" "第三方軟體。" #. (itstool) path: listitem/para -#: book.translate.xml:1104 +#: book.translate.xml:1107 msgid "" "Describes the X Window System in general and using X11 on FreeBSD in " "particular. Also describes common desktop environments such as " @@ -790,7 +790,7 @@ msgstr "" "<application>KDE</application> 與 <application>GNOME</application>。" #. (itstool) path: listitem/para -#: book.translate.xml:1117 +#: book.translate.xml:1120 msgid "" "Lists some common desktop applications, such as web browsers and " "productivity suites, and describes how to install them on FreeBSD." @@ -799,7 +799,7 @@ msgstr "" "程式到 FreeBSD。" #. (itstool) path: listitem/para -#: book.translate.xml:1126 +#: book.translate.xml:1129 msgid "" "Shows how to set up sound and video playback support for your system. Also " "describes some sample audio and video applications." @@ -808,14 +808,14 @@ msgstr "" "用程式。" #. (itstool) path: listitem/para -#: book.translate.xml:1136 +#: book.translate.xml:1139 msgid "" "Explains why you might need to configure a new kernel and provides detailed " "instructions for configuring, building, and installing a custom kernel." msgstr "說明為何需要設定新的核心並會提供設定、編譯與安裝的詳細操作說明。" #. (itstool) path: listitem/para -#: book.translate.xml:1146 +#: book.translate.xml:1149 msgid "" "Describes managing printers on FreeBSD, including information about banner " "pages, printer accounting, and initial setup." @@ -823,7 +823,7 @@ msgstr "" "介紹如何在 FreeBSD 管理印表機,包含橫幅頁面、列印帳務以及初始設定等資訊。" #. (itstool) path: listitem/para -#: book.translate.xml:1156 +#: book.translate.xml:1159 msgid "" "Describes the <trademark class=\"registered\">Linux</trademark> " "compatibility features of FreeBSD. Also provides detailed installation " @@ -839,7 +839,7 @@ msgstr "" "\"registered\">Mathematica</trademark></application>。" #. (itstool) path: listitem/para -#: book.translate.xml:1170 +#: book.translate.xml:1173 msgid "" "Describes the parameters available for system administrators to tune a " "FreeBSD system for optimum performance. Also describes the various " @@ -849,14 +849,14 @@ msgstr "" "FreeBSD 用到的各種設定檔以及到何處尋找這些設定檔。" #. (itstool) path: listitem/para -#: book.translate.xml:1181 +#: book.translate.xml:1184 msgid "" "Describes the FreeBSD boot process and explains how to control this process " "with configuration options." msgstr "介紹 FreeBSD 開機流程並說明如何使用設定選項控制開機流程。" #. (itstool) path: listitem/para -#: book.translate.xml:1190 +#: book.translate.xml:1193 msgid "" "Describes many different tools available to help keep your FreeBSD system " "secure, including Kerberos, IPsec and OpenSSH." @@ -865,7 +865,7 @@ msgstr "" "OpenSSH。" #. (itstool) path: listitem/para -#: book.translate.xml:1200 +#: book.translate.xml:1203 msgid "" "Describes the jails framework, and the improvements of jails over the " "traditional chroot support of FreeBSD." @@ -873,7 +873,7 @@ msgstr "" "介紹 Jail Framework,以及 Jail 改進那些 FreeBSD 傳統 chroot 不足的地方。" #. (itstool) path: listitem/para -#: book.translate.xml:1209 +#: book.translate.xml:1212 msgid "" "Explains what Mandatory Access Control (MAC) is and how this mechanism can " "be used to secure a FreeBSD system." @@ -882,7 +882,7 @@ msgstr "" "保 FreeBSD 系統的安全。" #. (itstool) path: listitem/para -#: book.translate.xml:1219 +#: book.translate.xml:1222 msgid "" "Describes what FreeBSD Event Auditing is, how it can be installed, " "configured, and how audit trails can be inspected or monitored." @@ -890,7 +890,7 @@ msgstr "" "介紹什麼事 FreeBSD 事件稽查,如何安裝與設定,以及如何檢查與監控稽查線索。" #. (itstool) path: listitem/para -#: book.translate.xml:1229 +#: book.translate.xml:1232 msgid "" "Describes how to manage storage media and filesystems with FreeBSD. This " "includes physical disks, RAID arrays, optical and tape media, memory-backed " @@ -900,7 +900,7 @@ msgstr "" "與磁帶媒體、記憶體為基礎的磁碟以及網路檔案系統。" #. (itstool) path: listitem/para -#: book.translate.xml:1240 +#: book.translate.xml:1243 msgid "" "Describes what the GEOM framework in FreeBSD is and how to configure various " "supported RAID levels." @@ -908,7 +908,7 @@ msgstr "" "介紹在 FreeBSD 中的 GEOM Framework 是什麼,以及如何設定各種支援的 RAID 階層。" #. (itstool) path: listitem/para -#: book.translate.xml:1249 +#: book.translate.xml:1252 msgid "" "Examines support of non-native file systems in FreeBSD, like the Z File " "System from <trademark>Sun</trademark>." @@ -917,21 +917,21 @@ msgstr "" "案系統。" #. (itstool) path: listitem/para -#: book.translate.xml:1258 +#: book.translate.xml:1261 msgid "" "Describes what virtualization systems offer, and how they can be used with " "FreeBSD." msgstr "介紹虛擬化系統提供了那些功能,以及如何在 FreeBSD 上使用。" #. (itstool) path: listitem/para -#: book.translate.xml:1267 +#: book.translate.xml:1270 msgid "" "Describes how to use FreeBSD in languages other than English. Covers both " "system and application level localization." msgstr "介紹如何在 FreeBSD 使用非英文的語言,這涵蓋了系統及應用層的在地化。" #. (itstool) path: listitem/para -#: book.translate.xml:1277 +#: book.translate.xml:1280 msgid "" "Explains the differences between FreeBSD-STABLE, FreeBSD-CURRENT, and " "FreeBSD releases. Describes which users would benefit from tracking a " @@ -943,7 +943,7 @@ msgstr "" "佈版本的方法。" #. (itstool) path: listitem/para -#: book.translate.xml:1290 +#: book.translate.xml:1293 msgid "" "Describes how to configure and use the DTrace tool from <trademark>Sun</" "trademark> in FreeBSD. Dynamic tracing can help locate performance issues, " @@ -953,19 +953,19 @@ msgstr "" "追蹤可以透過執行真實時間系統分析來協助定位效能問題。" #. (itstool) path: listitem/para -#: book.translate.xml:1303 +#: book.translate.xml:1306 msgid "" "Explains how to connect terminals and modems to your FreeBSD system for both " "dial in and dial out connections." msgstr "介紹如何使用撥入及撥出連線到您的 FreeBSD 系統的終端機與數據機。" #. (itstool) path: listitem/para -#: book.translate.xml:1313 +#: book.translate.xml:1316 msgid "Describes how to use PPP to connect to remote systems with FreeBSD." msgstr "介紹如何在 FreeBSD 使用 PPP 來連線遠端的系統。" #. (itstool) path: listitem/para -#: book.translate.xml:1322 +#: book.translate.xml:1325 msgid "" "Explains the different components of an email server and dives into simple " "configuration topics for the most popular mail server software: " @@ -975,7 +975,7 @@ msgstr "" "<application>sendmail</application>。" #. (itstool) path: listitem/para -#: book.translate.xml:1333 +#: book.translate.xml:1336 msgid "" "Provides detailed instructions and example configuration files to set up " "your FreeBSD machine as a network filesystem server, domain name server, " @@ -985,7 +985,7 @@ msgstr "" "網域名稱伺服器、網路資訊系統伺服器或時間同步伺服器。" #. (itstool) path: listitem/para -#: book.translate.xml:1344 +#: book.translate.xml:1347 msgid "" "Explains the philosophy behind software-based firewalls and provides " "detailed information about the configuration of the different firewalls " @@ -995,7 +995,7 @@ msgstr "" "細資訊。" #. (itstool) path: listitem/para -#: book.translate.xml:1354 +#: book.translate.xml:1357 msgid "" "Describes many networking topics, including sharing an Internet connection " "with other computers on your LAN, advanced routing topics, wireless " @@ -1007,7 +1007,7 @@ msgstr "" "ATM、IPv6 以及更多相關主題。" #. (itstool) path: listitem/para -#: book.translate.xml:1367 +#: book.translate.xml:1370 msgid "" "Lists different sources for obtaining FreeBSD media on CDROM or DVD as well " "as different sites on the Internet that allow you to download and install " @@ -1017,7 +1017,7 @@ msgstr "" "您可以下載並安裝 FreeBSD。" #. (itstool) path: listitem/para -#: book.translate.xml:1377 +#: book.translate.xml:1380 msgid "" "This book touches on many different subjects that may leave you hungry for a " "more detailed explanation. The bibliography lists many excellent books that " @@ -1027,7 +1027,7 @@ msgstr "" "多優秀書籍。" #. (itstool) path: listitem/para -#: book.translate.xml:1388 +#: book.translate.xml:1391 msgid "" "Describes the many forums available for FreeBSD users to post questions and " "engage in technical conversations about FreeBSD." @@ -1035,18 +1035,18 @@ msgstr "" "介紹了可讓 FreeBSD 使用者提出問題以及參與有關 FreeBSD 技術會談的許多論壇。" #. (itstool) path: listitem/para -#: book.translate.xml:1398 +#: book.translate.xml:1401 msgid "Lists the PGP fingerprints of several FreeBSD Developers." msgstr "列出了數個 FreeBSD 開發人員的 PGP 指紋。" #. (itstool) path: preface/bridgehead #. (itstool) id: book.translate.xml#preface-conv -#: book.translate.xml:1404 +#: book.translate.xml:1407 msgid "Conventions used in this book" msgstr "本書的編排體裁" #. (itstool) path: preface/para -#: book.translate.xml:1407 +#: book.translate.xml:1410 msgid "" "To provide a consistent and easy to read text, several conventions are " "followed throughout the book." @@ -1054,17 +1054,17 @@ msgstr "為方便閱讀本書,以下是一些本書所遵循的編排體裁: #. (itstool) path: preface/bridgehead #. (itstool) id: book.translate.xml#preface-conv-typographic -#: book.translate.xml:1410 +#: book.translate.xml:1413 msgid "Typographic Conventions" msgstr "文字編排體裁" #. (itstool) path: varlistentry/term -#: book.translate.xml:1414 +#: book.translate.xml:1417 msgid "<emphasis>Italic</emphasis>" msgstr "<emphasis>斜體字</emphasis>" #. (itstool) path: listitem/para -#: book.translate.xml:1417 +#: book.translate.xml:1420 msgid "" "An <emphasis>italic</emphasis> font is used for filenames, URLs, emphasized " "text, and the first usage of technical terms." @@ -1073,12 +1073,12 @@ msgstr "" "次提及的技術詞彙。" #. (itstool) path: varlistentry/term -#: book.translate.xml:1424 +#: book.translate.xml:1427 msgid "<literal>Monospace</literal>" msgstr "<literal>等寬字</literal>" #. (itstool) path: listitem/para -#: book.translate.xml:1427 +#: book.translate.xml:1430 msgid "" "A <literal>monospaced</literal> font is used for error messages, commands, " "environment variables, names of ports, hostnames, user names, group names, " @@ -1088,24 +1088,24 @@ msgstr "" "稱、帳號、群組、裝置名稱、變數、程式碼等。" #. (itstool) path: varlistentry/term -#: book.translate.xml:1435 +#: book.translate.xml:1438 msgid "<application>Bold</application>" msgstr "<application>粗體字</application>" #. (itstool) path: listitem/para -#: book.translate.xml:1438 +#: book.translate.xml:1441 msgid "" "A <keycap>bold</keycap> font is used for applications, commands, and keys." msgstr "以<keycap>粗體字</keycap>表示:應用程式、指令、按鍵。" #. (itstool) path: preface/bridgehead #. (itstool) id: book.translate.xml#preface-conv-commands -#: book.translate.xml:1445 +#: book.translate.xml:1448 msgid "User Input" msgstr "使用者輸入" #. (itstool) path: preface/para -#: book.translate.xml:1448 +#: book.translate.xml:1451 msgid "" "Keys are shown in <keycap>bold</keycap> to stand out from other text. Key " "combinations that are meant to be typed simultaneously are shown with " @@ -1115,14 +1115,14 @@ msgstr "" "按下一些按鍵,我們以 `<literal>+</literal>' 來表示連接,像是:" #. (itstool) path: preface/para -#: book.translate.xml:1453 +#: book.translate.xml:1456 msgid "" "<keycombo action=\"simul\"> <keycap>Ctrl</keycap> <keycap>Alt</keycap> " "<keycap>Del</keycap></keycombo>" msgstr "" #. (itstool) path: preface/para -#: book.translate.xml:1459 +#: book.translate.xml:1462 msgid "" "Meaning the user should type the <keycap>Ctrl</keycap>, <keycap>Alt</" "keycap>, and <keycap>Del</keycap> keys at the same time." @@ -1131,14 +1131,14 @@ msgstr "" "keycap> 鍵。" #. (itstool) path: preface/para -#: book.translate.xml:1463 +#: book.translate.xml:1466 msgid "" "Keys that are meant to be typed in sequence will be separated with commas, " "for example:" msgstr "若要逐一按鍵,那麼會以逗號 (,) 來表示,像是:" #. (itstool) path: preface/para -#: book.translate.xml:1466 +#: book.translate.xml:1469 msgid "" "<keycombo action=\"simul\"> <keycap>Ctrl</keycap> <keycap>X</keycap> </" "keycombo>, <keycombo action=\"simul\"> <keycap>Ctrl</keycap> <keycap>S</" @@ -1146,7 +1146,7 @@ msgid "" msgstr "" #. (itstool) path: preface/para -#: book.translate.xml:1475 +#: book.translate.xml:1478 msgid "" "Would mean that the user is expected to type the <keycap>Ctrl</keycap> and " "<keycap>X</keycap> keys simultaneously and then to type the <keycap>Ctrl</" @@ -1157,12 +1157,12 @@ msgstr "" #. (itstool) path: preface/bridgehead #. (itstool) id: book.translate.xml#preface-conv-examples -#: book.translate.xml:1481 +#: book.translate.xml:1484 msgid "Examples" msgstr "範例" #. (itstool) path: preface/para -#: book.translate.xml:1483 +#: book.translate.xml:1486 msgid "" "Examples starting with <filename>C:\\></filename> indicate a <trademark " "class=\"registered\">MS-DOS</trademark> command. Unless otherwise noted, " @@ -1177,13 +1177,13 @@ msgstr "" "Prompt)</quote> 視窗內執行。" #. (itstool) path: preface/screen -#: book.translate.xml:1489 +#: book.translate.xml:1492 #, no-wrap msgid "<prompt>E:\\></prompt> <userinput>tools\\fdimage floppies\\kern.flp A:</userinput>" msgstr "" #. (itstool) path: preface/para -#: book.translate.xml:1491 +#: book.translate.xml:1494 msgid "" "Examples starting with <prompt>#</prompt> indicate a command that must be " "invoked as the superuser in FreeBSD. You can login as <systemitem class=" @@ -1197,13 +1197,13 @@ msgstr "" "refentrytitle><manvolnum>1</manvolnum></citerefentry> 來取得超級使用者權限。" #. (itstool) path: preface/screen -#: book.translate.xml:1497 +#: book.translate.xml:1500 #, no-wrap msgid "<prompt>#</prompt> <userinput>dd if=kern.flp of=/dev/fd0</userinput>" msgstr "" #. (itstool) path: preface/para -#: book.translate.xml:1499 +#: book.translate.xml:1502 msgid "" "Examples starting with <prompt>%</prompt> indicate a command that should be " "invoked from a normal user account. Unless otherwise noted, C-shell syntax " @@ -1214,19 +1214,19 @@ msgstr "" "其他指令的意思。" #. (itstool) path: preface/screen -#: book.translate.xml:1504 +#: book.translate.xml:1507 #, no-wrap msgid "<prompt>%</prompt> <userinput>top</userinput>" msgstr "" #. (itstool) path: preface/bridgehead #. (itstool) id: book.translate.xml#preface-acknowledgements -#: book.translate.xml:1506 +#: book.translate.xml:1509 msgid "Acknowledgments" msgstr "銘謝" #. (itstool) path: preface/para -#: book.translate.xml:1508 +#: book.translate.xml:1511 msgid "" "The book you are holding represents the efforts of many hundreds of people " "around the world. Whether they sent in fixes for typos, or submitted " @@ -1236,7 +1236,7 @@ msgstr "" "糾正一些錯誤或提交完整的章節,所有的點滴貢獻都是非常寶貴有用的。" #. (itstool) path: preface/para -#: book.translate.xml:1513 +#: book.translate.xml:1516 msgid "" "Several companies have supported the development of this document by paying " "authors to work on it full-time, paying for publication, etc. In particular, " @@ -1262,43 +1262,43 @@ msgstr "" "手冊以使第三版印刷版本能夠出版的志工。" #. (itstool) path: part/title -#: book.translate.xml:1532 +#: book.translate.xml:1535 msgid "Getting Started" msgstr "入門" #. (itstool) path: partintro/para -#: book.translate.xml:1535 +#: book.translate.xml:1538 msgid "" "This part of the handbook is for users and administrators who are new to " "FreeBSD. These chapters:" msgstr "這部份是提供給初次使用 FreeBSD 的使用者和系統管理者。 這些章節包括:" #. (itstool) path: listitem/para -#: book.translate.xml:1540 +#: book.translate.xml:1543 msgid "Introduce FreeBSD." msgstr "介紹 FreeBSD 給您。" #. (itstool) path: listitem/para -#: book.translate.xml:1544 +#: book.translate.xml:1547 msgid "Guide readers through the installation process." msgstr "在安裝過程給您指引。" #. (itstool) path: listitem/para -#: book.translate.xml:1548 +#: book.translate.xml:1551 msgid "" "Teach <trademark class=\"registered\">UNIX</trademark> basics and " "fundamentals." msgstr "教您 <trademark class=\"registered\">UNIX</trademark> 的基礎及原理。" #. (itstool) path: listitem/para -#: book.translate.xml:1552 +#: book.translate.xml:1555 msgid "" "Show how to install the wealth of third party applications available for " "FreeBSD." msgstr "展示給您看如何安裝豐富的 FreeBSD 的應用軟體。" #. (itstool) path: listitem/para -#: book.translate.xml:1557 +#: book.translate.xml:1560 msgid "" "Introduce X, the <trademark class=\"registered\">UNIX</trademark> windowing " "system, and detail how to configure a desktop environment that makes users " @@ -1308,7 +1308,7 @@ msgstr "" "細的桌面環境設定,讓您更有生產力。" #. (itstool) path: partintro/para -#: book.translate.xml:1563 +#: book.translate.xml:1566 msgid "" "The number of forward references in the text have been kept to a minimum so " "that this section can be read from front to back with minimal page flipping." @@ -1319,12 +1319,12 @@ msgstr "" #. (itstool) path: info/title #. (itstool) path: sect1/title #. (itstool) path: sect2/title -#: book.translate.xml:1577 book.translate.xml:23667 book.translate.xml:65535 +#: book.translate.xml:1580 book.translate.xml:23692 book.translate.xml:65535 msgid "Introduction" msgstr "簡介" #. (itstool) path: authorgroup/author -#: book.translate.xml:1580 book.translate.xml:2833 +#: book.translate.xml:1583 book.translate.xml:2848 msgid "" "<personname> <firstname>Jim</firstname> <surname>Mock</surname> </" "personname> <contrib>Restructured, reorganized, and parts rewritten by </" @@ -1332,21 +1332,21 @@ msgid "" msgstr "" #. (itstool) path: sect1/title -#: book.translate.xml:1592 book.translate.xml:2888 book.translate.xml:5491 -#: book.translate.xml:8880 book.translate.xml:10544 book.translate.xml:12714 -#: book.translate.xml:13836 book.translate.xml:15442 book.translate.xml:17924 -#: book.translate.xml:19181 book.translate.xml:22666 book.translate.xml:23579 -#: book.translate.xml:27649 book.translate.xml:29259 book.translate.xml:31027 -#: book.translate.xml:31761 book.translate.xml:35414 book.translate.xml:41346 -#: book.translate.xml:41553 book.translate.xml:42855 book.translate.xml:43895 -#: book.translate.xml:46044 book.translate.xml:46429 book.translate.xml:48632 -#: book.translate.xml:50300 book.translate.xml:52213 book.translate.xml:57939 -#: book.translate.xml:61626 +#: book.translate.xml:1595 book.translate.xml:2903 book.translate.xml:5506 +#: book.translate.xml:8895 book.translate.xml:10559 book.translate.xml:12728 +#: book.translate.xml:13850 book.translate.xml:15456 book.translate.xml:17938 +#: book.translate.xml:19206 book.translate.xml:22691 book.translate.xml:23604 +#: book.translate.xml:27703 book.translate.xml:29313 book.translate.xml:31081 +#: book.translate.xml:31815 book.translate.xml:35468 book.translate.xml:41400 +#: book.translate.xml:41607 book.translate.xml:42909 book.translate.xml:43949 +#: book.translate.xml:46098 book.translate.xml:46483 book.translate.xml:48686 +#: book.translate.xml:50354 book.translate.xml:52267 book.translate.xml:57993 +#: book.translate.xml:61680 msgid "Synopsis" msgstr "概述" #. (itstool) path: sect1/para -#: book.translate.xml:1594 +#: book.translate.xml:1597 msgid "" "Thank you for your interest in FreeBSD! The following chapter covers various " "aspects of the FreeBSD Project, such as its history, goals, development " @@ -1356,55 +1356,55 @@ msgstr "" "史、目標、開發模式等等。" #. (itstool) path: sect1/para -#: book.translate.xml:1598 book.translate.xml:2915 book.translate.xml:5498 -#: book.translate.xml:8892 book.translate.xml:10565 book.translate.xml:15455 -#: book.translate.xml:17946 book.translate.xml:19195 book.translate.xml:23592 -#: book.translate.xml:27721 book.translate.xml:29286 book.translate.xml:31051 -#: book.translate.xml:31769 book.translate.xml:35440 book.translate.xml:41378 -#: book.translate.xml:41561 book.translate.xml:43907 book.translate.xml:46082 -#: book.translate.xml:46440 book.translate.xml:48643 book.translate.xml:50311 -#: book.translate.xml:57994 book.translate.xml:61631 +#: book.translate.xml:1601 book.translate.xml:2930 book.translate.xml:5513 +#: book.translate.xml:8907 book.translate.xml:10580 book.translate.xml:15469 +#: book.translate.xml:17964 book.translate.xml:19220 book.translate.xml:23617 +#: book.translate.xml:27775 book.translate.xml:29340 book.translate.xml:31105 +#: book.translate.xml:31823 book.translate.xml:35494 book.translate.xml:41432 +#: book.translate.xml:41615 book.translate.xml:43961 book.translate.xml:46136 +#: book.translate.xml:46494 book.translate.xml:48697 book.translate.xml:50365 +#: book.translate.xml:58048 book.translate.xml:61685 msgid "After reading this chapter, you will know:" msgstr "讀完這章,您將了解︰" #. (itstool) path: listitem/para -#: book.translate.xml:1602 +#: book.translate.xml:1605 msgid "How FreeBSD relates to other computer operating systems." msgstr "FreeBSD 與其他作業系統之間的關係。" #. (itstool) path: listitem/para -#: book.translate.xml:1607 +#: book.translate.xml:1610 msgid "The history of the FreeBSD Project." msgstr "FreeBSD 計劃的歷史。" #. (itstool) path: listitem/para -#: book.translate.xml:1611 +#: book.translate.xml:1614 msgid "The goals of the FreeBSD Project." msgstr "FreeBSD 計劃的目標。" #. (itstool) path: listitem/para -#: book.translate.xml:1615 +#: book.translate.xml:1618 msgid "The basics of the FreeBSD open-source development model." msgstr "FreeBSD 開源開發模式的基礎概念。" #. (itstool) path: listitem/para -#: book.translate.xml:1620 +#: book.translate.xml:1623 msgid "And of course: where the name <quote>FreeBSD</quote> comes from." msgstr "當然囉,還有 <quote>FreeBSD</quote> 這名字的由來。" #. (itstool) path: sect1/title -#: book.translate.xml:1627 +#: book.translate.xml:1630 msgid "Welcome to FreeBSD!" -msgstr "歡迎使用 FreeBSD!" +msgstr "歡迎使用 FreeBSD!" #. (itstool) path: sect1/indexterm #. (itstool) path: para/indexterm -#: book.translate.xml:1629 book.translate.xml:1798 +#: book.translate.xml:1632 book.translate.xml:1801 msgid "<primary>4.4BSD-Lite</primary>" msgstr "" #. (itstool) path: sect1/para -#: book.translate.xml:1631 +#: book.translate.xml:1634 msgid "" "FreeBSD is a 4.4BSD-Lite based operating system for Intel (x86 and " "<trademark class=\"registered\">Itanium</trademark>), AMD64, Sun <trademark " @@ -1427,22 +1427,22 @@ msgstr "" "對 FreeBSD 貢獻</link>。" #. (itstool) path: sect2/title -#: book.translate.xml:1641 +#: book.translate.xml:1644 msgid "What Can FreeBSD Do?" msgstr "FreeBSD 能做什麼?" #. (itstool) path: sect2/para -#: book.translate.xml:1643 +#: book.translate.xml:1646 msgid "FreeBSD has many noteworthy features. Some of these are:" msgstr "FreeBSD 提供給你許多先進功能。這些功能包括:" #. (itstool) path: para/indexterm -#: book.translate.xml:1649 +#: book.translate.xml:1652 msgid "<primary>preemptive multitasking</primary>" msgstr "<primary>先佔式多工</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1648 +#: book.translate.xml:1651 msgid "" "<emphasis>Preemptive multitasking</emphasis> <_:indexterm-1/> with dynamic " "priority adjustment to ensure smooth and fair sharing of the computer " @@ -1452,12 +1452,12 @@ msgstr "" "即使在系統負擔很重的情況下,程式執行平順並且應用程式與使用者公平地共享資源。" #. (itstool) path: para/indexterm -#: book.translate.xml:1658 +#: book.translate.xml:1661 msgid "<primary>multi-user facilities</primary>" msgstr "<primary>多人共用</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1658 +#: book.translate.xml:1661 msgid "" "<emphasis>Multi-user facilities</emphasis><_:indexterm-1/> which allow many " "people to use a FreeBSD system simultaneously for a variety of things. This " @@ -1472,12 +1472,12 @@ msgstr "" "保護系統不致被過度使用。" #. (itstool) path: para/indexterm -#: book.translate.xml:1671 +#: book.translate.xml:1674 msgid "<primary>TCP/IP networking</primary>" msgstr "TCP/IP 網路" #. (itstool) path: listitem/para -#: book.translate.xml:1670 +#: book.translate.xml:1673 msgid "" "Strong <emphasis>TCP/IP networking</emphasis><_:indexterm-1/> with support " "for industry standards such as SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec, and " @@ -1494,12 +1494,12 @@ msgstr "" "供 WWW、FTP、路由及防火牆 (安全性) 等必備服務。" #. (itstool) path: para/indexterm -#: book.translate.xml:1684 +#: book.translate.xml:1687 msgid "<primary>memory protection</primary>" msgstr "<primary>記憶體保護</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1684 +#: book.translate.xml:1687 msgid "" "<emphasis>Memory protection</emphasis><_:indexterm-1/> ensures that " "applications (or users) cannot interfere with each other. One application " @@ -1509,12 +1509,12 @@ msgstr "" "程式有不正常的運作,都不會影響其他程式的執行。" #. (itstool) path: para/indexterm -#: book.translate.xml:1693 book.translate.xml:1936 +#: book.translate.xml:1696 book.translate.xml:1939 msgid "<primary>X Window System</primary>" msgstr "<primary>X Window 系統</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1692 +#: book.translate.xml:1695 msgid "" "The industry standard <emphasis>X Window System</emphasis><_:indexterm-1/> " "(X11R7) can provide a graphical user interface (GUI) on any machine and " @@ -1526,32 +1526,32 @@ msgstr "" #. (itstool) path: para/indexterm #. (itstool) path: sect1/indexterm -#: book.translate.xml:1702 book.translate.xml:17929 +#: book.translate.xml:1705 book.translate.xml:17943 msgid "<primary>binary compatibility</primary> <secondary>Linux</secondary>" msgstr "<primary>Binary 相容性</primary> <secondary>Linux</secondary>" #. (itstool) path: para/indexterm -#: book.translate.xml:1706 +#: book.translate.xml:1709 msgid "<primary>binary compatibility</primary> <secondary>SCO</secondary>" msgstr "<primary>Binary 相容性</primary> <secondary>SCO</secondary>" #. (itstool) path: para/indexterm -#: book.translate.xml:1710 +#: book.translate.xml:1713 msgid "<primary>binary compatibility</primary> <secondary>SVR4</secondary>" msgstr "<primary>Binary 相容性</primary> <secondary>SVR4</secondary>" #. (itstool) path: para/indexterm -#: book.translate.xml:1714 +#: book.translate.xml:1717 msgid "<primary>binary compatibility</primary> <secondary>BSD/OS</secondary>" msgstr "<primary>Binary 相容性</primary> <secondary>BSD/OS</secondary>" #. (itstool) path: para/indexterm -#: book.translate.xml:1718 +#: book.translate.xml:1721 msgid "<primary>binary compatibility</primary> <secondary>NetBSD</secondary>" msgstr "<primary>Binary 相容性</primary> <secondary>NetBSD</secondary>" #. (itstool) path: listitem/para -#: book.translate.xml:1701 +#: book.translate.xml:1704 msgid "" "<_:indexterm-1/> <_:indexterm-2/> <_:indexterm-3/> <_:indexterm-4/> <_:" "indexterm-5/> <emphasis>Binary compatibility</emphasis> with many programs " @@ -1562,7 +1562,7 @@ msgstr "" "(如: Linux、SCO、SVR4、BSDI 和 NetBSD) 的可執行檔。" #. (itstool) path: listitem/para -#: book.translate.xml:1728 +#: book.translate.xml:1731 msgid "" "Thousands of <emphasis>ready-to-run</emphasis> applications are available " "from the FreeBSD <emphasis>ports</emphasis> and <emphasis>packages</" @@ -1573,7 +1573,7 @@ msgstr "" "取得。 不再需要費心到網路上到處搜尋所需要的軟體。" #. (itstool) path: listitem/para -#: book.translate.xml:1736 +#: book.translate.xml:1739 msgid "" "Thousands of additional and <emphasis>easy-to-port</emphasis> applications " "are available on the Internet. FreeBSD is source code compatible with most " @@ -1586,12 +1586,12 @@ msgstr "" "行。" #. (itstool) path: para/indexterm -#: book.translate.xml:1745 +#: book.translate.xml:1748 msgid "<primary>virtual memory</primary>" msgstr "<primary>虛擬記憶體</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1744 +#: book.translate.xml:1747 msgid "" "Demand paged <emphasis>virtual memory</emphasis><_:indexterm-1/> and " "<quote>merged VM/buffer cache</quote> design efficiently satisfies " @@ -1603,12 +1603,12 @@ msgstr "" "維持與其他使用者的互動。" #. (itstool) path: para/indexterm -#: book.translate.xml:1754 +#: book.translate.xml:1757 msgid "<primary>Symmetric Multi-Processing (SMP)</primary>" msgstr "<primary>對稱多工處理 (SMP)</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1754 +#: book.translate.xml:1757 msgid "" "<emphasis>SMP</emphasis><_:indexterm-1/> support for machines with multiple " "CPUs." @@ -1617,17 +1617,17 @@ msgstr "" "多 CPU 的電腦系統。" #. (itstool) path: para/indexterm -#: book.translate.xml:1763 +#: book.translate.xml:1766 msgid "<primary>compilers</primary> <secondary>C</secondary>" msgstr "<primary>編譯器</primary> <secondary>C</secondary>" #. (itstool) path: para/indexterm -#: book.translate.xml:1767 +#: book.translate.xml:1770 msgid "<primary>compilers</primary> <secondary>C++</secondary>" msgstr "<primary>編譯器</primary> <secondary>C++</secondary>" #. (itstool) path: listitem/para -#: book.translate.xml:1762 +#: book.translate.xml:1765 msgid "" "<_:indexterm-1/> <_:indexterm-2/> A full complement of <emphasis>C</" "emphasis> and <emphasis>C++</emphasis> development tools. Many additional " @@ -1639,12 +1639,12 @@ msgstr "" "進階研發的程式語言也收集在 Port 和套件集。" #. (itstool) path: para/indexterm -#: book.translate.xml:1780 +#: book.translate.xml:1783 msgid "<primary>source code</primary>" msgstr "<primary>原始碼</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1780 +#: book.translate.xml:1783 msgid "" "<emphasis>Source code</emphasis><_:indexterm-1/> for the entire system means " "you have the greatest degree of control over your environment. Why be locked " @@ -1656,22 +1656,22 @@ msgstr "" "廠商擺佈呢?" #. (itstool) path: listitem/para -#: book.translate.xml:1789 +#: book.translate.xml:1792 msgid "Extensive <emphasis>online documentation</emphasis>." msgstr "廣泛且豐富的 <emphasis>線上文件</emphasis>。" #. (itstool) path: listitem/para -#: book.translate.xml:1794 +#: book.translate.xml:1797 msgid "<emphasis>And many more!</emphasis>" msgstr "<emphasis>當然囉,還不止如此!</emphasis>" #. (itstool) path: para/indexterm -#: book.translate.xml:1801 +#: book.translate.xml:1804 msgid "<primary>Computer Systems Research Group (CSRG)</primary>" msgstr "<primary>電腦系統研究組 (CSRG)</primary>" #. (itstool) path: sect2/para -#: book.translate.xml:1798 +#: book.translate.xml:1801 msgid "" "FreeBSD is based on the 4.4BSD-Lite<_:indexterm-1/> release from Computer " "Systems Research Group (CSRG)<_:indexterm-2/> at the University of " @@ -1690,7 +1690,7 @@ msgstr "" "時,FreeBSD 已經具備這樣的特質,並具有其他地方沒有的尖端功能。" #. (itstool) path: sect2/para -#: book.translate.xml:1812 +#: book.translate.xml:1815 msgid "" "The applications to which FreeBSD can be put are truly limited only by your " "own imagination. From software development to factory automation, inventory " @@ -1710,7 +1710,7 @@ msgstr "" "軟體,而且出現的數目是與日俱增。" #. (itstool) path: sect2/para -#: book.translate.xml:1824 +#: book.translate.xml:1827 msgid "" "Because the source code for FreeBSD itself is generally available, the " "system can also be customized to an almost unheard of degree for special " @@ -1723,7 +1723,7 @@ msgstr "" "地被修改。 以下提供一些人們使用 FreeBSD 的例子:" #. (itstool) path: listitem/para -#: book.translate.xml:1834 +#: book.translate.xml:1837 msgid "" "<emphasis>Internet Services:</emphasis> The robust TCP/IP networking built " "into FreeBSD makes it an ideal platform for a variety of Internet services " @@ -1733,34 +1733,34 @@ msgstr "" "務 (如下例) 的理想平台:" #. (itstool) path: para/indexterm -#: book.translate.xml:1841 +#: book.translate.xml:1844 msgid "<primary>web servers</primary>" msgstr "<primary>網頁伺服器</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1841 +#: book.translate.xml:1844 msgid "World Wide Web servers<_:indexterm-1/> (standard or secure [SSL])" msgstr "全球資訊網伺服器<_:indexterm-1/> (標準的或更安全的 [SSL])" #. (itstool) path: listitem/para -#: book.translate.xml:1848 +#: book.translate.xml:1851 msgid "IPv4 and IPv6 routing" msgstr "IPv4 及 IPv6 路由" #. (itstool) path: para/indexterm #. (itstool) path: chapter/indexterm -#: book.translate.xml:1852 book.translate.xml:57930 +#: book.translate.xml:1855 book.translate.xml:57984 msgid "<primary>firewall</primary>" msgstr "<primary>防火牆</primary>" #. (itstool) path: para/indexterm #. (itstool) path: sect2/indexterm -#: book.translate.xml:1855 book.translate.xml:61096 +#: book.translate.xml:1858 book.translate.xml:61150 msgid "<primary>NAT</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:1852 +#: book.translate.xml:1855 msgid "" "Firewalls<_:indexterm-1/> and NAT<_:indexterm-2/> (<quote>IP masquerading</" "quote>) gateways" @@ -1769,38 +1769,38 @@ msgstr "" "閘。" #. (itstool) path: para/indexterm -#: book.translate.xml:1862 +#: book.translate.xml:1865 msgid "<primary>FTP servers</primary>" msgstr "<primary>FTP 伺服器</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1862 +#: book.translate.xml:1865 msgid "FTP servers<_:indexterm-1/>" msgstr "檔案傳輸協定伺服器<_:indexterm-1/>" #. (itstool) path: para/indexterm -#: book.translate.xml:1869 +#: book.translate.xml:1872 msgid "<primary>electronic mail</primary> <see>email</see>" msgstr "<primary>電子郵件</primary> <see>email</see>" #. (itstool) path: para/indexterm #. (itstool) path: sect1/indexterm -#: book.translate.xml:1873 book.translate.xml:50302 +#: book.translate.xml:1876 book.translate.xml:50356 msgid "<primary>email</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:1868 +#: book.translate.xml:1871 msgid "<_:indexterm-1/> <_:indexterm-2/> Electronic Mail servers" msgstr "<_:indexterm-1/><_:indexterm-2/> 電子郵件伺服器" #. (itstool) path: listitem/para -#: book.translate.xml:1880 +#: book.translate.xml:1883 msgid "And more..." msgstr "還有更多..." #. (itstool) path: listitem/para -#: book.translate.xml:1886 +#: book.translate.xml:1889 msgid "" "<emphasis>Education:</emphasis> Are you a student of computer science or a " "related engineering field? There is no better way of learning about " @@ -1816,7 +1816,7 @@ msgstr "" "等可以免費地取得使用。" #. (itstool) path: listitem/para -#: book.translate.xml:1898 +#: book.translate.xml:1901 msgid "" "<emphasis>Research:</emphasis> With source code for the entire system " "available, FreeBSD is an excellent platform for research in operating " @@ -1831,17 +1831,17 @@ msgstr "" #. (itstool) path: para/indexterm #. (itstool) path: sect2/indexterm -#: book.translate.xml:1910 book.translate.xml:61979 +#: book.translate.xml:1913 book.translate.xml:62033 msgid "<primary>router</primary>" msgstr "<primary>路由器</primary>" #. (itstool) path: para/indexterm -#: book.translate.xml:1912 +#: book.translate.xml:1915 msgid "<primary>DNS Server</primary>" msgstr "<primary>DNS 伺服器</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1909 +#: book.translate.xml:1912 msgid "" "<emphasis>Networking:</emphasis> Need a new router?<_:indexterm-1/> A name " "server (DNS)?<_:indexterm-2/> A firewall to keep people out of your internal " @@ -1853,12 +1853,12 @@ msgstr "" "或 486 PC 變身成為絕佳的伺服器,甚至具有過濾封包的功能。" #. (itstool) path: para/indexterm -#: book.translate.xml:1923 +#: book.translate.xml:1926 msgid "<primary>embedded</primary>" msgstr "<primary>嵌入式</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1921 +#: book.translate.xml:1924 msgid "" "<emphasis>Embedded:</emphasis> FreeBSD makes an excellent platform to build " "embedded systems upon. <_:indexterm-1/> With support for the <trademark " @@ -1880,18 +1880,18 @@ msgstr "" #. (itstool) path: para/indexterm #. (itstool) path: sect2/indexterm -#: book.translate.xml:1939 book.translate.xml:11914 +#: book.translate.xml:1942 book.translate.xml:11928 msgid "<primary>GNOME</primary>" msgstr "" #. (itstool) path: para/indexterm #. (itstool) path: sect2/indexterm -#: book.translate.xml:1942 book.translate.xml:12001 +#: book.translate.xml:1945 book.translate.xml:12015 msgid "<primary>KDE</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:1935 +#: book.translate.xml:1938 msgid "" "<_:indexterm-1/> <_:indexterm-2/> <_:indexterm-3/> <emphasis>Desktop:</" "emphasis> FreeBSD makes a fine choice for an inexpensive desktop solution " @@ -1909,12 +1909,12 @@ msgstr "" "於管理。" #. (itstool) path: para/indexterm -#: book.translate.xml:1961 +#: book.translate.xml:1964 msgid "<primary>Compiler</primary>" msgstr "<primary>編譯器</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:1958 +#: book.translate.xml:1961 msgid "" "<emphasis>Software Development:</emphasis> The basic FreeBSD system comes " "with a full complement of development tools including a full C/C++<_:" @@ -1926,7 +1926,7 @@ msgstr "" "援需多其他語言。" #. (itstool) path: sect2/para -#: book.translate.xml:1970 +#: book.translate.xml:1973 msgid "" "FreeBSD is available to download free of charge, or can be obtained on " "either CD-ROM or DVD. Please see <xref linkend=\"mirrors\"/> for more " @@ -1936,19 +1936,19 @@ msgstr "" "linkend=\"mirrors\"/> 取得 FreeBSD。" #. (itstool) path: sect2/title -#: book.translate.xml:1977 +#: book.translate.xml:1980 msgid "Who Uses FreeBSD?" msgstr "誰在用 FreeBSD?" #. (itstool) path: sect2/indexterm -#: book.translate.xml:1979 +#: book.translate.xml:1982 msgid "" "<primary>users</primary> <secondary>large sites running FreeBSD</secondary>" msgstr "" "<primary>使用者</primary> <secondary>執行 FreeBSD 的大型站台</secondary>" #. (itstool) path: sect2/para -#: book.translate.xml:1984 +#: book.translate.xml:1987 msgid "" "FreeBSD's advanced features, proven security, predictable release cycle, and " "permissive license have led to its use as a platform for building many " @@ -1961,12 +1961,12 @@ msgstr "" #. (itstool) path: para/indexterm #. (itstool) path: sect1/indexterm -#: book.translate.xml:1994 book.translate.xml:56603 +#: book.translate.xml:1997 book.translate.xml:56657 msgid "<primary>Apache</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:1993 +#: book.translate.xml:1996 msgid "" "<link xlink:href=\"http://www.apache.org/\">Apache</link> <_:indexterm-1/> - " "The Apache Software Foundation runs most of its public facing " @@ -1978,12 +1978,12 @@ msgstr "" "庫 (擁有超過 140 萬次提交) 都是在 FreeBSD 上運作。" #. (itstool) path: para/indexterm -#: book.translate.xml:2004 +#: book.translate.xml:2007 msgid "<primary>Apple</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2003 +#: book.translate.xml:2006 msgid "" "<link xlink:href=\"http://www.apple.com/\">Apple</link> <_:indexterm-1/> - " "OS X borrows heavily from FreeBSD for the network stack, virtual file " @@ -1995,12 +1995,12 @@ msgstr "" "Apple iOS 中含有從 FreeBSD 借鑒來的元素。" #. (itstool) path: para/indexterm -#: book.translate.xml:2014 +#: book.translate.xml:2017 msgid "<primary>Cisco</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2013 +#: book.translate.xml:2016 msgid "" "<link xlink:href=\"http://www.cisco.com/\">Cisco</link> <_:indexterm-1/> - " "IronPort network security and anti-spam appliances run a modified FreeBSD " @@ -2010,12 +2010,12 @@ msgstr "" "IronPort 網路安全及反垃圾郵件設備是採用改良後 FreeBSD 核心來運作。" #. (itstool) path: para/indexterm -#: book.translate.xml:2022 +#: book.translate.xml:2025 msgid "<primary>Citrix</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2021 +#: book.translate.xml:2024 msgid "" "<link xlink:href=\"http://www.citrix.com/\">Citrix</link> <_:indexterm-1/> - " "The NetScaler line of security appliances provide layer 4-7 load balancing, " @@ -2027,12 +2027,12 @@ msgstr "" "牆、安全的 VPN 以及行動雲端網路存取,皆運用了 FreeBSD Shell 強大的功能。" #. (itstool) path: para/indexterm -#: book.translate.xml:2033 +#: book.translate.xml:2036 msgid "<primary>Dell KACE</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2031 +#: book.translate.xml:2034 msgid "" "<link xlink:href=\"http://www.dell.com/KACE\">Dell KACE</link> <_:" "indexterm-1/> - The KACE system management appliances run FreeBSD because of " @@ -2044,12 +2044,12 @@ msgstr "" "擴展性以及支持其持續發展的社群。" #. (itstool) path: para/indexterm -#: book.translate.xml:2043 +#: book.translate.xml:2046 msgid "<primary>Experts Exchange</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2041 +#: book.translate.xml:2044 msgid "" "<link xlink:href=\"http://www.experts-exchange.com/\">Experts Exchange</" "link> <_:indexterm-1/> - All public facing web servers are powered by " @@ -2061,12 +2061,12 @@ msgstr "" "量使用 Jail 來隔離開發與測試環境,減少了虛擬化的額外開銷。" #. (itstool) path: para/indexterm -#: book.translate.xml:2053 +#: book.translate.xml:2056 msgid "<primary>Isilon</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2052 +#: book.translate.xml:2055 msgid "" "<link xlink:href=\"http://www.isilon.com/\">Isilon</link> <_:indexterm-1/> - " "Isilon's enterprise storage appliances are based on FreeBSD. The extremely " @@ -2079,12 +2079,12 @@ msgstr "" "整合了它們的智慧財產到整個核心,並專注打造自己的產品,而不是一個作業系統。" #. (itstool) path: para/indexterm -#: book.translate.xml:2065 +#: book.translate.xml:2068 msgid "<primary>iXsystems</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2064 +#: book.translate.xml:2067 msgid "" "<link xlink:href=\"http://www.ixsystems.com/\">iXsystems</link> <_:" "indexterm-1/> - The TrueNAS line of unified storage appliances is based on " @@ -2097,12 +2097,12 @@ msgstr "" "開源計劃的開發。" #. (itstool) path: para/indexterm -#: book.translate.xml:2075 +#: book.translate.xml:2078 msgid "<primary>Juniper</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2074 +#: book.translate.xml:2077 msgid "" "<link xlink:href=\"http://www.juniper.net/\">Juniper</link> <_:indexterm-1/> " "- The JunOS operating system that powers all Juniper networking gear " @@ -2120,12 +2120,12 @@ msgstr "" "功能從 FreeBSD 整合回 JunOS 的複雜性。" #. (itstool) path: para/indexterm -#: book.translate.xml:2090 +#: book.translate.xml:2093 msgid "<primary>McAfee</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2089 +#: book.translate.xml:2092 msgid "" "<link xlink:href=\"http://www.mcafee.com/\">McAfee</link> <_:indexterm-1/> - " "SecurOS, the basis of McAfee enterprise firewall products including " @@ -2136,12 +2136,12 @@ msgstr "" "FreeBSD 為基礎。" #. (itstool) path: para/indexterm -#: book.translate.xml:2099 +#: book.translate.xml:2102 msgid "<primary>NetApp</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2098 +#: book.translate.xml:2101 msgid "" "<link xlink:href=\"http://www.netapp.com/\">NetApp</link> <_:indexterm-1/> - " "The Data ONTAP GX line of storage appliances are based on FreeBSD. In " @@ -2153,12 +2153,12 @@ msgstr "" "了回 FreeBSD 許多功能,包括新 BSD 條款授權的 hypervisor, bhyve。" #. (itstool) path: para/indexterm -#: book.translate.xml:2109 book.translate.xml:2371 +#: book.translate.xml:2112 book.translate.xml:2386 msgid "<primary>Netflix</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2108 +#: book.translate.xml:2111 msgid "" "<link xlink:href=\"http://www.netflix.com/\">Netflix</link> <_:indexterm-1/> " "- The OpenConnect appliance that Netflix uses to stream movies to its " @@ -2173,12 +2173,12 @@ msgstr "" "Netflix 的 OpenConnect 設備負責了北美所有的網路流量 32% 以上。" #. (itstool) path: para/indexterm -#: book.translate.xml:2122 +#: book.translate.xml:2125 msgid "<primary>Sandvine</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2121 +#: book.translate.xml:2124 msgid "" "<link xlink:href=\"http://www.sandvine.com/\">Sandvine</link> <_:indexterm-1/" "> - Sandvine uses FreeBSD as the basis of their high performance realtime " @@ -2186,16 +2186,16 @@ msgid "" "control products." msgstr "" "<link xlink:href=\"http://www.sandvine.com/\">Sandvine</link> <_:indexterm-1/" -"> - Sandvine 使用 FreeBSD 作為它們的高性能即時網路處理平台,來建立它門的智慧" -"網路策略控制產品。" +"> - Sandvine 使用 FreeBSD 作為它們的高性能即時網路處理平台,來建立它們的智慧" +"網路策略控制產品。" #. (itstool) path: para/indexterm -#: book.translate.xml:2132 +#: book.translate.xml:2135 msgid "<primary>Sony</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2131 +#: book.translate.xml:2134 msgid "" "<link xlink:href=\"http://www.sony.com/\">Sony</link> <_:indexterm-1/> - The " "PlayStation 4 gaming console runs a modified version of FreeBSD." @@ -2204,12 +2204,12 @@ msgstr "" "PlayStation 4 遊戲主機使用了修改過的 FreeBSD 版本來運作。" #. (itstool) path: para/indexterm -#: book.translate.xml:2140 +#: book.translate.xml:2143 msgid "<primary>Sophos</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2139 +#: book.translate.xml:2142 msgid "" "<link xlink:href=\"http://www.sophos.com/\">Sophos</link> <_:indexterm-1/> - " "The Sophos Email Appliance product is based on a hardened FreeBSD and scans " @@ -2221,12 +2221,12 @@ msgstr "" "郵件中的垃圾郵件和病毒,同時也可監控出站郵件中的惡意軟體及敏感資訊。" #. (itstool) path: para/indexterm -#: book.translate.xml:2152 +#: book.translate.xml:2155 msgid "<primary>Spectra Logic</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2150 +#: book.translate.xml:2153 msgid "" "<link xlink:href=\"http://www.spectralogic.com/\">Spectra Logic</link> <_:" "indexterm-1/> - The nTier line of archive grade storage appliances run " @@ -2236,12 +2236,32 @@ msgstr "" "indexterm-1/> - 儲藏級儲存設備的 nTier 產品線以 FreeBSD 和 OpenZFS 來運作。" #. (itstool) path: para/indexterm -#: book.translate.xml:2161 +#: book.translate.xml:2163 +#, fuzzy +msgid "<primary>Stormshield</primary>" +msgstr "<primary>編譯器</primary>" + +#. (itstool) path: listitem/para +#: book.translate.xml:2162 +#, fuzzy +msgid "" +"<link xlink:href=\"https://www.stormshield.eu\">Stormshield</link> <_:" +"indexterm-1/> - Stormshield Network Security appliances are based on a " +"hardened version of FreeBSD. The BSD license allows us to integrate our own " +"intellectual property with the system while returning a great deal of " +"interesting development to the community." +msgstr "" +"<link xlink:href=\"http://www.isilon.com/\">Isilon</link> <_:indexterm-1/> - " +"Isilon 的企業存儲設備以 FreeBSD 為基礎。非常自由的 FreeBSD 授權條款讓 Isilon " +"整合了它們的智慧財產到整個核心,並專注打造自己的產品,而不是一個作業系統。" + +#. (itstool) path: para/indexterm +#: book.translate.xml:2176 msgid "<primary>The Weather Channel</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2159 +#: book.translate.xml:2174 msgid "" "<link xlink:href=\"http://www.weather.com/\">The Weather Channel</link> <_:" "indexterm-1/> - The IntelliStar appliance that is installed at each local " @@ -2253,12 +2273,12 @@ msgstr "" "視網路節目的 IntelliStar 設備便是使用 FreeBSD。" #. (itstool) path: para/indexterm -#: book.translate.xml:2172 +#: book.translate.xml:2187 msgid "<primary>Verisign</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2171 +#: book.translate.xml:2186 msgid "" "<link xlink:href=\"http://www.verisign.com/\">Verisign</link> <_:indexterm-1/" "> - Verisign is responsible for operating the .com and .net root domain " @@ -2272,12 +2292,12 @@ msgstr "" "點故障的問題。" #. (itstool) path: para/indexterm -#: book.translate.xml:2185 +#: book.translate.xml:2200 msgid "<primary>Voxer</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2184 +#: book.translate.xml:2199 msgid "" "<link xlink:href=\"http://www.voxer.com/\">Voxer</link> <_:indexterm-1/> - " "Voxer powers their mobile voice messaging platform with ZFS on FreeBSD. " @@ -2293,12 +2313,12 @@ msgstr "" "的 <acronym>ZFS</acronym> 也支援了 TRIM。" #. (itstool) path: para/indexterm -#: book.translate.xml:2199 +#: book.translate.xml:2214 msgid "<primary>WhatsApp</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2198 +#: book.translate.xml:2213 msgid "" "<link xlink:href=\"http://www.whatsapp.com/\">WhatsApp</link> <_:indexterm-1/" "> - When WhatsApp needed a platform that would be able to handle more than 1 " @@ -2310,12 +2330,12 @@ msgstr "" "台時,它們選擇了 FreeBSD。它們接著擴大規模到每台伺服器處理超過 250 萬的連線。" #. (itstool) path: para/indexterm -#: book.translate.xml:2211 +#: book.translate.xml:2226 msgid "<primary>Wheel Systems</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2209 +#: book.translate.xml:2224 msgid "" "<link xlink:href=\"http://wheelsystems.com/\">Wheel Systems</link> <_:" "indexterm-1/> - The FUDO security appliance allows enterprises to monitor, " @@ -2329,17 +2349,17 @@ msgstr "" "GELI, Capsicum, HAST 及 auditdistd。" #. (itstool) path: sect2/para -#: book.translate.xml:2223 +#: book.translate.xml:2238 msgid "FreeBSD has also spawned a number of related open source projects:" msgstr "FreeBSD 也催生了數個相關的開源計劃:" #. (itstool) path: para/indexterm -#: book.translate.xml:2230 +#: book.translate.xml:2245 msgid "<primary>BSD Router</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2228 +#: book.translate.xml:2243 msgid "" "<link xlink:href=\"http://bsdrp.net/\">BSD Router</link> <_:indexterm-1/> - " "A FreeBSD based replacement for large enterprise routers designed to run on " @@ -2349,12 +2369,12 @@ msgstr "" "以 FreeBSD 為基礎的大型企業路由器替代方案,專門設計為可在標準 PC 硬體上運作。" #. (itstool) path: para/indexterm -#: book.translate.xml:2239 +#: book.translate.xml:2254 msgid "<primary>FreeNAS</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2238 +#: book.translate.xml:2253 msgid "" "<link xlink:href=\"http://www.freenas.org/\">FreeNAS</link> <_:indexterm-1/> " "- A customized FreeBSD designed to be used as a network file server " @@ -2369,12 +2389,12 @@ msgstr "" "iSCSI,還有以 FreeBSD Jail 為基礎的套件系統。" #. (itstool) path: para/indexterm -#: book.translate.xml:2251 +#: book.translate.xml:2266 msgid "<primary>GhostBSD</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2250 +#: book.translate.xml:2265 msgid "" "<link xlink:href=\"http://www.ghostbsd.org/\">GhostBSD</link> <_:indexterm-1/" "> - A desktop oriented distribution of FreeBSD bundled with the Gnome " @@ -2384,12 +2404,12 @@ msgstr "" "> - 採用 Gnome 桌面環境的 FreeBSD 發行版。" #. (itstool) path: para/indexterm -#: book.translate.xml:2259 +#: book.translate.xml:2274 msgid "<primary>mfsBSD</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2258 +#: book.translate.xml:2273 msgid "" "<link xlink:href=\"http://mfsbsd.vx.sk/\">mfsBSD</link> <_:indexterm-1/> - A " "toolkit for building a FreeBSD system image that runs entirely from memory." @@ -2398,12 +2418,12 @@ msgstr "" "來建置可完全從記憶體執行 FreeBSD 系統映像檔工具。" #. (itstool) path: para/indexterm -#: book.translate.xml:2267 +#: book.translate.xml:2282 msgid "<primary>NAS4Free</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2266 +#: book.translate.xml:2281 msgid "" "<link xlink:href=\"http://www.nas4free.org/\">NAS4Free</link> <_:indexterm-1/" "> - A file server distribution based on FreeBSD with a PHP powered web " @@ -2413,12 +2433,12 @@ msgstr "" "> - 以 FreeBSD 及 PHP 驅動網頁介面為基礎的檔案伺服器。" #. (itstool) path: para/indexterm -#: book.translate.xml:2275 +#: book.translate.xml:2290 msgid "<primary>OPNsense</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2274 +#: book.translate.xml:2289 msgid "" "<link xlink:href=\"http://www.opnsense.org/\">OPNSense</link> <_:indexterm-1/" "> - OPNsense is an open source, easy-to-use and easy-to-build FreeBSD based " @@ -2433,12 +2453,12 @@ msgstr "" "功能集,同時擁有開放和安全的來源。" #. (itstool) path: para/indexterm -#: book.translate.xml:2287 +#: book.translate.xml:2302 msgid "<primary>PC-BSD</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2286 +#: book.translate.xml:2301 msgid "" "<link xlink:href=\"http://www.pcbsd.org/\">PC-BSD</link> <_:indexterm-1/> - " "A customized version of FreeBSD geared towards desktop users with graphical " @@ -2450,12 +2470,12 @@ msgstr "" "能給所有使用者,專門設計來緩解使用者在 Windows 與 OS X 間的過渡。" #. (itstool) path: para/indexterm -#: book.translate.xml:2297 +#: book.translate.xml:2312 msgid "<primary>pfSense</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2296 +#: book.translate.xml:2311 msgid "" "<link xlink:href=\"http://www.pfsense.org/\">pfSense</link> <_:indexterm-1/> " "- A firewall distribution based on FreeBSD with a huge array of features and " @@ -2465,12 +2485,12 @@ msgstr "" "- 以 FreeBSD 為基礎的防火牆發行版,支援巨型陣列及大規模 IPv6。" #. (itstool) path: para/indexterm -#: book.translate.xml:2306 +#: book.translate.xml:2321 msgid "<primary>ZRouter</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2305 +#: book.translate.xml:2320 msgid "" "<link xlink:href=\"http://zrouter.org/\">ZRouter</link> <_:indexterm-1/> - " "An open source alternative firmware for embedded devices based on FreeBSD. " @@ -2481,135 +2501,135 @@ msgstr "" "用韌體。" #. (itstool) path: sect2/para -#: book.translate.xml:2314 +#: book.translate.xml:2329 msgid "" "FreeBSD is also used to power some of the biggest sites on the Internet, " "including:" msgstr "FreeBSD 也同時被用來驅動一些網際網路上的大型網站,包括:" #. (itstool) path: para/indexterm -#: book.translate.xml:2320 +#: book.translate.xml:2335 msgid "<primary>Yahoo!</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2319 +#: book.translate.xml:2334 msgid "" "<link xlink:href=\"http://www.yahoo.com/\">Yahoo!</link> <_:indexterm-1/>" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2327 +#: book.translate.xml:2342 msgid "<primary>Yandex</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2326 +#: book.translate.xml:2341 msgid "" "<link xlink:href=\"http://www.yandex.ru/\">Yandex</link> <_:indexterm-1/>" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2334 +#: book.translate.xml:2349 msgid "<primary>Rambler</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2333 +#: book.translate.xml:2348 msgid "" "<link xlink:href=\"http://www.rambler.ru/\">Rambler</link> <_:indexterm-1/>" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2341 +#: book.translate.xml:2356 msgid "<primary>Sina</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2340 +#: book.translate.xml:2355 msgid "<link xlink:href=\"http://www.sina.com/\">Sina</link> <_:indexterm-1/>" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2349 +#: book.translate.xml:2364 msgid "<primary>Pair Networks</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2347 +#: book.translate.xml:2362 msgid "" "<link xlink:href=\"http://www.pair.com/\">Pair Networks</link> <_:" "indexterm-1/>" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2357 +#: book.translate.xml:2372 msgid "<primary>Sony Japan</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2355 +#: book.translate.xml:2370 msgid "" "<link xlink:href=\"http://www.sony.co.jp/\">Sony Japan</link> <_:indexterm-1/" ">" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2364 +#: book.translate.xml:2379 msgid "<primary>Netcraft</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2363 +#: book.translate.xml:2378 msgid "" "<link xlink:href=\"http://www.netcraft.com/\">Netcraft</link> <_:indexterm-1/" ">" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2370 +#: book.translate.xml:2385 msgid "" "<link xlink:href=\"https://signup.netflix.com/openconnect\">Netflix</link> " "<_:indexterm-1/>" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2378 +#: book.translate.xml:2393 msgid "<primary>NetEase</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2377 +#: book.translate.xml:2392 msgid "" "<link xlink:href=\"http://www.163.com/\">NetEase</link> <_:indexterm-1/>" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2385 +#: book.translate.xml:2400 msgid "<primary>Weathernews</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2384 +#: book.translate.xml:2399 msgid "" "<link xlink:href=\"http://www.weathernews.com/\">Weathernews</link> <_:" "indexterm-1/>" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2393 +#: book.translate.xml:2408 msgid "<primary>TELEHOUSE America</primary>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2391 +#: book.translate.xml:2406 msgid "" "<link xlink:href=\"http://www.telehouse.com/\">TELEHOUSE America</link> <_:" "indexterm-1/>" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:2400 +#: book.translate.xml:2415 msgid "" "and many more. Wikipedia also maintains a <link xlink:href=\"http://en." "wikipedia.org/wiki/List_of_products_based_on_FreeBSD\">list of products " @@ -2619,12 +2639,12 @@ msgstr "" "org/wiki/List_of_products_based_on_FreeBSD\">以 FreeBSD 為基礎的產品</link>。" #. (itstool) path: sect1/title -#: book.translate.xml:2406 +#: book.translate.xml:2421 msgid "About the FreeBSD Project" msgstr "關於 FreeBSD 計劃" #. (itstool) path: sect1/para -#: book.translate.xml:2408 +#: book.translate.xml:2423 msgid "" "The following section provides some background information on the project, " "including a brief history, project goals, and the development model of the " @@ -2632,37 +2652,37 @@ msgid "" msgstr "接下來講的是 FreeBSD 計劃的背景,包含歷史、計劃目標以及開發模式。" #. (itstool) path: sect2/title -#: book.translate.xml:2413 +#: book.translate.xml:2428 msgid "A Brief History of FreeBSD" msgstr "FreeBSD 歷史簡介" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2415 +#: book.translate.xml:2430 msgid "<primary>386BSD Patchkit</primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2416 +#: book.translate.xml:2431 msgid "<primary>Hubbard, Jordan</primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2417 +#: book.translate.xml:2432 msgid "<primary>Williams, Nate</primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2418 +#: book.translate.xml:2433 msgid "<primary>Grimes, Rod</primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2419 +#: book.translate.xml:2434 msgid "<primary>FreeBSD Project</primary> <secondary>history</secondary>" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:2424 +#: book.translate.xml:2439 msgid "" "The FreeBSD Project had its genesis in the early part of 1993, partially as " "an outgrowth of the Unofficial 386BSDPatchkit by the patchkit's last 3 " @@ -2672,12 +2692,12 @@ msgstr "" "劃的最後三個協調人 Nate Williams,Rod Grimes 和 Jordan Hubbard。" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2429 book.translate.xml:2469 +#: book.translate.xml:2444 book.translate.xml:2484 msgid "<primary>386BSD</primary>" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:2430 +#: book.translate.xml:2445 msgid "" "The original goal was to produce an intermediate snapshot of 386BSD in order " "to fix a number of problems with it that the patchkit mechanism just was not " @@ -2689,12 +2709,12 @@ msgstr "" "386BSD Interim 便是這個原因。" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2436 +#: book.translate.xml:2451 msgid "<primary>Jolitz, Bill</primary>" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:2437 +#: book.translate.xml:2452 msgid "" "386BSD was Bill Jolitz's operating system, which had been up to that point " "suffering rather severely from almost a year's worth of neglect. As the " @@ -2710,17 +2730,17 @@ msgstr "" "出未來的打算,所以該計劃便突然面臨中止。" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2447 +#: book.translate.xml:2462 msgid "<primary>Greenman, David</primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2448 +#: book.translate.xml:2463 msgid "<primary>Walnut Creek CDROM</primary>" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:2450 +#: book.translate.xml:2465 msgid "" "The trio thought that the goal remained worthwhile, even without Bill's " "support, and so they adopted the name \"FreeBSD\" coined by David Greenman. " @@ -2745,27 +2765,27 @@ msgstr "" "模。" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2466 +#: book.translate.xml:2481 msgid "<primary>4.3BSD-Lite</primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2467 book.translate.xml:2482 +#: book.translate.xml:2482 book.translate.xml:2497 msgid "<primary>Net/2</primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2468 book.translate.xml:2481 +#: book.translate.xml:2483 book.translate.xml:2496 msgid "<primary>U.C. Berkeley</primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2470 book.translate.xml:8847 +#: book.translate.xml:2485 book.translate.xml:8862 msgid "<primary>Free Software Foundation</primary>" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:2472 +#: book.translate.xml:2487 msgid "" "The first CD-ROM (and general net-wide) distribution was FreeBSD 1.0, " "released in December of 1993. This was based on the 4.3BSD-Lite " @@ -2780,17 +2800,17 @@ msgstr "" "還算成功,我們又接著於 1994 年 5 月發行了相當成功的 FreeBSD 1.1。" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2480 +#: book.translate.xml:2495 msgid "<primary>Novell</primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2483 +#: book.translate.xml:2498 msgid "<primary>AT&T</primary>" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:2484 +#: book.translate.xml:2499 msgid "" "Around this time, some rather unexpected storm clouds formed on the horizon " "as Novell and U.C. Berkeley settled their long-running lawsuit over the " @@ -2815,7 +2835,7 @@ msgstr "" "最後一次發行,也就是 FreeBSD 1.1.5.1。" #. (itstool) path: sect2/para -#: book.translate.xml:2501 +#: book.translate.xml:2516 msgid "" "FreeBSD then set about the arduous task of literally re-inventing itself " "from a completely new and rather incomplete set of 4.4BSD-Lite bits. The " @@ -2837,7 +2857,7 @@ msgstr "" "之於 1995 年 6 月又發行了更容易安裝,更好的 FreeBSD 2.0.5。" #. (itstool) path: sect2/para -#: book.translate.xml:2515 +#: book.translate.xml:2530 msgid "" "Since that time, FreeBSD has made a series of releases each time improving " "the stability, speed, and feature set of the previous version." @@ -2846,7 +2866,7 @@ msgstr "" "的發佈版本。" #. (itstool) path: sect2/para -#: book.translate.xml:2519 +#: book.translate.xml:2534 msgid "" "For now, long-term development projects continue to take place in the 10.X-" "CURRENT (trunk) branch, and snapshot releases of 10.X are continually made " @@ -2858,24 +2878,24 @@ msgstr "" "snapshots/\">快照伺服器</link> 取得。" #. (itstool) path: info/title -#: book.translate.xml:2527 +#: book.translate.xml:2542 msgid "FreeBSD Project Goals" msgstr "FreeBSD 計劃目標" #. (itstool) path: authorgroup/author -#: book.translate.xml:2530 +#: book.translate.xml:2545 msgid "" "<personname> <firstname>Jordan</firstname> <surname>Hubbard</surname> </" "personname> <contrib>Contributed by </contrib>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2540 +#: book.translate.xml:2555 msgid "<primary>FreeBSD Project</primary> <secondary>goals</secondary>" msgstr "<primary>FreeBSD 計劃</primary> <secondary>目標</secondary>" #. (itstool) path: sect2/para -#: book.translate.xml:2544 +#: book.translate.xml:2559 msgid "" "The goals of the FreeBSD Project are to provide software that may be used " "for any purpose and without strings attached. Many of us have a significant " @@ -2895,22 +2915,22 @@ msgstr "" "是我們所倡導的一個目標。" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2556 +#: book.translate.xml:2571 msgid "<primary>GNU General Public License (GPL)</primary>" msgstr "<primary>GNU 通用公共授權條款 (GPL)</primary>" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2559 +#: book.translate.xml:2574 msgid "<primary>GNU Lesser General Public License (LGPL)</primary>" msgstr "<primary>GNU 較寬鬆通用公共授權條款 (LGPL)</primary>" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2562 +#: book.translate.xml:2577 msgid "<primary>BSD Copyright</primary>" msgstr "<primary>BSD 版權</primary>" #. (itstool) path: sect2/para -#: book.translate.xml:2563 +#: book.translate.xml:2578 msgid "" "That code in our source tree which falls under the GNU General Public " "License (GPL) or Library General Public License (LGPL) comes with slightly " @@ -2926,25 +2946,25 @@ msgstr "" "果可以選擇的話, 我們會比較喜歡使用限制相對更寬鬆的 BSD 版權來發佈軟體。" #. (itstool) path: info/title -#: book.translate.xml:2575 +#: book.translate.xml:2590 msgid "The FreeBSD Development Model" msgstr "FreeBSD 開發模式" #. (itstool) path: authorgroup/author -#: book.translate.xml:2578 +#: book.translate.xml:2593 msgid "" "<personname> <firstname>Satoshi</firstname> <surname>Asami</surname> </" "personname> <contrib>Contributed by </contrib>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:2588 +#: book.translate.xml:2603 msgid "" "<primary>FreeBSD Project</primary> <secondary>development model</secondary>" msgstr "<primary>FreeBSD 專案</primary> <secondary>開發模式</secondary>" #. (itstool) path: sect2/para -#: book.translate.xml:2593 +#: book.translate.xml:2608 msgid "" "The development of FreeBSD is a very open and flexible process, being " "literally built from the contributions of thousands of people around the " @@ -2971,7 +2991,7 @@ msgstr "" "link> 對那些希望了解我們進度的人也是相當有用的。" #. (itstool) path: sect2/para -#: book.translate.xml:2606 +#: book.translate.xml:2621 msgid "" "Useful things to know about the FreeBSD Project and its development process, " "whether working independently or in close cooperation:" @@ -2980,44 +3000,44 @@ msgstr "" "錯的︰" #. (itstool) path: varlistentry/term -#: book.translate.xml:2612 +#: book.translate.xml:2627 msgid "The SVN repositories<anchor xml:id=\"development-cvs-repository\"/>" msgstr "SVN 檔案庫<anchor xml:id=\"development-cvs-repository\"/>" #. (itstool) path: para/indexterm -#: book.translate.xml:2616 +#: book.translate.xml:2631 msgid "<primary>CVS</primary>" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2620 +#: book.translate.xml:2635 msgid "<primary>CVS Repository</primary>" msgstr "<primary>CVS 檔案庫</primary>" #. (itstool) path: para/indexterm -#: book.translate.xml:2624 +#: book.translate.xml:2639 msgid "<primary>Concurrent Versions System</primary> <see>CVS</see>" msgstr "" #. (itstool) path: para/indexterm #. (itstool) path: sect1/indexterm -#: book.translate.xml:2629 book.translate.xml:44963 book.translate.xml:45003 +#: book.translate.xml:2644 book.translate.xml:45017 book.translate.xml:45057 #: book.translate.xml:65535 msgid "<primary>Subversion</primary>" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2633 +#: book.translate.xml:2648 msgid "<primary>Subversion Repository</primary>" msgstr "" #. (itstool) path: para/indexterm -#: book.translate.xml:2637 +#: book.translate.xml:2652 msgid "<primary>SVN</primary> <see>Subversion</see>" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2615 +#: book.translate.xml:2630 msgid "" "<_:indexterm-1/> <_:indexterm-2/> <_:indexterm-3/> <_:indexterm-4/> <_:" "indexterm-5/> <_:indexterm-6/> For several years, the central source tree " @@ -3050,17 +3070,17 @@ msgstr "" "\"ports-using\">使用 Port 套件集</link> 了解如何取得 FreeBSD Port 套件集。" #. (itstool) path: varlistentry/term -#: book.translate.xml:2664 +#: book.translate.xml:2679 msgid "The committers list<anchor xml:id=\"development-committers\"/>" msgstr "提交者名單<anchor xml:id=\"development-committers\"/>" #. (itstool) path: para/indexterm -#: book.translate.xml:2668 +#: book.translate.xml:2683 msgid "<primary>committers</primary>" msgstr "<primary>提交者</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:2667 +#: book.translate.xml:2682 msgid "" "The <firstterm>committers</firstterm> <_:indexterm-1/> are the people who " "have <emphasis>write</emphasis> access to the Subversion tree, and are " @@ -3081,17 +3101,17 @@ msgstr "" "誤 (Bug)。" #. (itstool) path: varlistentry/term -#: book.translate.xml:2684 +#: book.translate.xml:2699 msgid "The FreeBSD core team<anchor xml:id=\"development-core\"/>" msgstr "FreeBSD 核心團隊<anchor xml:id=\"development-core\"/>" #. (itstool) path: para/indexterm -#: book.translate.xml:2688 +#: book.translate.xml:2703 msgid "<primary>core team</primary>" msgstr "<primary>核心團隊</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:2687 +#: book.translate.xml:2702 msgid "" "The <firstterm>FreeBSD core team</firstterm> <_:indexterm-1/> would be " "equivalent to the board of directors if the FreeBSD Project were a company. " @@ -3109,7 +3129,7 @@ msgstr "" "2014 年 7 月從提交者候選人之中選出來的,這個選舉每兩年會舉辦一次。" #. (itstool) path: note/para -#: book.translate.xml:2703 +#: book.translate.xml:2718 msgid "" "Like most developers, most members of the core team are also volunteers when " "it comes to FreeBSD development and do not benefit from the project " @@ -3126,12 +3146,12 @@ msgstr "" "而選擇投入 FreeBSD 開發的熱血有為者才對!" #. (itstool) path: varlistentry/term -#: book.translate.xml:2718 +#: book.translate.xml:2733 msgid "Outside contributors" msgstr "非官方貢獻者" #. (itstool) path: listitem/para -#: book.translate.xml:2721 +#: book.translate.xml:2736 msgid "" "Last, but definitely not least, the largest group of developers are the " "users themselves who provide feedback and bug fixes to us on an almost " @@ -3149,12 +3169,12 @@ msgstr "" "linkend=\"eresources\"/> 以瞭解各式不同的 FreeBSD 郵遞論壇。" #. (itstool) path: para/indexterm -#: book.translate.xml:2732 +#: book.translate.xml:2747 msgid "<primary>contributors</primary>" msgstr "<primary>貢獻者</primary>" #. (itstool) path: listitem/para -#: book.translate.xml:2730 +#: book.translate.xml:2745 msgid "" "<citetitle><link xlink:href=\"@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/articles/" "contributors/article.html\">The FreeBSD Contributors List</link></citetitle> " @@ -3167,7 +3187,7 @@ msgstr "" "貢獻 FreeBSD 一些回饋呢?" #. (itstool) path: listitem/para -#: book.translate.xml:2737 +#: book.translate.xml:2752 msgid "" "Providing code is not the only way of contributing to the project; for a " "more complete list of things that need doing, please refer to the <link " @@ -3177,7 +3197,7 @@ msgstr "" "<link xlink:href=\"@@URL_RELPREFIX@@/index.html\">FreeBSD 計畫網站</link>。" #. (itstool) path: sect2/para -#: book.translate.xml:2745 +#: book.translate.xml:2760 msgid "" "In summary, our development model is organized as a loose set of concentric " "circles. The centralized model is designed for the convenience of the " @@ -3194,7 +3214,7 @@ msgstr "" "用 — 而這個開發模式對我們要完成這個目標來說運作的非常好。" #. (itstool) path: sect2/para -#: book.translate.xml:2755 +#: book.translate.xml:2770 msgid "" "All we ask of those who would join us as FreeBSD developers is some of the " "same dedication its current people have to its continued success!" @@ -3203,12 +3223,12 @@ msgstr "" "保繼續成功!" #. (itstool) path: sect2/title -#: book.translate.xml:2761 +#: book.translate.xml:2776 msgid "Third Party Programs" msgstr "第三方程式" #. (itstool) path: sect2/para -#: book.translate.xml:2763 +#: book.translate.xml:2778 msgid "" "In addition to the base distributions, FreeBSD offers a ported software " "collection with thousands of commonly sought-after programs. At the time of " @@ -3226,22 +3246,22 @@ msgid "" "\"/>." msgstr "" "除了基礎發行版之外,FreeBSD 提供了擁有上千個常用的程式的移植軟體的套件集,在" -"撰寫本文的同時,已有超過 24,000 個 Port! Port 的範圍從 HTTP 伺服器到遊戲、語" +"撰寫本文的同時,已有超過 24,000 個 Port!Port 的範圍從 HTTP 伺服器到遊戲、語" "系、編輯器,幾乎所有東西都在裡面。完整的 Port 套件集需要將近 500 MB。要編譯一" "個 Port 您只需要切換目錄到您想安裝的程式目錄,然後輸入 <command>make " "install</command>,接著系統便會處理剩下的動作。您編譯的每個 Port 完整原始發行" "版內容是動態下載的,所以您只需要有足夠的磁碟空間來編譯您想要的 Port。幾乎所" -"有 Port 都提供以預先編譯好的<quote>套件</quote>,您可以透過簡單的指令來安裝 " -"(<command>pkg install</command>),提供那些不想要自行從原始碼編譯的人使用。更" -"多有關套件與 Port 的資訊可於 <xref linkend=\"ports\"/> 取得。" +"有 Port 都提供已經預先編譯好的<quote>套件</quote>,您可以透過簡單的指令來安" +"裝 (<command>pkg install</command>),提供那些不想要自行從原始碼編譯的人使用。" +"更多有關套件與 Port 的資訊可於 <xref linkend=\"ports\"/> 取得。" #. (itstool) path: sect2/title -#: book.translate.xml:2784 +#: book.translate.xml:2799 msgid "Additional Documentation" msgstr "其他文件" #. (itstool) path: sect2/para -#: book.translate.xml:2786 +#: book.translate.xml:2801 msgid "" "All recent FreeBSD versions provide an option in the installer (either " "<citerefentry><refentrytitle>sysinstall</refentrytitle><manvolnum>8</" @@ -3263,12 +3283,12 @@ msgstr "" "已安裝在本機的操作手冊:" #. (itstool) path: varlistentry/term -#: book.translate.xml:2798 +#: book.translate.xml:2813 msgid "The FreeBSD Handbook" msgstr "FreeBSD 使用手冊" #. (itstool) path: listitem/para -#: book.translate.xml:2801 +#: book.translate.xml:2816 msgid "" "<link xlink:href=\"file://localhost/usr/local/share/doc/freebsd/handbook/" "index.html\"><filename>/usr/local/share/doc/freebsd/handbook/index.html</" @@ -3276,12 +3296,12 @@ msgid "" msgstr "" #. (itstool) path: varlistentry/term -#: book.translate.xml:2806 +#: book.translate.xml:2821 msgid "The FreeBSD FAQ" msgstr "FreeBSD 常見問答集" #. (itstool) path: listitem/para -#: book.translate.xml:2809 +#: book.translate.xml:2824 msgid "" "<link xlink:href=\"file://localhost/usr/local/share/doc/freebsd/faq/index." "html\"><filename>/usr/local/share/doc/freebsd/faq/index.html</filename></" @@ -3289,7 +3309,7 @@ msgid "" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:2814 +#: book.translate.xml:2829 msgid "" "You can also view the master (and most frequently updated) copies at <uri " "xlink:href=\"http://www.FreeBSD.org/\">http://www.FreeBSD.org/</uri>." @@ -3298,50 +3318,50 @@ msgstr "" "\"http://www.FreeBSD.org/\">http://www.FreeBSD.org/</uri>。" #. (itstool) path: info/title -#: book.translate.xml:2830 +#: book.translate.xml:2845 msgid "Installing FreeBSD" msgstr "安裝 FreeBSD" #. (itstool) path: authorgroup/author -#: book.translate.xml:2858 +#: book.translate.xml:2873 msgid "" "<personname> <firstname>Gavin</firstname> <surname>Atkinson</surname> </" "personname> <contrib>Updated for bsdinstall by </contrib>" msgstr "" #. (itstool) path: authorgroup/author -#: book.translate.xml:2867 +#: book.translate.xml:2882 msgid "" "<personname> <firstname>Warren</firstname> <surname>Block</surname> </" "personname>" msgstr "" #. (itstool) path: authorgroup/author -#: book.translate.xml:2876 +#: book.translate.xml:2891 msgid "" "<personname> <firstname>Allan</firstname> <surname>Jude</surname> </" "personname> <contrib>Updated for root-on-ZFS by </contrib>" msgstr "" #. (itstool) path: sect1/indexterm -#: book.translate.xml:2890 +#: book.translate.xml:2905 msgid "<primary>installation</primary>" msgstr "<primary>安裝</primary>" #. (itstool) path: sect1/para -#: book.translate.xml:2892 +#: book.translate.xml:2907 msgid "" "Beginning with FreeBSD 9.0-RELEASE, FreeBSD provides an easy to use, text-" "based installation program named <application>bsdinstall</application>. This " "chapter describes how to install FreeBSD using <application>bsdinstall</" "application>." msgstr "" -"自從 FreeBSD 9.0-RELEASE 開始, FreeBSD 提供一個易用,文字介面的安裝程式 " +"自從 FreeBSD 9.0-RELEASE 開始,FreeBSD 提供一個易用,文字介面的安裝程式 " "<application>bsdinstall</application>。 本章描述如何用 " "<application>bsdinstall</application> 來安裝 FreeBSD。" #. (itstool) path: sect1/para -#: book.translate.xml:2898 +#: book.translate.xml:2913 msgid "" "In general, the installation instructions in this chapter are written for " "the <trademark>i386</trademark> and <acronym>AMD64</acronym> architectures. " @@ -3356,7 +3376,7 @@ msgstr "" "著來做。" #. (itstool) path: note/para -#: book.translate.xml:2907 +#: book.translate.xml:2922 msgid "" "Users who prefer to install FreeBSD using a graphical installer may be " "interested in <application>pc-sysinstall</application>, the installer used " @@ -3372,22 +3392,22 @@ msgstr "" "\">http://wiki.pcbsd.org/index.php/Colophon</link>)。" #. (itstool) path: listitem/para -#: book.translate.xml:2919 +#: book.translate.xml:2934 msgid "The minimum hardware requirements and FreeBSD supported architectures." msgstr "最低的硬體需求和 FreeBSD 支援的架構。" #. (itstool) path: listitem/para -#: book.translate.xml:2924 +#: book.translate.xml:2939 msgid "How to create the FreeBSD installation media." msgstr "如何建立 FreeBSD 的安裝媒體。" #. (itstool) path: listitem/para -#: book.translate.xml:2928 +#: book.translate.xml:2943 msgid "How to start <application>bsdinstall</application>." msgstr "如何開始執行 <application>bsdinstall</application>。" #. (itstool) path: listitem/para -#: book.translate.xml:2933 +#: book.translate.xml:2948 msgid "" "The questions <application>bsdinstall</application> will ask, what they " "mean, and how to answer them." @@ -3396,29 +3416,29 @@ msgstr "" "回答。" #. (itstool) path: listitem/para -#: book.translate.xml:2938 +#: book.translate.xml:2953 msgid "How to troubleshoot a failed installation." msgstr "安裝失敗時如何做故障排除。" #. (itstool) path: listitem/para -#: book.translate.xml:2942 +#: book.translate.xml:2957 msgid "" "How to access a live version of FreeBSD before committing to an installation." msgstr "如何在正式安裝前使用 live 版本的 FreeBSD。" #. (itstool) path: sect1/para -#: book.translate.xml:2947 book.translate.xml:10594 book.translate.xml:13899 -#: book.translate.xml:17970 book.translate.xml:19228 book.translate.xml:23652 -#: book.translate.xml:29322 book.translate.xml:31069 book.translate.xml:31821 -#: book.translate.xml:35465 book.translate.xml:41396 book.translate.xml:41591 -#: book.translate.xml:42915 book.translate.xml:43938 book.translate.xml:46099 -#: book.translate.xml:46458 book.translate.xml:48669 book.translate.xml:50375 -#: book.translate.xml:58022 book.translate.xml:61673 +#: book.translate.xml:2962 book.translate.xml:10609 book.translate.xml:13913 +#: book.translate.xml:17988 book.translate.xml:19253 book.translate.xml:23677 +#: book.translate.xml:29376 book.translate.xml:31123 book.translate.xml:31875 +#: book.translate.xml:35519 book.translate.xml:41450 book.translate.xml:41645 +#: book.translate.xml:42969 book.translate.xml:43992 book.translate.xml:46153 +#: book.translate.xml:46512 book.translate.xml:48723 book.translate.xml:50429 +#: book.translate.xml:58076 book.translate.xml:61727 msgid "Before reading this chapter, you should:" msgstr "在開始閱讀這章之前,您需要︰" #. (itstool) path: listitem/para -#: book.translate.xml:2951 +#: book.translate.xml:2966 msgid "" "Read the supported hardware list that shipped with the version of FreeBSD to " "be installed and verify that the system's hardware is supported." @@ -3426,12 +3446,12 @@ msgstr "" "閱讀即將安裝的 FreeBSD 版本所附帶的硬體支援清單,並核對系統的硬體是否有支援。" #. (itstool) path: sect1/title -#: book.translate.xml:2959 +#: book.translate.xml:2974 msgid "Minimum Hardware Requirements" msgstr "最低硬體需求" #. (itstool) path: sect1/para -#: book.translate.xml:2961 +#: book.translate.xml:2976 msgid "" "The hardware requirements to install FreeBSD vary by architecture. Hardware " "architectures and devices supported by a FreeBSD release are listed on the " @@ -3447,30 +3467,30 @@ msgstr "" "也有建議如何正確的選擇在不同架構使用的映像檔。" #. (itstool) path: sect1/para -#: book.translate.xml:2968 +#: book.translate.xml:2983 msgid "" -"A FreeBSD installation requires a minimum of 64 MB of <acronym>RAM</acronym> " +"A FreeBSD installation requires a minimum of 96 MB of <acronym>RAM</acronym> " "and 1.5 GB of free hard drive space. However, such small amounts of memory " "and disk space are really only suitable for custom applications like " "embedded appliances. General-purpose desktop systems need more resources. " "2-4 GB RAM and at least 8 GB hard drive space is a good starting point." msgstr "" -"FreeBSD 安裝程序需要至少 64 MB 的 <acronym>RAM</acronym> 以及 1.5 GB 的硬碟空" -"間。然而,這樣少的記憶體及磁碟空間只適合在客製的應用上,如嵌入式設備,一般用" +"FreeBSD 安裝程序需要至少 96 MB 的 <acronym>RAM</acronym> 以及 1.5 GB 的硬碟空" +"間。然而,如此少的記憶體及磁碟空間只適合在客製的應用上,如嵌入式設備。一般用" "途的桌面系統會需要更多的資源,2-4 GB RAM 與至少 8 GB 的硬碟空間是不錯的起點。" #. (itstool) path: sect1/para -#: book.translate.xml:2976 +#: book.translate.xml:2991 msgid "These are the processor requirements for each architecture:" msgstr "每一種架構的處理器需求概述如下:" #. (itstool) path: varlistentry/term -#: book.translate.xml:2981 +#: book.translate.xml:2996 msgid "amd64" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2983 +#: book.translate.xml:2998 msgid "" "This is the most common desktop and laptop processor type, used in most " "modern systems. <trademark class=\"registered\">Intel</trademark> calls it " @@ -3482,7 +3502,7 @@ msgstr "" "製造商則稱該類型為 <acronym>x86-64</acronym>。" #. (itstool) path: listitem/para -#: book.translate.xml:2988 +#: book.translate.xml:3003 msgid "" "Examples of amd64 compatible processsors include: <trademark>AMD Athlon</" "trademark>64, <trademark>AMD Opteron</trademark>, multi-core <trademark " @@ -3497,17 +3517,17 @@ msgstr "" "器。" #. (itstool) path: varlistentry/term -#: book.translate.xml:2996 +#: book.translate.xml:3011 msgid "i386" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:2998 +#: book.translate.xml:3013 msgid "Older desktops and laptops often use this 32-bit, x86 architecture." msgstr "舊型的桌面電腦與筆記型電腦常使用此 32-bit, x86 架構。" #. (itstool) path: listitem/para -#: book.translate.xml:3001 +#: book.translate.xml:3016 msgid "" "Almost all i386-compatible processors with a floating point unit are " "supported. All <trademark class=\"registered\">Intel</trademark> processors " @@ -3517,7 +3537,7 @@ msgstr "" "\"registered\">Intel</trademark> 486 或是更高階的處理器也有支援。" #. (itstool) path: listitem/para -#: book.translate.xml:3005 +#: book.translate.xml:3020 msgid "" "FreeBSD will take advantage of Physical Address Extensions (<acronym>PAE</" "acronym>) support on <acronym>CPU</acronym>s with this feature. A kernel " @@ -3535,12 +3555,12 @@ msgstr "" "refentrytitle><manvolnum>4</manvolnum></citerefentry>。" #. (itstool) path: varlistentry/term -#: book.translate.xml:3017 +#: book.translate.xml:3032 msgid "ia64" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:3019 +#: book.translate.xml:3034 msgid "" "Currently supported processors are the <trademark class=\"registered" "\">Itanium</trademark> and the <trademark class=\"registered\">Itanium</" @@ -3558,12 +3578,12 @@ msgstr "" "<acronym>SMP</acronym>) 的設定都有支援。" #. (itstool) path: varlistentry/term -#: book.translate.xml:3029 +#: book.translate.xml:3044 msgid "pc98" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:3031 +#: book.translate.xml:3046 msgid "" "NEC PC-9801/9821 series with almost all i386-compatible processors, " "including 80486, <trademark class=\"registered\">Pentium</trademark>, " @@ -3581,7 +3601,7 @@ msgstr "" "FC-9801/9821 及 NEC SV-98 系列也有支援。" #. (itstool) path: listitem/para -#: book.translate.xml:3040 +#: book.translate.xml:3055 msgid "" "High-resolution mode is not supported. NEC PC-98XA/XL/RL/XL^2, and NEC PC-" "H98 series are supported in normal (PC-9801 compatible) mode only. The " @@ -3595,12 +3615,12 @@ msgstr "" "流排不支援。" #. (itstool) path: varlistentry/term -#: book.translate.xml:3051 +#: book.translate.xml:3066 msgid "powerpc" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:3053 +#: book.translate.xml:3068 msgid "" "All New World <acronym>ROM</acronym> <trademark class=\"registered\">Apple</" "trademark> <trademark class=\"registered\">Mac</trademark> systems with " @@ -3613,17 +3633,17 @@ msgstr "" "<acronym>CPU</acronym> 的機器都有支援。" #. (itstool) path: listitem/para -#: book.translate.xml:3058 +#: book.translate.xml:3073 msgid "A 32-bit kernel can only use the first 2 GB of <acronym>RAM</acronym>." msgstr "32 位元的核心只能使用前 2 GB 的 <acronym>RAM</acronym>。" #. (itstool) path: varlistentry/term -#: book.translate.xml:3064 +#: book.translate.xml:3079 msgid "sparc64" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:3066 +#: book.translate.xml:3081 msgid "" "Systems supported by FreeBSD/sparc64 are listed at the <link xlink:href=" "\"@@URL_RELPREFIX@@/platforms/sparc.html\">FreeBSD/sparc64 Project</link>." @@ -3632,7 +3652,7 @@ msgstr "" "platforms/sparc.html\">FreeBSD/sparc64 計劃</link>。" #. (itstool) path: listitem/para -#: book.translate.xml:3070 +#: book.translate.xml:3085 msgid "" "<acronym>SMP</acronym> is supported on all systems with more than 1 " "processor. A dedicated disk is required as it is not possible to share a " @@ -3642,12 +3662,12 @@ msgstr "" "因為此時無法和其他作業系統共用磁碟。" #. (itstool) path: sect1/title -#: book.translate.xml:3080 +#: book.translate.xml:3095 msgid "Pre-Installation Tasks" msgstr "安裝前準備工作" #. (itstool) path: sect1/para -#: book.translate.xml:3082 +#: book.translate.xml:3097 msgid "" "Once it has been determined that the system meets the minimum hardware " "requirements for installing FreeBSD, the installation file should be " @@ -3659,12 +3679,12 @@ msgstr "" "體。 做這些之前,先檢查以下核對清單的項目是否準備好了:" #. (itstool) path: step/title -#: book.translate.xml:3091 +#: book.translate.xml:3106 msgid "Back Up Important Data" msgstr "備份重要資料" #. (itstool) path: step/para -#: book.translate.xml:3093 +#: book.translate.xml:3108 msgid "" "Before installing any operating system, <emphasis>always</emphasis> backup " "all important data first. Do not store the backup on the system being " @@ -3681,12 +3701,12 @@ msgstr "" "面的資料都會遺失。" #. (itstool) path: step/title -#: book.translate.xml:3105 +#: book.translate.xml:3120 msgid "Decide Where to Install FreeBSD" msgstr "決定 FreeBSD 安裝在哪裡" #. (itstool) path: step/para -#: book.translate.xml:3107 +#: book.translate.xml:3122 msgid "" "If FreeBSD will be the only operating system installed, this step can be " "skipped. But if FreeBSD will share the disk with another operating system, " @@ -3697,7 +3717,7 @@ msgstr "" "是哪個分割區 (Partition)。" #. (itstool) path: step/para -#: book.translate.xml:3112 +#: book.translate.xml:3127 msgid "" "In the i386 and amd64 architectures, disks can be divided into multiple " "partitions using one of two partitioning schemes. A traditional " @@ -3723,7 +3743,7 @@ msgstr "" "個分割區,不再需要使用邏輯分割區。" #. (itstool) path: warning/para -#: book.translate.xml:3130 +#: book.translate.xml:3145 msgid "" "Some older operating systems, like <trademark class=\"registered\">Windows</" "trademark> XP, are not compatible with the <acronym>GPT</acronym> partition " @@ -3735,7 +3755,7 @@ msgstr "" "這類作業系統共用一個磁碟,則需要用 <acronym>MBR</acronym> 分割表格式。" #. (itstool) path: step/para -#: book.translate.xml:3137 +#: book.translate.xml:3152 msgid "" "The FreeBSD boot loader requires either a primary or <acronym>GPT</acronym> " "partition. If all of the primary or <acronym>GPT</acronym> partitions are " @@ -3749,7 +3769,7 @@ msgstr "" "工具來縮小現有的分割區,並使用釋放出來的空間建立新分割區。" #. (itstool) path: step/para -#: book.translate.xml:3145 +#: book.translate.xml:3160 msgid "" "A variety of free and commercial partition resizing tools are listed at " "<link xlink:href=\"http://en.wikipedia.org/wiki/" @@ -3770,7 +3790,7 @@ msgstr "" "GParted 同時也被許多 Linux Live <acronym>CD</acronym> 發行版所收錄。" #. (itstool) path: warning/para -#: book.translate.xml:3155 +#: book.translate.xml:3170 msgid "" "When used properly, disk shrinking utilities can safely create space for " "creating a new partition. Since the possibility of selecting the wrong " @@ -3782,7 +3802,7 @@ msgstr "" "料,並確認備份的完整性。" #. (itstool) path: step/para -#: book.translate.xml:3162 +#: book.translate.xml:3177 msgid "" "Disk partitions containing different operating systems make it possible to " "install multiple operating systems on one computer. An alternative is to use " @@ -3795,12 +3815,12 @@ msgstr "" "執行而不需要改變任何磁碟分割區。" #. (itstool) path: step/title -#: book.translate.xml:3171 +#: book.translate.xml:3186 msgid "Collect Network Information" msgstr "收集網路資訊" #. (itstool) path: step/para -#: book.translate.xml:3173 +#: book.translate.xml:3188 msgid "" "Some FreeBSD installation methods require a network connection in order to " "download the installation files. After any installation, the installer will " @@ -3810,7 +3830,7 @@ msgstr "" "入設定系統網路的介面。" #. (itstool) path: step/para -#: book.translate.xml:3178 +#: book.translate.xml:3193 msgid "" "If the network has a <acronym>DHCP</acronym> server, it can be used to " "provide automatic network configuration. If <acronym>DHCP</acronym> is not " @@ -3822,45 +3842,45 @@ msgstr "" "商 (Internet Service Provider, ISP) 取得以的網路資訊供系統使用:" #. (itstool) path: orderedlist/title -#: book.translate.xml:3186 +#: book.translate.xml:3201 msgid "Required Network Information" msgstr "需要的網路資訊" #. (itstool) path: listitem/para #. (itstool) path: row/entry -#: book.translate.xml:3189 book.translate.xml:53429 +#: book.translate.xml:3204 book.translate.xml:53483 msgid "<acronym>IP</acronym> address" msgstr "<acronym>IP</acronym> 位址" #. (itstool) path: listitem/para -#: book.translate.xml:3193 +#: book.translate.xml:3208 msgid "Subnet mask" msgstr "子網路遮罩" #. (itstool) path: listitem/para -#: book.translate.xml:3197 +#: book.translate.xml:3212 msgid "<acronym>IP</acronym> address of default gateway" msgstr "預設閘道器 <acronym>IP</acronym> 位址" #. (itstool) path: listitem/para -#: book.translate.xml:3202 +#: book.translate.xml:3217 msgid "Domain name of the network" msgstr "網路的網域名稱" #. (itstool) path: listitem/para -#: book.translate.xml:3206 +#: book.translate.xml:3221 msgid "" "<acronym>IP</acronym> addresses of the network's <acronym>DNS</acronym> " "servers" msgstr "網路 <acronym>DNS</acronym> 伺服器 <acronym>IP</acronym> 位址" #. (itstool) path: step/title -#: book.translate.xml:3213 +#: book.translate.xml:3228 msgid "Check for FreeBSD Errata" msgstr "檢查 FreeBSD 勘誤表" #. (itstool) path: step/para -#: book.translate.xml:3215 +#: book.translate.xml:3230 msgid "" "Although the FreeBSD Project strives to ensure that each release of FreeBSD " "is as stable as possible, bugs occasionally creep into the process. On very " @@ -3878,7 +3898,7 @@ msgstr "" "html</link>)。 安裝前要檢查勘誤表,確保沒有會影響到安裝的問題。" #. (itstool) path: step/para -#: book.translate.xml:3225 +#: book.translate.xml:3240 msgid "" "Information and errata for all the releases can be found on the release " "information section of the FreeBSD web site (<link xlink:href=" @@ -3890,12 +3910,12 @@ msgstr "" "index.html</link>)。" #. (itstool) path: sect2/title -#: book.translate.xml:3232 +#: book.translate.xml:3247 msgid "Prepare the Installation Media" msgstr "準備安裝的媒體" #. (itstool) path: sect2/para -#: book.translate.xml:3234 +#: book.translate.xml:3249 msgid "" "The FreeBSD installer is not an application that can be run from within " "another operating system. Instead, download a FreeBSD installation file, " @@ -3909,7 +3929,7 @@ msgstr "" "媒體來安裝。" #. (itstool) path: sect2/para -#: book.translate.xml:3241 +#: book.translate.xml:3256 msgid "" "FreeBSD installation files are available at <link xlink:href=" "\"@@URL_RELPREFIX@@/where.html#download\">www.freebsd.org/where." @@ -3928,7 +3948,7 @@ msgstr "" "<acronym>DVD</acronym> 來開機。" #. (itstool) path: sect2/para -#: book.translate.xml:3250 +#: book.translate.xml:3265 msgid "" "Installation files are available in several formats. The formats vary " "depending on computer architecture and media type." @@ -3936,7 +3956,7 @@ msgstr "安裝檔有許多種可用的格式,格式會依據電腦架構及媒 #. (itstool) path: sect2/para #. (itstool) id: book.translate.xml#bsdinstall-installation-media-uefi -#: book.translate.xml:3254 +#: book.translate.xml:3269 msgid "" "Additional installation files are included for computers that boot with " "<acronym>UEFI</acronym> (Unified Extensible Firmware Interface). The names " @@ -3947,12 +3967,12 @@ msgstr "" "filename>。" #. (itstool) path: sect2/para -#: book.translate.xml:3260 +#: book.translate.xml:3275 msgid "File types:" -msgstr "檔案類型:" +msgstr "檔案類型:" #. (itstool) path: listitem/para -#: book.translate.xml:3264 +#: book.translate.xml:3279 msgid "" "<literal>-bootonly.iso</literal>: This is the smallest installation file as " "it only contains the installer. A working Internet connection is required " @@ -3960,23 +3980,23 @@ msgid "" "complete the FreeBSD installation. This file should be burned to a " "<acronym>CD</acronym> using a <acronym>CD</acronym> burning application." msgstr "" -"<literal>-bootonly.iso</literal>: 這是最精簡的安裝檔,檔案中只含安裝程式。 安" +"<literal>-bootonly.iso</literal>:這是最精簡的安裝檔,檔案中只含安裝程式。 安" "裝時需要網際網路連線來下載所需的檔案以完成 FreeBSD 安裝。這個檔案應使用 " "<acronym>CD</acronym> 燒錄應用程式燒錄到 <acronym>CD</acronym> 使用。" #. (itstool) path: listitem/para -#: book.translate.xml:3274 +#: book.translate.xml:3289 msgid "" "<literal>-disc1.iso</literal>: This file contains all of the files needed to " "install FreeBSD, its source, and the Ports Collection. It should be burned " "to a <acronym>CD</acronym> using a <acronym>CD</acronym> burning application." msgstr "" -"<literal>-disc1.iso</literal>: 這個檔案含有所有安裝 FreeBSD 所需的檔案,包含" +"<literal>-disc1.iso</literal>:這個檔案含有所有安裝 FreeBSD 所需的檔案,包含" "原始碼及 Port 套件集。這個檔案應使用 <acronym>CD</acronym> 燒錄應用程式燒錄" "到 <acronym>CD</acronym> 使用。" #. (itstool) path: listitem/para -#: book.translate.xml:3282 +#: book.translate.xml:3297 msgid "" "<literal>-dvd1.iso</literal>: This file contains all of the files needed to " "install FreeBSD, its source, and the Ports Collection. It also contains a " @@ -3985,24 +4005,24 @@ msgid "" "requiring a connection to the Internet. This file should be burned to a " "<acronym>DVD</acronym> using a <acronym>DVD</acronym> burning application." msgstr "" -"<literal>-dvd1.iso</literal>: 這個檔案含有所有安裝 FreeBSD 所需的檔案,包含原" +"<literal>-dvd1.iso</literal>:這個檔案含有所有安裝 FreeBSD 所需的檔案,包含原" "始碼及 Port 套件集,也內含熱門的 Binary 套件可安裝視窗管理程式以及一些應用程" "式,如此便可從媒體安裝完整的系統,無須連線到網際網路。這個檔案應使用 " "<acronym>DVD</acronym> 燒錄應用程式燒錄到 <acronym>DVD</acronym> 使用。" #. (itstool) path: listitem/para -#: book.translate.xml:3293 +#: book.translate.xml:3308 msgid "" "<literal>-memstick.img</literal>: This file contains all of the files needed " "to install FreeBSD, its source, and the Ports Collection. It should be " "burned to a <acronym>USB</acronym> stick using the instructions below." msgstr "" -"<literal>-memstick.img</literal>: 這個檔案含有所有安裝 FreeBSD 所需的檔案,包" +"<literal>-memstick.img</literal>:這個檔案含有所有安裝 FreeBSD 所需的檔案,包" "含原始碼及 Port 套件集。這個檔案應依據以下操作指示寫入到 <acronym>USB</" "acronym> 隨身碟使用。" #. (itstool) path: sect2/para -#: book.translate.xml:3301 +#: book.translate.xml:3316 msgid "" "After downloading the image file, download <filename>CHECKSUM.SHA256</" "filename> from the same directory. Calculate a <firstterm>checksum</" @@ -4014,28 +4034,27 @@ msgstr "" "映像檔下載完成之後,下載同一個目錄之中的 <filename>CHECKSUM.SHA256</" "filename>。FreeBSD 提供 <citerefentry><refentrytitle>sha256</" "refentrytitle><manvolnum>1</manvolnum></citerefentry> 可用來計算映像檔的 " -"<firstterm>校驗和 (Checksum)</firstterm>,使用方式為 <command>sha256 " +"<firstterm>校驗碼 (Checksum)</firstterm>,使用方式為 <command>sha256 " "<replaceable>imagefilename</replaceable></command>,其他作業系統也會有類似的" "程式。" #. (itstool) path: sect2/para -#: book.translate.xml:3309 +#: book.translate.xml:3324 msgid "" "Compare the calculated checksum with the one shown in <filename>CHECKSUM." "SHA256</filename>. The checksums must match exactly. If the checksums do not " "match, the image file is corrupt and must be downloaded again." msgstr "" -"比對計算後的 checksum 與 <filename>CHECKSUM.SHA256</filename> 檔案中的值," -"checksum 應該要完全相符,若 checksum 不相符,則代表該映像檔是損壞的,必須再下" -"載一次。" +"比對計算後的校驗碼與 <filename>CHECKSUM.SHA256</filename> 檔案中的值,校驗碼" +"應該要完全相符,若校驗碼不相符,則代表該映像檔是損壞的,必須再下載一次。" #. (itstool) path: sect3/title -#: book.translate.xml:3315 +#: book.translate.xml:3330 msgid "Writing an Image File to <acronym>USB</acronym>" msgstr "寫入映象檔到 <acronym>USB</acronym>" #. (itstool) path: sect3/para -#: book.translate.xml:3317 +#: book.translate.xml:3332 msgid "" "The <filename>*.img</filename> file is an <emphasis>image</emphasis> of the " "complete contents of a memory stick. It <emphasis>cannot</emphasis> be " @@ -4049,7 +4068,7 @@ msgstr "" "隨身碟,本節會介紹其中兩種。" #. (itstool) path: important/para -#: book.translate.xml:3326 +#: book.translate.xml:3341 msgid "" "Before proceeding, back up any important data on the <acronym>USB</acronym> " "stick. This procedure will erase the existing data on the stick." @@ -4058,12 +4077,12 @@ msgstr "" "身碟上既有的資料。" #. (itstool) path: procedure/title -#: book.translate.xml:3332 +#: book.translate.xml:3347 msgid "Using <command>dd</command> to Write the Image" msgstr "使用 <command>dd</command> 來寫入映像檔" #. (itstool) path: warning/para -#: book.translate.xml:3336 +#: book.translate.xml:3351 msgid "" "This example uses <filename>/dev/da0</filename> as the target device where " "the image will be written. Be <emphasis>very careful</emphasis> that the " @@ -4075,7 +4094,7 @@ msgstr "" "毀所有在指定目標裝置上已存在的資料。" #. (itstool) path: step/para -#: book.translate.xml:3344 +#: book.translate.xml:3359 msgid "" "The <citerefentry><refentrytitle>dd</refentrytitle><manvolnum>1</manvolnum></" "citerefentry> command-line utility is available on BSD, <trademark class=" @@ -4096,13 +4115,13 @@ msgstr "" "到第一個 <acronym>USB</acronym> 裝置。" #. (itstool) path: step/screen -#: book.translate.xml:3355 +#: book.translate.xml:3370 #, no-wrap msgid "<prompt>#</prompt> <userinput>dd if=<replaceable>FreeBSD-10.2-RELEASE-amd64-memstick.img</replaceable> of=/dev/<replaceable>da0</replaceable> bs=1M conv=sync</userinput>" msgstr "" #. (itstool) path: step/para -#: book.translate.xml:3357 +#: book.translate.xml:3372 msgid "" "If this command fails, verify that the <acronym>USB</acronym> stick is not " "mounted and that the device name is for the disk, not a partition. Some " @@ -4122,13 +4141,13 @@ msgstr "" "citerefentry>。" #. (itstool) path: procedure/title -#: book.translate.xml:3368 +#: book.translate.xml:3383 msgid "" "Using <trademark class=\"registered\">Windows</trademark> to Write the Image" msgstr "使用 <trademark class=\"registered\">Windows</trademark> 來寫入映象檔" #. (itstool) path: warning/para -#: book.translate.xml:3371 +#: book.translate.xml:3386 msgid "" "Be sure to give the correct drive letter as the existing data on the " "specified drive will be overwritten and destroyed." @@ -4136,7 +4155,7 @@ msgstr "" "務必確認指定的磁碟機代號正確,因在指定磁碟機上的既有資料將會被覆蓋與摧毀。" #. (itstool) path: step/title -#: book.translate.xml:3377 +#: book.translate.xml:3392 msgid "" "Obtaining <application>Image Writer for <trademark class=\"registered" "\">Windows</trademark></application>" @@ -4145,7 +4164,7 @@ msgstr "" "trademark> 版</application>" #. (itstool) path: step/para -#: book.translate.xml:3380 +#: book.translate.xml:3395 msgid "" "<application>Image Writer for <trademark class=\"registered\">Windows</" "trademark></application> is a free application that can correctly write an " @@ -4160,12 +4179,12 @@ msgstr "" "夾。" #. (itstool) path: step/title -#: book.translate.xml:3388 +#: book.translate.xml:3403 msgid "Writing the Image with Image Writer" msgstr "用 Image Writer 寫入映象檔" #. (itstool) path: step/para -#: book.translate.xml:3390 +#: book.translate.xml:3405 msgid "" "Double-click the <application>Win32DiskImager</application> icon to start " "the program. Verify that the drive letter shown under " @@ -4184,24 +4203,24 @@ msgstr "" "入隨身碟。" #. (itstool) path: sect3/para -#: book.translate.xml:3405 +#: book.translate.xml:3420 msgid "You are now ready to start installing FreeBSD." msgstr "您現在可以開始安裝 FreeBSD 。" #. (itstool) path: sect1/title -#: book.translate.xml:3411 +#: book.translate.xml:3426 msgid "Starting the Installation" msgstr "開始安裝" #. (itstool) path: important/para -#: book.translate.xml:3414 +#: book.translate.xml:3429 msgid "" "By default, the installation will not make any changes to the disk(s) before " "the following message:" msgstr "預設安裝程序在下列訊息顯示之前不會對磁碟做任何更動:" #. (itstool) path: important/programlisting -#: book.translate.xml:3417 +#: book.translate.xml:3432 #, no-wrap msgid "" "Your changes will now be written to disk. If you\n" @@ -4211,7 +4230,7 @@ msgid "" msgstr "" #. (itstool) path: important/para -#: book.translate.xml:3422 +#: book.translate.xml:3437 msgid "" "The install can be exited at any time prior to this warning. If there is a " "concern that something is incorrectly configured, just turn the computer off " @@ -4221,7 +4240,7 @@ msgstr "" "腦,將不會對系統磁碟做任何更改。" #. (itstool) path: sect1/para -#: book.translate.xml:3429 +#: book.translate.xml:3444 msgid "" "This section describes how to boot the system from the installation media " "which was prepared using the instructions in <xref linkend=\"bsdinstall-" @@ -4233,17 +4252,17 @@ msgid "" msgstr "" "本節將介紹如何使用根據 <xref linkend=\"bsdinstall-installation-media\"/> 指示" "所準備的安裝媒體來開機。要使用可開機的 USB,請在開啟電腦前插入 <acronym>USB</" -"acronym> 隨身碟。要使用 <acronym>CD</acronym> 或<acronym>DVD</acronym>,則可" +"acronym> 隨身碟。要使用 <acronym>CD</acronym> 或 <acronym>DVD</acronym>,則可" "開啟電腦後在第一時間插入媒體。如何設定系統使用插入的媒體開機依不同的系統架構" "會有所不同。" #. (itstool) path: sect2/title -#: book.translate.xml:3440 +#: book.translate.xml:3455 msgid "Booting on <trademark>i386</trademark> and amd64" msgstr "在 <trademark>i386</trademark> 及 amd64 開機" #. (itstool) path: sect2/para -#: book.translate.xml:3442 +#: book.translate.xml:3457 msgid "" "These architectures provide a <acronym>BIOS</acronym> menu for selecting the " "boot device. Depending upon the installation media being used, select the " @@ -4261,14 +4280,14 @@ msgstr "" "<keycap>Escape</keycap> 其中之一。" #. (itstool) path: sect2/para -#: book.translate.xml:3453 +#: book.translate.xml:3468 msgid "" "If the computer loads the existing operating system instead of the FreeBSD " "installer, then either:" -msgstr "若電腦仍載入了現有的作業系統,而不是 FreeBSD 安裝程式,原因可能為:" +msgstr "若電腦仍載入了現有的作業系統,而不是 FreeBSD 安裝程式,原因可能為:" #. (itstool) path: listitem/para -#: book.translate.xml:3458 +#: book.translate.xml:3473 msgid "" "The installation media was not inserted early enough in the boot process. " "Leave the media inserted and try restarting the computer." @@ -4277,7 +4296,7 @@ msgstr "" "電腦。" #. (itstool) path: listitem/para -#: book.translate.xml:3464 +#: book.translate.xml:3479 msgid "" "The <acronym>BIOS</acronym> changes were incorrect or not saved. Double-" "check that the right boot device is selected as the first boot device." @@ -4286,7 +4305,7 @@ msgstr "" "確的裝置。" #. (itstool) path: listitem/para -#: book.translate.xml:3470 +#: book.translate.xml:3485 msgid "" "This system is too old to support booting from the chosen media. In this " "case, the <application>Plop Boot Manager</application> (<link xlink:href=" @@ -4298,12 +4317,12 @@ msgstr "" "plop.at/en/bootmanagers.html\"/>) 來從選擇的開機媒體開機。" #. (itstool) path: sect2/title -#: book.translate.xml:3480 +#: book.translate.xml:3495 msgid "Booting on <trademark class=\"registered\">PowerPC</trademark>" msgstr "在 <trademark class=\"registered\">PowerPC</trademark> 開機" #. (itstool) path: sect2/para -#: book.translate.xml:3482 +#: book.translate.xml:3497 msgid "" "On most machines, holding <keycap>C</keycap> on the keyboard during boot " "will boot from the <acronym>CD</acronym>. Otherwise, hold <keycombo action=" @@ -4322,18 +4341,18 @@ msgstr "" "prompt> 提示時,輸入" #. (itstool) path: sect2/screen -#: book.translate.xml:3498 +#: book.translate.xml:3513 #, no-wrap msgid "<userinput>boot cd:,\\ppc\\loader cd:0</userinput>" msgstr "" #. (itstool) path: sect2/title -#: book.translate.xml:3502 +#: book.translate.xml:3517 msgid "Booting on <trademark class=\"registered\">SPARC64</trademark>" msgstr "在 <trademark class=\"registered\">SPARC64</trademark> 開機" #. (itstool) path: sect2/para -#: book.translate.xml:3504 +#: book.translate.xml:3519 msgid "" "Most <trademark class=\"registered\">SPARC64</trademark> systems are set up " "to boot automatically from disk. To install FreeBSD from a <acronym>CD</" @@ -4344,16 +4363,16 @@ msgstr "" "acronym>。" #. (itstool) path: sect2/para -#: book.translate.xml:3508 +#: book.translate.xml:3523 msgid "" "To do this, reboot the system and wait until the boot message appears. The " "message depends on the model, but should look something like this:" msgstr "" "要進入 <acronym>PROM</acronym>,需重新開機系統然後等候開機訊息出現。訊息會依" -"機型而有所不同,但大致結果會如:" +"機型而有所不同,但大致結果會如:" #. (itstool) path: sect2/screen -#: book.translate.xml:3512 +#: book.translate.xml:3527 #, no-wrap msgid "" "Sun Blade 100 (UltraSPARC-IIe), Keyboard Present\n" @@ -4363,7 +4382,7 @@ msgid "" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:3517 +#: book.translate.xml:3532 msgid "" "If the system proceeds to boot from disk at this point, press <keycombo " "action=\"simul\"><keycap>L1</keycap><keycap>A</keycap></keycombo> or " @@ -4386,7 +4405,7 @@ msgstr "" "prompt>,其中的數字代表啟動的 <acronym>CPU</acronym> 數。" #. (itstool) path: sect2/para -#: book.translate.xml:3529 +#: book.translate.xml:3544 msgid "" "At this point, place the <acronym>CD</acronym> into the drive and type " "<command>boot cdrom</command> from the <acronym>PROM</acronym> prompt." @@ -4395,19 +4414,19 @@ msgstr "" "畫面輸入 <command>boot cdrom</command>。" #. (itstool) path: sect2/title -#: book.translate.xml:3535 +#: book.translate.xml:3550 msgid "FreeBSD Boot Menu" msgstr "FreeBSD 開機選單" #. (itstool) path: sect2/para -#: book.translate.xml:3537 +#: book.translate.xml:3552 msgid "" "Once the system boots from the installation media, a menu similar to the " "following will be displayed:" msgstr "從安裝媒體開機之後,會顯示如下的選單:" #. (itstool) path: figure/title -#: book.translate.xml:3541 +#: book.translate.xml:3556 msgid "FreeBSD Boot Loader Menu" msgstr "FreeBSD 開機載入程式選單" @@ -4416,14 +4435,14 @@ msgstr "FreeBSD 開機載入程式選單" #. 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. -#: book.translate.xml:3545 +#: book.translate.xml:3560 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-newboot-loader-menu' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:3550 +#: book.translate.xml:3565 msgid "" "By default, the menu will wait ten seconds for user input before booting " "into the FreeBSD installer or, if FreeBSD is already installed, before " @@ -4437,57 +4456,57 @@ msgstr "" "以下選項可選。" #. (itstool) path: listitem/para -#: book.translate.xml:3560 +#: book.translate.xml:3575 msgid "" "<literal>Boot Multi User</literal>: This will continue the FreeBSD boot " "process. If the boot timer has been paused, press <keycap>1</keycap>, upper- " "or lower-case <keycap>B</keycap>, or <keycap>Enter</keycap>." msgstr "" -"啟動多使用者模式 (<literal>Boot Multi User</literal>): 這個選項會繼續 " +"啟動多使用者模式 (<literal>Boot Multi User</literal>):這個選項會繼續 " "FreeBSD 開機程序,若開機計時器已經暫停,可按 <keycap>1</keycap>、大寫或小寫 " "<keycap>B</keycap> 或 <keycap>Enter</keycap> 鍵。" #. (itstool) path: listitem/para -#: book.translate.xml:3568 +#: book.translate.xml:3583 msgid "" "<literal>Boot Single User</literal>: This mode can be used to fix an " "existing FreeBSD installation as described in <xref linkend=\"boot-singleuser" "\"/>. Press <keycap>2</keycap> or the upper- or lower-case <keycap>S</" "keycap> to enter this mode." msgstr "" -"啟動單使用者模式 (<literal>Boot Single User</literal>): 這個模式用來修正已安" +"啟動單使用者模式 (<literal>Boot Single User</literal>):這個模式用來修正已安" "裝的 FreeBSD,如 <xref linkend=\"boot-singleuser\"/> 所述。可按 <keycap>2</" "keycap>、大寫或小寫 <keycap>S</keycap> 進入這個模式。" #. (itstool) path: listitem/para -#: book.translate.xml:3576 +#: book.translate.xml:3591 msgid "" "<literal>Escape to loader prompt</literal>: This will boot the system into a " "repair prompt that contains a limited number of low-level commands. This " "prompt is described in <xref linkend=\"boot-loader\"/>. Press <keycap>3</" "keycap> or <keycap>Esc</keycap> to boot into this prompt." msgstr "" -"離開到載入程式提示 (<literal>Escape to loader prompt</literal>): 這個選項會開" +"離開到載入程式提示 (<literal>Escape to loader prompt</literal>):這個選項會開" "機進入修復提示,這個模式含有有限數量的低階指令,這個模式詳細說明於 <xref " "linkend=\"boot-loader\"/>。可按 <keycap>3</keycap> 或 <keycap>Esc</keycap> 進" "入這個提示。" #. (itstool) path: listitem/para -#: book.translate.xml:3585 +#: book.translate.xml:3600 msgid "<literal>Reboot</literal>: Reboots the system." -msgstr "重新開機 (<literal>Reboot</literal>): 重新開啟系統。" +msgstr "重新開機 (<literal>Reboot</literal>):重新開啟系統。" #. (itstool) path: listitem/para -#: book.translate.xml:3589 +#: book.translate.xml:3604 msgid "" "<literal>Configure Boot Options</literal>: Opens the menu shown in, and " "described under, <xref linkend=\"bsdinstall-boot-options-menu\"/>." msgstr "" -"設定開機選項 (<literal>Configure Boot Options</literal>): 開啟內部選單,詳細" +"設定開機選項 (<literal>Configure Boot Options</literal>):開啟內部選單,詳細" "說明於 <xref linkend=\"bsdinstall-boot-options-menu\"/>。" #. (itstool) path: figure/title -#: book.translate.xml:3595 +#: book.translate.xml:3610 msgid "FreeBSD Boot Options Menu" msgstr "FreeBSD 開機選項選單" @@ -4496,13 +4515,13 @@ msgstr "FreeBSD 開機選項選單" #. 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. -#: book.translate.xml:3599 +#: book.translate.xml:3614 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-boot-options-menu' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:3604 +#: book.translate.xml:3619 msgid "" "The boot options menu is divided into two sections. The first section can be " "used to either return to the main boot menu or to reset any toggled options " @@ -4512,7 +4531,7 @@ msgstr "" "回預設值。" #. (itstool) path: sect2/para -#: book.translate.xml:3609 +#: book.translate.xml:3624 msgid "" "The next section is used to toggle the available options to <literal>On</" "literal> or <literal>Off</literal> by pressing the option's highlighted " @@ -4525,49 +4544,49 @@ msgstr "" "到選項被修改。有數個選項可以在這個選單做切換:" #. (itstool) path: listitem/para -#: book.translate.xml:3618 +#: book.translate.xml:3633 msgid "" "<literal>ACPI Support</literal>: If the system hangs during boot, try " "toggling this option to <literal>Off</literal>." msgstr "" -"ACPI 支援 (<literal>ACPI Support</literal>): 若系統在開機時卡住,可嘗試切換這" +"ACPI 支援 (<literal>ACPI Support</literal>):若系統在開機時卡住,可嘗試切換這" "個選項為關 (<literal>Off</literal>)。" #. (itstool) path: listitem/para -#: book.translate.xml:3624 +#: book.translate.xml:3639 msgid "" "<literal>Safe Mode</literal>: If the system still hangs during boot even " "with <literal>ACPI Support</literal> set to <literal>Off</literal>, try " "setting this option to <literal>On</literal>." msgstr "" -"安全模式 (<literal>Safe Mode</literal>): 若系統在 ACPI 支援 (<literal>ACPI " +"安全模式 (<literal>Safe Mode</literal>):若系統在 ACPI 支援 (<literal>ACPI " "Support</literal>) 設為關 (<literal>Off</literal>) 時開機時仍然會卡住,可嘗試" "將此選項設為開 (<literal>On</literal>)。" #. (itstool) path: listitem/para -#: book.translate.xml:3631 +#: book.translate.xml:3646 msgid "" "<literal>Single User</literal>: Toggle this option to <literal>On</literal> " "to fix an existing FreeBSD installation as described in <xref linkend=\"boot-" "singleuser\"/>. Once the problem is fixed, set it back to <literal>Off</" "literal>." msgstr "" -"單使用者 (<literal>Single User</literal>): 切換這個選項為開 (<literal>On</" +"單使用者 (<literal>Single User</literal>):切換這個選項為開 (<literal>On</" "literal>) 來修正已存在的 FreeBSD 如 <xref linkend=\"boot-singleuser\"/> 所" "述,問題修正後,將其設回關 (<literal>Off</literal>)。" #. (itstool) path: listitem/para -#: book.translate.xml:3639 +#: book.translate.xml:3654 msgid "" "<literal>Verbose</literal>: Toggle this option to <literal>On</literal> to " "see more detailed messages during the boot process. This can be useful when " "troubleshooting a piece of hardware." msgstr "" -"詳細資訊 (<literal>Verbose</literal>): 切換這個選項為開 (<literal>On</" +"詳細資訊 (<literal>Verbose</literal>):切換這個選項為開 (<literal>On</" "literal>) 來查看開機程序中更詳細的訊息,這在診斷硬體問題時非常有用。" #. (itstool) path: sect2/para -#: book.translate.xml:3646 +#: book.translate.xml:3661 msgid "" "After making the needed selections, press <keycap>1</keycap> or " "<keycap>Backspace</keycap> to return to the main boot menu, then press " @@ -4582,7 +4601,7 @@ msgstr "" "選單如 <xref linkend=\"bsdinstall-choose-mode\"/>。" #. (itstool) path: figure/title -#: book.translate.xml:3655 +#: book.translate.xml:3670 msgid "Welcome Menu" msgstr "歡迎選單" @@ -4591,13 +4610,13 @@ msgstr "歡迎選單" #. 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. -#: book.translate.xml:3659 +#: book.translate.xml:3674 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-choose-mode' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:3664 +#: book.translate.xml:3679 msgid "" "Press <keycap>Enter</keycap> to select the default of " "<guibutton>[ Install ]</guibutton> to enter the installer. The rest of this " @@ -4617,7 +4636,7 @@ msgstr "" "本的詳細說明於 <xref linkend=\"using-live-cd\"/>。" #. (itstool) path: tip/para -#: book.translate.xml:3677 +#: book.translate.xml:3692 msgid "" "To review the boot messages, including the hardware device probe, press the " "upper- or lower-case <keycap>S</keycap> and then <keycap>Enter</keycap> to " @@ -4631,12 +4650,12 @@ msgstr "" "<command>exit</command> 返回歡迎選單。" #. (itstool) path: sect1/title -#: book.translate.xml:3690 +#: book.translate.xml:3705 msgid "Using <application>bsdinstall</application>" msgstr "使用 <application>bsdinstall</application>" #. (itstool) path: sect1/para -#: book.translate.xml:3692 +#: book.translate.xml:3707 msgid "" "This section shows the order of the <application>bsdinstall</application> " "menus and the type of information that will be asked before the system is " @@ -4651,12 +4670,12 @@ msgstr "" "選項然後進入下一個畫面。" #. (itstool) path: sect2/title -#: book.translate.xml:3701 +#: book.translate.xml:3716 msgid "Selecting the Keymap Menu" msgstr "選擇鍵盤對應表選單" #. (itstool) path: sect2/para -#: book.translate.xml:3703 +#: book.translate.xml:3718 msgid "" "Depending on the system console being used, <application>bsdinstall</" "application> may initially display the menu shown in <xref linkend=" @@ -4666,7 +4685,7 @@ msgstr "" "的選單會如 <xref linkend=\"bsdinstall-keymap-select-default\"/>。" #. (itstool) path: figure/title -#: book.translate.xml:3708 +#: book.translate.xml:3723 msgid "Keymap Selection" msgstr "鍵盤對應表選擇" @@ -4675,14 +4694,14 @@ msgstr "鍵盤對應表選擇" #. 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. -#: book.translate.xml:3712 +#: book.translate.xml:3727 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-keymap-select-default' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:3717 +#: book.translate.xml:3732 msgid "" "To configure the keyboard layout, press <keycap>Enter</keycap> with " "<guibutton>[ YES ]</guibutton> selected, which will display the menu shown " @@ -4696,7 +4715,7 @@ msgstr "" "<keycap>Enter</keycap> 跳過這個選單畫面。" #. (itstool) path: figure/title -#: book.translate.xml:3726 +#: book.translate.xml:3741 msgid "Selecting Keyboard Menu" msgstr "選擇鍵盤選單" @@ -4705,13 +4724,13 @@ msgstr "選擇鍵盤選單" #. 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. -#: book.translate.xml:3730 +#: book.translate.xml:3745 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-config-keymap' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:3735 +#: book.translate.xml:3750 msgid "" "When configuring the keyboard layout, use the up and down arrows to select " "the keymap that most closely represents the mapping of the keyboard attached " @@ -4721,18 +4740,18 @@ msgstr "" "(Keymap),然後按下 <keycap>Enter</keycap> 儲存選項。" #. (itstool) path: note/para -#: book.translate.xml:3741 +#: book.translate.xml:3756 msgid "" "Pressing <keycap>Esc</keycap> will exit this menu and use the default " "keymap. If the choice of keymap is not clear, <guimenuitem>United States of " "America ISO-8859-1</guimenuitem> is also a safe option." msgstr "" -"按 <keycap>Esc</keycap> 會離開這個選單然後使用預設的鍵盤對應表,若不清選要使" +"按 <keycap>Esc</keycap> 會離開這個選單然後使用預設的鍵盤對應表,若不清楚要使" "用那種鍵盤對應表,<guimenuitem>United States of America ISO-8859-1</" "guimenuitem> 是也是保險的選項。" #. (itstool) path: sect2/para -#: book.translate.xml:3747 +#: book.translate.xml:3762 msgid "" "In FreeBSD 10.0-RELEASE and later, this menu has been enhanced. The full " "selection of keymaps is shown, with the default preselected. In addition, " @@ -4744,7 +4763,7 @@ msgstr "" "對話框讓使用者測試鍵盤對應表來確認。" #. (itstool) path: figure/title -#: book.translate.xml:3754 +#: book.translate.xml:3769 msgid "Enhanced Keymap Menu" msgstr "改進後的鍵盤對應表選單" @@ -4753,19 +4772,19 @@ msgstr "改進後的鍵盤對應表選單" #. 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. -#: book.translate.xml:3758 +#: book.translate.xml:3773 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-keymap-10' md5='__failed__'" msgstr "" #. (itstool) path: sect2/title #. (itstool) path: figure/title -#: book.translate.xml:3766 book.translate.xml:3773 +#: book.translate.xml:3781 book.translate.xml:3788 msgid "Setting the Hostname" msgstr "設定主機名稱" #. (itstool) path: sect2/para -#: book.translate.xml:3768 +#: book.translate.xml:3783 msgid "" "The next <application>bsdinstall</application> menu is used to set the " "hostname for the newly installed system." @@ -4778,13 +4797,13 @@ msgstr "" #. 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. -#: book.translate.xml:3777 +#: book.translate.xml:3792 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-config-hostname' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:3782 +#: book.translate.xml:3797 msgid "" "Type in a hostname that is unique for the network. It should be a fully-" "qualified hostname, such as <systemitem class=\"fqdomainname\">machine3." @@ -4795,12 +4814,12 @@ msgstr "" #. (itstool) path: sect2/title #. (itstool) path: figure/title -#: book.translate.xml:3787 book.translate.xml:3793 +#: book.translate.xml:3802 book.translate.xml:3808 msgid "Selecting Components to Install" msgstr "選擇要安裝的元件" #. (itstool) path: sect2/para -#: book.translate.xml:3789 +#: book.translate.xml:3804 msgid "" "Next, <application>bsdinstall</application> will prompt to select optional " "components to install." @@ -4812,13 +4831,13 @@ msgstr "" #. 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. -#: book.translate.xml:3797 +#: book.translate.xml:3812 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-config-components' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:3802 +#: book.translate.xml:3817 msgid "" "Deciding which components to install will depend largely on the intended use " "of the system and the amount of disk space available. The FreeBSD kernel and " @@ -4828,10 +4847,10 @@ msgid "" msgstr "" "決定要安裝的元件主要會根據系統的用途以及可用的磁碟空間容量。FreeBSD 核心 " "(Kernel) 及 Userland 統稱為 <firstterm>基礎系統 (Base system)</firstterm>,是" -"必須安裝的部份。依據系統的架構,部份元件可能不會顯示:" +"必須安裝的部份。依據系統的架構,部份元件可能不會顯示:" #. (itstool) path: listitem/para -#: book.translate.xml:3811 +#: book.translate.xml:3826 msgid "" "<literal>doc</literal> - Additional documentation, mostly of historical " "interest, to install into <filename>/usr/share/doc</filename>. The " @@ -4845,7 +4864,7 @@ msgstr "" "操作。" #. (itstool) path: listitem/para -#: book.translate.xml:3819 +#: book.translate.xml:3834 msgid "" "<literal>games</literal> - Several traditional <acronym>BSD</acronym> games, " "including <application>fortune</application>, <application>rot13</" @@ -4856,7 +4875,7 @@ msgstr "" "他。" #. (itstool) path: listitem/para -#: book.translate.xml:3826 +#: book.translate.xml:3841 msgid "" "<literal>lib32</literal> - Compatibility libraries for running 32-bit " "applications on a 64-bit version of FreeBSD." @@ -4865,7 +4884,7 @@ msgstr "" "用的相容性程式庫。" #. (itstool) path: listitem/para -#: book.translate.xml:3832 +#: book.translate.xml:3847 msgid "" "<literal>ports</literal> - The FreeBSD Ports Collection is a collection of " "files which automates the downloading, compiling and installation of third-" @@ -4876,7 +4895,7 @@ msgstr "" "方軟體套件的集合,<xref linkend=\"ports\"/> 中會討論到如何使用 Port 套件集。" #. (itstool) path: warning/para -#: book.translate.xml:3839 +#: book.translate.xml:3854 msgid "" "The installation program does not check for adequate disk space. Select this " "option only if sufficient hard disk space is available. The FreeBSD Ports " @@ -4886,7 +4905,7 @@ msgstr "" "磁碟空間,只有在有足夠的磁碟空間時才選擇這個選項。" #. (itstool) path: listitem/para -#: book.translate.xml:3848 +#: book.translate.xml:3863 msgid "" "<literal>src</literal> - The complete FreeBSD source code for both the " "kernel and the userland. Although not required for the majority of " @@ -4903,12 +4922,12 @@ msgstr "" #. (itstool) path: sect2/title #. (itstool) path: figure/title -#: book.translate.xml:3861 book.translate.xml:3872 +#: book.translate.xml:3876 book.translate.xml:3887 msgid "Installing from the Network" msgstr "從網路安裝" #. (itstool) path: sect2/para -#: book.translate.xml:3863 +#: book.translate.xml:3878 msgid "" "The menu shown in <xref linkend=\"bsdinstall-netinstall-notify\"/> only " "appears when installing from a <filename>-bootonly.iso</filename> " @@ -4927,13 +4946,13 @@ msgstr "" #. 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. -#: book.translate.xml:3876 +#: book.translate.xml:3891 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-netinstall-files' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:3881 +#: book.translate.xml:3896 msgid "" "To configure the network connection, press <keycap>Enter</keycap> and follow " "the instructions in <xref linkend=\"bsdinstall-config-network-dev\"/>. Once " @@ -4948,7 +4967,7 @@ msgstr "" "載的速度會比較快,這會減少安裝的時間。" #. (itstool) path: figure/title -#: book.translate.xml:3890 +#: book.translate.xml:3905 msgid "Choosing a Mirror" msgstr "選擇鏡像站" @@ -4957,26 +4976,26 @@ msgstr "選擇鏡像站" #. 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. -#: book.translate.xml:3894 +#: book.translate.xml:3909 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-netinstall-mirrorselect' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:3899 +#: book.translate.xml:3914 msgid "" "Installation will then continue as if the installation files were located on " "the local installation media." msgstr "若在本機的安裝媒體中找到安裝檔案,安裝程序便會繼續。" #. (itstool) path: sect1/title -#: book.translate.xml:3905 +#: book.translate.xml:3920 msgid "Allocating Disk Space" msgstr "配置磁碟空間" #. (itstool) path: sect1/para -#: book.translate.xml:3907 +#: book.translate.xml:3922 msgid "" "The next menu is used to determine the method for allocating disk space. The " "options available in the menu depend upon the version of FreeBSD being " @@ -4986,7 +5005,7 @@ msgstr "" "本而有所不同。" #. (itstool) path: figure/title -#: book.translate.xml:3912 +#: book.translate.xml:3927 msgid "Partitioning Choices on FreeBSD 9.x" msgstr "FreeBSD 9.x 的磁碟分割選項" @@ -4995,14 +5014,14 @@ msgstr "FreeBSD 9.x 的磁碟分割選項" #. 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. -#: book.translate.xml:3916 +#: book.translate.xml:3931 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-part-guided-manual' md5='__failed__'" msgstr "" #. (itstool) path: figure/title -#: book.translate.xml:3922 +#: book.translate.xml:3937 msgid "Partitioning Choices on FreeBSD 10.x and Higher" msgstr "FreeBSD 10.x 或更新版本的磁碟分割選項" @@ -5011,13 +5030,13 @@ msgstr "FreeBSD 10.x 或更新版本的磁碟分割選項" #. 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. -#: book.translate.xml:3926 +#: book.translate.xml:3941 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-zfs-partmenu' md5='__failed__'" msgstr "" #. (itstool) path: sect1/para -#: book.translate.xml:3931 +#: book.translate.xml:3946 msgid "" "<literal>Guided</literal> partitioning automatically sets up the disk " "partitions, <literal>Manual</literal> partitioning allows advanced users to " @@ -5045,7 +5064,7 @@ msgstr "" "firstterm>。" #. (itstool) path: sect1/para -#: book.translate.xml:3942 +#: book.translate.xml:3957 msgid "" "This section describes what to consider when laying out the disk partitions. " "It then demonstrates how to use the different partitioning methods." @@ -5053,32 +5072,32 @@ msgstr "" "本節會介紹在配置磁碟分割時需要考量那些事情,並且會示範各種磁碟分割的方式。" #. (itstool) path: sect2/title -#: book.translate.xml:3947 +#: book.translate.xml:3962 msgid "Designing the Partition Layout" msgstr "規劃分割區配置" #. (itstool) path: sect2/indexterm -#: book.translate.xml:3949 +#: book.translate.xml:3964 msgid "<primary>partition layout</primary>" msgstr "<primary>分割區配置</primary>" #. (itstool) path: sect2/indexterm -#: book.translate.xml:3950 +#: book.translate.xml:3965 msgid "<primary><filename>/etc</filename></primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:3953 +#: book.translate.xml:3968 msgid "<primary><filename>/var</filename></primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:3956 +#: book.translate.xml:3971 msgid "<primary><filename>/usr</filename></primary>" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:3960 +#: book.translate.xml:3975 msgid "" "When laying out file systems, remember that hard drives transfer data faster " "from the outer tracks to the inner. Thus, smaller and heavier-accessed file " @@ -5088,13 +5107,13 @@ msgid "" "similar to: <filename>/</filename>, swap, <filename>/var</filename>, and " "<filename>/usr</filename>." msgstr "" -"配置檔案系統時要記得硬碟的傳輸資料外軌較內軌的速度快,因此較小且大量存取的檔" +"配置檔案系統時要記得硬碟的資料傳輸的速度外軌較內軌快,因此較小且大量存取的檔" "案系統應要較接近磁碟的外軌,而較大的分割區如 <filename>/usr</filename> 應放置" -"在磁碟較內部,建議建立分割區的順序如下: <filename>/</filename>, swap, " +"在磁碟較內部,建議建立分割區的順序如下:<filename>/</filename>, swap, " "<filename>/var</filename> 然後 <filename>/usr</filename>。" #. (itstool) path: sect2/para -#: book.translate.xml:3970 +#: book.translate.xml:3985 msgid "" "The size of the <filename>/var</filename> partition reflects the intended " "machine's usage. This partition is used to hold mailboxes, log files, and " @@ -5103,13 +5122,13 @@ msgid "" "average, most users rarely need more than about a gigabyte of free disk " "space in <filename>/var</filename>." msgstr "" -"機器預期的用途會反映在 <filename>/var</filename> 分割區的大小,這個分割區用來" -"保存郵件 (Mailbox)、記錄檔 (Log file) 及印表機緩衝 (Spool)。依使用者數及保存" -"的期間,郵件及記錄檔可能成長到無法預期的大小,一般來說大部份的使用很少會在 " +"機器預期的用途會反映到 <filename>/var</filename> 分割區的大小,這個分割區用來" +"保存郵件 (Mailbox)、日誌檔 (Log file) 及印表機緩衝 (Spool)。依使用者數及保存" +"的期間,郵件及日誌檔可能成長到無法預期的大小,一般來說大部份的使用很少會在 " "<filename>/var</filename> 需要超過 1 GB 的可用磁碟空間。" #. (itstool) path: note/para -#: book.translate.xml:3980 +#: book.translate.xml:3995 msgid "" "Sometimes, a lot of disk space is required in <filename>/var/tmp</filename>. " "When new software is installed, the packaging tools extract a temporary copy " @@ -5126,7 +5145,7 @@ msgstr "" "application> 或 <application>LibreOffice</application> 會很困難。" #. (itstool) path: sect2/para -#: book.translate.xml:3991 +#: book.translate.xml:4006 msgid "" "The <filename>/usr</filename> partition holds many of the files which " "support the system, including the FreeBSD Ports Collection and system source " @@ -5136,7 +5155,7 @@ msgstr "" "Port 套件集以及系統原始碼。這個分割區建議至少要有 2 GB 的空間。" #. (itstool) path: sect2/para -#: book.translate.xml:3996 +#: book.translate.xml:4011 msgid "" "When selecting partition sizes, keep the space requirements in mind. Running " "out of space in one partition while barely using another can be a hassle." @@ -5145,17 +5164,17 @@ msgstr "" "區時會很麻煩。" #. (itstool) path: sect2/indexterm -#: book.translate.xml:4000 +#: book.translate.xml:4015 msgid "<primary>swap sizing</primary>" msgstr "" #. (itstool) path: sect2/indexterm -#: book.translate.xml:4003 +#: book.translate.xml:4018 msgid "<primary>swap partition</primary>" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4007 +#: book.translate.xml:4022 msgid "" "As a rule of thumb, the swap partition should be about double the size of " "physical memory (<acronym>RAM</acronym>). Systems with minimal <acronym>RAM</" @@ -5169,7 +5188,7 @@ msgstr "" "往後增加更多記憶體時可能會產生問題。" #. (itstool) path: sect2/para -#: book.translate.xml:4015 +#: book.translate.xml:4030 msgid "" "On larger systems with multiple <acronym>SCSI</acronym> disks or multiple " "<acronym>IDE</acronym> disks operating on different controllers, it is " @@ -5189,7 +5208,7 @@ msgstr "" "換空間,這也會讓要從失控的程式恢復運作更容易,而不需強制重新啟動系統。" #. (itstool) path: sect2/para -#: book.translate.xml:4028 +#: book.translate.xml:4043 msgid "" "By properly partitioning a system, fragmentation introduced in the smaller " "write heavy partitions will not bleed over into the mostly read partitions. " @@ -5207,12 +5226,12 @@ msgstr "" "顯著。" #. (itstool) path: sect2/title -#: book.translate.xml:4041 +#: book.translate.xml:4056 msgid "Guided Partitioning" msgstr "引導式磁碟分割" #. (itstool) path: sect2/para -#: book.translate.xml:4043 +#: book.translate.xml:4058 msgid "" "When this method is selected, a menu will display the available disk(s). If " "multiple disks are connected, choose the one where FreeBSD is to be " @@ -5222,7 +5241,7 @@ msgstr "" "個來安裝 FreeBSD。" #. (itstool) path: figure/title -#: book.translate.xml:4048 +#: book.translate.xml:4063 msgid "Selecting from Multiple Disks" msgstr "自多個磁碟選擇" @@ -5231,13 +5250,13 @@ msgstr "自多個磁碟選擇" #. 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. -#: book.translate.xml:4052 +#: book.translate.xml:4067 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-part-guided-disk' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4057 +#: book.translate.xml:4072 msgid "" "Once the disk is selected, the next menu prompts to install to either the " "entire disk or to create a partition using free space. If " @@ -5252,7 +5271,7 @@ msgstr "" "未使用的空間來建立分割區配置。" #. (itstool) path: figure/title -#: book.translate.xml:4067 +#: book.translate.xml:4082 msgid "Selecting Entire Disk or Partition" msgstr "選擇完整磁碟或分割區" @@ -5261,13 +5280,13 @@ msgstr "選擇完整磁碟或分割區" #. 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. -#: book.translate.xml:4071 +#: book.translate.xml:4086 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-part-entire-part' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4076 +#: book.translate.xml:4091 msgid "" "After the partition layout has been created, review it to ensure it meets " "the needs of the installation. Selecting <guibutton>[ Revert ]</guibutton> " @@ -5284,7 +5303,7 @@ msgstr "" "<guibutton>[ Finish ]</guibutton> 繼續安裝。" #. (itstool) path: figure/title -#: book.translate.xml:4087 +#: book.translate.xml:4102 msgid "Review Created Partitions" msgstr "確認已建立的分割區" @@ -5293,23 +5312,23 @@ msgstr "確認已建立的分割區" #. 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. -#: book.translate.xml:4091 +#: book.translate.xml:4106 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-part-review' md5='__failed__'" msgstr "" #. (itstool) path: sect2/title -#: book.translate.xml:4098 +#: book.translate.xml:4113 msgid "Manual Partitioning" msgstr "手動磁碟分割" #. (itstool) path: sect2/para -#: book.translate.xml:4100 +#: book.translate.xml:4115 msgid "Selecting this method opens the partition editor:" msgstr "選擇這個方法會開啟分割區編輯程式:" #. (itstool) path: figure/title -#: book.translate.xml:4103 book.translate.xml:4118 book.translate.xml:4189 +#: book.translate.xml:4118 book.translate.xml:4133 book.translate.xml:4204 msgid "Manually Create Partitions" msgstr "手動建立分割區" @@ -5318,14 +5337,14 @@ msgstr "手動建立分割區" #. 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. -#: book.translate.xml:4107 +#: book.translate.xml:4122 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-part-manual-create' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4112 +#: book.translate.xml:4127 msgid "" "Highlight the installation drive (<filename>ada0</filename> in this example) " "and select <guibutton>[ Create ]</guibutton> to display a menu of available " @@ -5333,21 +5352,21 @@ msgid "" msgstr "" "選擇要安裝的磁碟機 (在這個例子為 <filename>ada0</filename>) 然後選擇 " "<guibutton>[ Create ]</guibutton> 會以選單顯示可用的分割表格式 (Partition " -"scheme):" +"scheme):" #. (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. -#: book.translate.xml:4122 +#: book.translate.xml:4137 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-part-manual-partscheme' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4127 +#: book.translate.xml:4142 msgid "" "<acronym>GPT</acronym> is usually the most appropriate choice for amd64 " "computers. Older computers that are not compatible with <acronym>GPT</" @@ -5359,33 +5378,33 @@ msgstr "" "那些較罕見或較舊的電腦上。" #. (itstool) path: table/title -#: book.translate.xml:4134 +#: book.translate.xml:4149 msgid "Partitioning Schemes" msgstr "磁碟分割表格式" #. (itstool) path: row/entry -#: book.translate.xml:4139 +#: book.translate.xml:4154 msgid "Abbreviation" msgstr "縮寫" #. (itstool) path: row/entry -#: book.translate.xml:4140 book.translate.xml:7098 book.translate.xml:8441 -#: book.translate.xml:11780 book.translate.xml:22975 book.translate.xml:23154 -#: book.translate.xml:27235 book.translate.xml:31223 book.translate.xml:42950 -#: book.translate.xml:52771 book.translate.xml:53278 book.translate.xml:54037 -#: book.translate.xml:54078 book.translate.xml:55404 book.translate.xml:65535 +#: book.translate.xml:4155 book.translate.xml:7113 book.translate.xml:8456 +#: book.translate.xml:11794 book.translate.xml:23000 book.translate.xml:23179 +#: book.translate.xml:27289 book.translate.xml:31277 book.translate.xml:43004 +#: book.translate.xml:52825 book.translate.xml:53332 book.translate.xml:54091 +#: book.translate.xml:54132 book.translate.xml:55458 book.translate.xml:65535 msgid "Description" msgstr "說明" #. (itstool) path: row/entry #. (itstool) path: glossentry/glossterm #. (itstool) path: glossentry/acronym -#: book.translate.xml:4146 book.translate.xml:65535 +#: book.translate.xml:4161 book.translate.xml:65535 msgid "APM" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4147 +#: book.translate.xml:4162 msgid "" "Apple Partition Map, used by <trademark class=\"registered\">PowerPC</" "trademark>." @@ -5396,12 +5415,12 @@ msgstr "" #. (itstool) path: row/entry #. (itstool) path: glossentry/glossterm #. (itstool) path: glossentry/acronym -#: book.translate.xml:4151 book.translate.xml:65535 +#: book.translate.xml:4166 book.translate.xml:65535 msgid "BSD" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4152 +#: book.translate.xml:4167 msgid "" "<acronym>BSD</acronym> label without an <acronym>MBR</acronym>, sometimes " "called <firstterm>dangerously dedicated mode</firstterm> as non-" @@ -5412,12 +5431,12 @@ msgstr "" "(Dangerously dedicated mode)</firstterm>。" #. (itstool) path: row/entry -#: book.translate.xml:4160 +#: book.translate.xml:4175 msgid "GPT" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4161 +#: book.translate.xml:4176 msgid "" "GUID Partition Table (<link xlink:href=\"http://en.wikipedia.org/wiki/" "GUID_Partition_Table\">http://en.wikipedia.org/wiki/GUID_Partition_Table</" @@ -5428,12 +5447,12 @@ msgstr "" "link>)。" #. (itstool) path: row/entry -#: book.translate.xml:4165 +#: book.translate.xml:4180 msgid "MBR" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4166 +#: book.translate.xml:4181 msgid "" "Master Boot Record (<link xlink:href=\"http://en.wikipedia.org/wiki/" "Master_boot_record\">http://en.wikipedia.org/wiki/Master_boot_record</link>)." @@ -5443,12 +5462,12 @@ msgstr "" "link>)。" #. (itstool) path: row/entry -#: book.translate.xml:4170 +#: book.translate.xml:4185 msgid "PC98" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4171 +#: book.translate.xml:4186 msgid "" "<acronym>MBR</acronym> variant used by NEC PC-98 computers (<link xlink:href=" "\"http://en.wikipedia.org/wiki/Pc9801\">http://en.wikipedia.org/wiki/Pc9801</" @@ -5459,17 +5478,17 @@ msgstr "" "link>)。" #. (itstool) path: row/entry -#: book.translate.xml:4176 +#: book.translate.xml:4191 msgid "VTOC8" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4177 +#: book.translate.xml:4192 msgid "Volume Table Of Contents used by Sun SPARC64 and UltraSPARC computers." msgstr "Volume Table Of Contents,用於 Sun SPARC64 及 UltraSPARC 電腦。" #. (itstool) path: sect2/para -#: book.translate.xml:4184 +#: book.translate.xml:4199 msgid "" "After the partitioning scheme has been selected and created, select " "<guibutton>[ Create ]</guibutton> again to create the partitions." @@ -5482,26 +5501,26 @@ msgstr "" #. 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. -#: book.translate.xml:4193 +#: book.translate.xml:4208 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-part-manual-addpart' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4198 +#: book.translate.xml:4213 msgid "" "A standard FreeBSD <acronym>GPT</acronym> installation uses at least three " "partitions:" -msgstr "標準的 FreeBSD <acronym>GPT</acronym> 安裝會使用至少三種分割區:" +msgstr "標準的 FreeBSD <acronym>GPT</acronym> 安裝會使用至少三種分割區:" #. (itstool) path: listitem/para -#: book.translate.xml:4203 +#: book.translate.xml:4218 msgid "<literal>freebsd-boot</literal> - Holds the FreeBSD boot code." msgstr "<literal>freebsd-boot</literal> - 儲存 FreeBSD 開機程式 (Boot code)。" #. (itstool) path: listitem/para -#: book.translate.xml:4208 +#: book.translate.xml:4223 msgid "" "<literal>freebsd-ufs</literal> - A FreeBSD <acronym>UFS</acronym> file " "system." @@ -5509,12 +5528,12 @@ msgstr "" "<literal>freebsd-ufs</literal> - FreeBSD 的 <acronym>UFS</acronym> 檔案系統。" #. (itstool) path: listitem/para -#: book.translate.xml:4213 +#: book.translate.xml:4228 msgid "<literal>freebsd-swap</literal> - FreeBSD swap space." msgstr "<literal>freebsd-swap</literal> - FreeBSD 交換空間。" #. (itstool) path: sect2/para -#: book.translate.xml:4218 +#: book.translate.xml:4233 msgid "" "Another partition type worth noting is <literal>freebsd-zfs</literal>, used " "for partitions that will contain a FreeBSD <acronym>ZFS</acronym> file " @@ -5529,7 +5548,7 @@ msgstr "" "citerefentry> 取得可用的 <acronym>GPT</acronym> 分割區類型說明。" #. (itstool) path: sect2/para -#: book.translate.xml:4224 +#: book.translate.xml:4239 msgid "" "Multiple file system partitions can be created and some people prefer a " "traditional layout with separate partitions for <filename>/</filename>, " @@ -5543,18 +5562,18 @@ msgstr "" "\"bsdinstall-part-manual-splitfs\"/> 的範例。" #. (itstool) path: sect2/para -#: book.translate.xml:4231 +#: book.translate.xml:4246 msgid "" "The <literal>Size</literal> may be entered with common abbreviations: " "<emphasis>K</emphasis> for kilobytes, <emphasis>M</emphasis> for megabytes, " "or <emphasis>G</emphasis> for gigabytes." msgstr "" -"大小 (<literal>Size</literal>) 欄位可以使用常用的縮寫來輸入: <emphasis>K</" +"大小 (<literal>Size</literal>) 欄位可以使用常用的縮寫來輸入:<emphasis>K</" "emphasis> 代表 KB, <emphasis>M</emphasis> 代表 MB, <emphasis>G</emphasis> 代" "表 GB。" #. (itstool) path: tip/para -#: book.translate.xml:4237 +#: book.translate.xml:4252 msgid "" "Proper sector alignment provides the best performance, and making partition " "sizes even multiples of 4K bytes helps to ensure alignment on drives with " @@ -5567,11 +5586,11 @@ msgstr "" "適當的對齊磁碟扇區 (Sector) 會提供最佳的效能,而且讓分割區大小為 4 KB 的偶數" "倍數可協助確保對齊在磁碟機上的 512-byte 或 4K-byte 扇區。一般來說,使用分割區" "大小為 1M 或 1G 的偶數倍數是最簡單的方式確保每個分割區以 4K 的偶數倍數做為開" -"始。唯一一個例外是: <emphasis>freebsd-boot</emphasis> 分割區因目前開機程式 " +"始。唯一一個例外是:<emphasis>freebsd-boot</emphasis> 分割區因目前開機程式 " "(Boot code) 的限制,不可大於 512K。" #. (itstool) path: sect2/para -#: book.translate.xml:4248 +#: book.translate.xml:4263 msgid "" "A <literal>Mountpoint</literal> is needed if the partition will contain a " "file system. If only a single <acronym>UFS</acronym> partition will be " @@ -5582,7 +5601,7 @@ msgstr "" "filename>。" #. (itstool) path: sect2/para -#: book.translate.xml:4253 +#: book.translate.xml:4268 msgid "" "The <literal>Label</literal> is a name by which the partition will be known. " "Drive names or numbers can change if the drive is connected to a different " @@ -5602,7 +5621,7 @@ msgstr "" "且標籤會在 <filename>/dev/</filename> 中有各自的目錄。" #. (itstool) path: tip/para -#: book.translate.xml:4266 +#: book.translate.xml:4281 msgid "" "Use a unique label on every partition to avoid conflicts from identical " "labels. A few letters from the computer's name, use, or location can be " @@ -5616,12 +5635,12 @@ msgstr "" "<acronym>UFS</acronym> 根目錄分割區。" #. (itstool) path: example/title -#: book.translate.xml:4276 +#: book.translate.xml:4291 msgid "Creating Traditional Split File System Partitions" msgstr "建立傳統分割的檔案系統分割區" #. (itstool) path: example/para -#: book.translate.xml:4279 +#: book.translate.xml:4294 msgid "" "For a traditional partition layout where the <filename>/</filename>, " "<filename>/var</filename>, <filename>/tmp</filename>, and <filename>/usr</" @@ -5642,7 +5661,7 @@ msgstr "" "說明使用其他獨一無二的標籤。" #. (itstool) path: example/para -#: book.translate.xml:4292 +#: book.translate.xml:4307 msgid "" "By default, FreeBSD's <filename>gptboot</filename> expects the first " "<acronym>UFS</acronym> partition to be the <filename>/</filename> partition." @@ -5651,113 +5670,113 @@ msgstr "" "acronym> 分割區為 <filename>/</filename> 分割區。" #. (itstool) path: row/entry -#: book.translate.xml:4300 +#: book.translate.xml:4315 msgid "Partition Type" msgstr "分割區類型" #. (itstool) path: row/entry -#: book.translate.xml:4301 +#: book.translate.xml:4316 msgid "Size" msgstr "大小" #. (itstool) path: row/entry -#: book.translate.xml:4302 +#: book.translate.xml:4317 msgid "Mountpoint" msgstr "掛載點" #. (itstool) path: row/entry -#: book.translate.xml:4303 +#: book.translate.xml:4318 msgid "Label" msgstr "標籤" #. (itstool) path: row/entry -#: book.translate.xml:4309 +#: book.translate.xml:4324 msgid "<literal>freebsd-boot</literal>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4310 +#: book.translate.xml:4325 msgid "<literal>512K</literal>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4314 book.translate.xml:4328 book.translate.xml:4335 -#: book.translate.xml:4342 +#: book.translate.xml:4329 book.translate.xml:4343 book.translate.xml:4350 +#: book.translate.xml:4357 msgid "<literal>freebsd-ufs</literal>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4315 book.translate.xml:4329 +#: book.translate.xml:4330 book.translate.xml:4344 msgid "<literal>2G</literal>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4316 book.translate.xml:7103 +#: book.translate.xml:4331 book.translate.xml:7118 msgid "<filename>/</filename>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4317 +#: book.translate.xml:4332 msgid "<literal>exrootfs</literal>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4321 +#: book.translate.xml:4336 msgid "<literal>freebsd-swap</literal>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4322 +#: book.translate.xml:4337 msgid "<literal>4G</literal>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4324 +#: book.translate.xml:4339 msgid "<literal>exswap</literal>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4330 +#: book.translate.xml:4345 msgid "<filename>/var</filename>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4331 +#: book.translate.xml:4346 msgid "<literal>exvarfs</literal>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4336 +#: book.translate.xml:4351 msgid "<literal>1G</literal>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4337 +#: book.translate.xml:4352 msgid "<filename>/tmp</filename>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4338 +#: book.translate.xml:4353 msgid "<literal>extmpfs</literal>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4343 +#: book.translate.xml:4358 msgid "accept the default (remainder of the disk)" msgstr "接受預設值 (依磁碟提示)" #. (itstool) path: row/entry -#: book.translate.xml:4345 +#: book.translate.xml:4360 msgid "<filename>/usr</filename>" msgstr "" #. (itstool) path: row/entry -#: book.translate.xml:4346 +#: book.translate.xml:4361 msgid "<literal>exusrfs</literal>" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4353 +#: book.translate.xml:4368 msgid "" "After the custom partitions have been created, select <guibutton>[ Finish ]</" "guibutton> to continue with the installation." @@ -5765,12 +5784,12 @@ msgstr "" "自訂的分割區建立完後,選擇 <guibutton>[ Finish ]</guibutton> 繼續安裝。" #. (itstool) path: sect2/title -#: book.translate.xml:4359 +#: book.translate.xml:4374 msgid "Root-on-ZFS Automatic Partitioning" msgstr "Root-on-ZFS 自動磁碟分割" #. (itstool) path: sect2/para -#: book.translate.xml:4361 +#: book.translate.xml:4376 msgid "" "Support for automatic creation of root-on-ZFS installations was added in " "FreeBSD 10.0-RELEASE. This partitioning mode only works with whole disks and " @@ -5799,7 +5818,7 @@ msgstr "" "存池使用。" #. (itstool) path: sect2/para -#: book.translate.xml:4380 +#: book.translate.xml:4395 msgid "" "The main <acronym>ZFS</acronym> configuration menu offers a number of " "options to control the creation of the pool." @@ -5807,7 +5826,7 @@ msgstr "" "主要 <acronym>ZFS</acronym> 設定選單提供了數個設定選項來控制儲存池的建立。" #. (itstool) path: figure/title -#: book.translate.xml:4385 +#: book.translate.xml:4400 msgid "<acronym>ZFS</acronym> Partitioning Menu" msgstr "<acronym>ZFS</acronym> 磁碟分割選單" @@ -5816,13 +5835,13 @@ msgstr "<acronym>ZFS</acronym> 磁碟分割選單" #. 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. -#: book.translate.xml:4389 +#: book.translate.xml:4404 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-zfs-menu' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4394 +#: book.translate.xml:4409 msgid "" "Select <keycap>T</keycap> to configure the <literal>Pool Type</literal> and " "the disk(s) that will constitute the pool. The automatic <acronym>ZFS</" @@ -5847,7 +5866,7 @@ msgstr "" "用 RAID-Z 時,每個配置最佳的磁碟數。" #. (itstool) path: figure/title -#: book.translate.xml:4411 +#: book.translate.xml:4426 msgid "<acronym>ZFS</acronym> Pool Type" msgstr "<acronym>ZFS</acronym> 儲存池類型" @@ -5856,13 +5875,13 @@ msgstr "<acronym>ZFS</acronym> 儲存池類型" #. 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. -#: book.translate.xml:4415 +#: book.translate.xml:4430 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-zfs-vdev_type' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4420 +#: book.translate.xml:4435 msgid "" "Once a <literal>Pool Type</literal> has been selected, a list of available " "disks is displayed, and the user is prompted to select one or more disks to " @@ -5877,7 +5896,7 @@ msgstr "" "返回磁碟清單或取消 (<guibutton><Cancel></guibutton>) 來更改儲存池類型。" #. (itstool) path: figure/title -#: book.translate.xml:4430 +#: book.translate.xml:4445 msgid "Disk Selection" msgstr "磁碟選擇" @@ -5886,13 +5905,13 @@ msgstr "磁碟選擇" #. 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. -#: book.translate.xml:4434 +#: book.translate.xml:4449 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-zfs-disk_select' md5='__failed__'" msgstr "" #. (itstool) path: figure/title -#: book.translate.xml:4440 +#: book.translate.xml:4455 msgid "Invalid Selection" msgstr "無效的選擇" @@ -5901,13 +5920,13 @@ msgstr "無效的選擇" #. 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. -#: book.translate.xml:4444 +#: book.translate.xml:4459 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-zfs-vdev_invalid' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4449 +#: book.translate.xml:4464 msgid "" "If one or more disks are missing from the list, or if disks were attached " "after the installer was started, select <guibutton>- Rescan Devices</" @@ -5922,7 +5941,7 @@ msgstr "" "磁碟,包含磁碟中的分割表以及各種其他資訊如裝置型號與序號 (若有的話)。" #. (itstool) path: figure/title -#: book.translate.xml:4460 +#: book.translate.xml:4475 msgid "Analyzing a Disk" msgstr "分析磁碟" @@ -5931,13 +5950,13 @@ msgstr "分析磁碟" #. 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. -#: book.translate.xml:4464 +#: book.translate.xml:4479 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-zfs-disk_info' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4469 +#: book.translate.xml:4484 msgid "" "The main <acronym>ZFS</acronym> configuration menu also allows the user to " "enter a pool name, disable forcing 4k sectors, enable or disable encryption, " @@ -5952,7 +5971,7 @@ msgstr "" "單上方的安裝 (<guibutton>>>> Install</guibutton>) 選項。" #. (itstool) path: sect2/para -#: book.translate.xml:4479 +#: book.translate.xml:4494 msgid "" "If <acronym>GELI</acronym> disk encryption was enabled, the installer will " "prompt twice for the passphrase to be used to encrypt the disks." @@ -5961,7 +5980,7 @@ msgstr "" "的密碼。" #. (itstool) path: figure/title -#: book.translate.xml:4484 +#: book.translate.xml:4499 msgid "Disk Encryption Password" msgstr "磁碟加密密碼" @@ -5970,13 +5989,13 @@ msgstr "磁碟加密密碼" #. 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. -#: book.translate.xml:4488 +#: book.translate.xml:4503 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-zfs-geli_password' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4493 +#: book.translate.xml:4508 msgid "" "The installer then offers a last chance to cancel before the contents of the " "selected drives are destroyed to create the <acronym>ZFS</acronym> pool." @@ -5985,7 +6004,7 @@ msgstr "" "<acronym>ZFS</acronym> 儲存池的磁碟機。" #. (itstool) path: figure/title -#: book.translate.xml:4498 +#: book.translate.xml:4513 msgid "Last Chance" msgstr "最後修改" @@ -5994,23 +6013,23 @@ msgstr "最後修改" #. 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. -#: book.translate.xml:4502 +#: book.translate.xml:4517 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-zfs-warning' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4507 +#: book.translate.xml:4522 msgid "The installation then proceeds normally." msgstr "然後安裝程序會正常繼續。" #. (itstool) path: sect2/title -#: book.translate.xml:4512 +#: book.translate.xml:4527 msgid "Shell Mode Partitioning" msgstr "Shell 模式磁碟分割" #. (itstool) path: sect2/para -#: book.translate.xml:4514 +#: book.translate.xml:4529 msgid "" "When creating advanced installations, the <application>bsdinstall</" "application> partitioning menus may not provide the level of flexibility " @@ -6029,12 +6048,12 @@ msgstr "" "<application>bsdinstall</application> 繼續安裝程序。" #. (itstool) path: sect1/title -#: book.translate.xml:4529 +#: book.translate.xml:4544 msgid "Committing to the Installation" msgstr "確認安裝" #. (itstool) path: sect1/para -#: book.translate.xml:4531 +#: book.translate.xml:4546 msgid "" "Once the disks are configured, the next menu provides the last chance to " "make changes before the selected hard drive(s) are formatted. If changes " @@ -6048,7 +6067,7 @@ msgstr "" "何變更。" #. (itstool) path: figure/title -#: book.translate.xml:4541 +#: book.translate.xml:4556 msgid "Final Confirmation" msgstr "最後確認" @@ -6057,14 +6076,14 @@ msgstr "最後確認" #. 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. -#: book.translate.xml:4545 +#: book.translate.xml:4560 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-final-confirmation' md5='__failed__'" msgstr "" #. (itstool) path: sect1/para -#: book.translate.xml:4550 +#: book.translate.xml:4565 msgid "" "To instead start the actual installation, select <guibutton>[ Commit ]</" "guibutton> and press <keycap>Enter</keycap>." @@ -6073,7 +6092,7 @@ msgstr "" "<keycap>Enter</keycap>。" #. (itstool) path: sect1/para -#: book.translate.xml:4554 +#: book.translate.xml:4569 msgid "" "Installation time will vary depending on the distributions chosen, " "installation media, and speed of the computer. A series of messages will " @@ -6083,17 +6102,17 @@ msgstr "" "訊息會告知目前的進度。" #. (itstool) path: sect1/para -#: book.translate.xml:4558 +#: book.translate.xml:4573 msgid "" "First, the installer formats the selected disk(s) and initializes the " "partitions. Next, in the case of a bootonly media, it downloads the selected " "components:" msgstr "" "首先,安裝程式會格式化選擇的磁碟,然後初始化分割區。然後,若使用僅可開機 " -"(Boot only) 的媒體則會開始下載選擇的元件:" +"(Boot only) 的媒體則會開始下載選擇的元件:" #. (itstool) path: figure/title -#: book.translate.xml:4563 +#: book.translate.xml:4578 msgid "Fetching Distribution Files" msgstr "取得發行版檔案" @@ -6102,23 +6121,23 @@ msgstr "取得發行版檔案" #. 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. -#: book.translate.xml:4567 +#: book.translate.xml:4582 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-distfile-fetching' md5='__failed__'" msgstr "" #. (itstool) path: sect1/para -#: book.translate.xml:4572 +#: book.translate.xml:4587 msgid "" "Next, the integrity of the distribution files is verified to ensure they " "have not been corrupted during download or misread from the installation " "media:" msgstr "" "接著,會檢驗發行版的檔案完整性來確保沒有因下載過程中或安裝媒體的讀取過程中讀" -"取錯誤造成的損壞:" +"取錯誤造成的損壞:" #. (itstool) path: figure/title -#: book.translate.xml:4577 +#: book.translate.xml:4592 msgid "Verifying Distribution Files" msgstr "檢驗發行版檔案" @@ -6127,19 +6146,19 @@ msgstr "檢驗發行版檔案" #. 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. -#: book.translate.xml:4581 +#: book.translate.xml:4596 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-distfile-verifying' md5='__failed__'" msgstr "" #. (itstool) path: sect1/para -#: book.translate.xml:4586 +#: book.translate.xml:4601 msgid "Finally, the verified distribution files are extracted to the disk:" -msgstr "最後,檢驗過的發行版檔案會被取出儲存至磁碟:" +msgstr "最後,檢驗過的發行版檔案會被取出儲存至磁碟:" #. (itstool) path: figure/title -#: book.translate.xml:4590 +#: book.translate.xml:4605 msgid "Extracting Distribution Files" msgstr "解開發行版檔案" @@ -6148,14 +6167,14 @@ msgstr "解開發行版檔案" #. 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. -#: book.translate.xml:4594 +#: book.translate.xml:4609 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-distfile-extracting' md5='__failed__'" msgstr "" #. (itstool) path: sect1/para -#: book.translate.xml:4599 +#: book.translate.xml:4614 msgid "" "Once all requested distribution files have been extracted, " "<application>bsdinstall</application> displays the first post-installation " @@ -6166,12 +6185,12 @@ msgstr "" "次安裝後設定畫面,可用的安裝後設定選項會在下一節說明。" #. (itstool) path: sect1/title -#: book.translate.xml:4607 +#: book.translate.xml:4622 msgid "Post-Installation" msgstr "安裝後注意事項" #. (itstool) path: sect1/para -#: book.translate.xml:4609 +#: book.translate.xml:4624 msgid "" "Once FreeBSD is installed, <application>bsdinstall</application> will prompt " "to configure several options before booting into the newly installed system. " @@ -6181,7 +6200,7 @@ msgstr "" "的系統之前提示設定數個選項,本節將介紹這些設定選項。" #. (itstool) path: tip/para -#: book.translate.xml:4615 +#: book.translate.xml:4630 msgid "" "Once the system has booted, <command>bsdconfig</command> provides a menu-" "driven method for configuring the system using these and additional options." @@ -6191,12 +6210,12 @@ msgstr "" #. (itstool) path: sect2/title #. (itstool) path: figure/title -#: book.translate.xml:4622 book.translate.xml:4633 +#: book.translate.xml:4637 book.translate.xml:4648 msgid "Setting the <systemitem class=\"username\">root</systemitem> Password" msgstr "設定 <systemitem class=\"username\">root</systemitem> 密碼" #. (itstool) path: sect2/para -#: book.translate.xml:4626 +#: book.translate.xml:4641 msgid "" "First, the <systemitem class=\"username\">root</systemitem> password must be " "set. While entering the password, the characters being typed are not " @@ -6212,25 +6231,25 @@ msgstr "" #. 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. -#: book.translate.xml:4637 +#: book.translate.xml:4652 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-post-root-passwd' md5='__failed__'" msgstr "" #. (itstool) path: sect2/title -#: book.translate.xml:4644 +#: book.translate.xml:4659 msgid "Configuring Network Interfaces" msgstr "設定網路介面卡" #. (itstool) path: sect2/para -#: book.translate.xml:4646 +#: book.translate.xml:4661 msgid "" "Next, a list of the network interfaces found on the computer is shown. " "Select the interface to configure." msgstr "接著,會顯示在電腦上找到的網路介面卡清單。請選擇要設定的介面卡。" #. (itstool) path: note/para -#: book.translate.xml:4650 +#: book.translate.xml:4665 msgid "" "The network configuration menus will be skipped if the network was " "previously configured as part of a <emphasis>bootonly</emphasis> " @@ -6240,7 +6259,7 @@ msgstr "" "網路設定選單。" #. (itstool) path: figure/title -#: book.translate.xml:4656 +#: book.translate.xml:4671 msgid "Choose a Network Interface" msgstr "選擇網路介面卡" @@ -6249,7 +6268,7 @@ msgstr "選擇網路介面卡" #. 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. -#: book.translate.xml:4660 +#: book.translate.xml:4675 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-configure-network-interface' " @@ -6257,7 +6276,7 @@ msgid "" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4665 +#: book.translate.xml:4680 msgid "" "If an Ethernet interface is selected, the installer will skip ahead to the " "menu shown in <xref linkend=\"bsdinstall-configure-net-ipv4\"/>. If a " @@ -6266,10 +6285,10 @@ msgid "" msgstr "" "若選擇的是乙太網路介面卡,安裝程式會跳過這部份直接到 <xref linkend=" "\"bsdinstall-configure-net-ipv4\"/>,若選擇的是無線網路介面卡,系統則會開始掃" -"描無線存取點 (Wireless Access Point):" +"描無線存取點 (Wireless Access Point):" #. (itstool) path: figure/title -#: book.translate.xml:4671 +#: book.translate.xml:4686 msgid "Scanning for Wireless Access Points" msgstr "掃描無線網路存取點" @@ -6278,14 +6297,14 @@ msgstr "掃描無線網路存取點" #. 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. -#: book.translate.xml:4675 +#: book.translate.xml:4690 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-configure-wireless-scan' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4680 +#: book.translate.xml:4695 msgid "" "Wireless networks are identified by a Service Set Identifier (<acronym>SSID</" "acronym>), a short, unique name given to each network. <acronym>SSIDs</" @@ -6304,7 +6323,7 @@ msgstr "" "題,或者嘗試將電腦移至更靠近存取點的位置,然後再掃描一次。" #. (itstool) path: figure/title -#: book.translate.xml:4692 +#: book.translate.xml:4707 msgid "Choosing a Wireless Network" msgstr "選擇無線網路" @@ -6313,7 +6332,7 @@ msgstr "選擇無線網路" #. 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. -#: book.translate.xml:4696 +#: book.translate.xml:4711 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-configure-wireless-accesspoints' " @@ -6321,7 +6340,7 @@ msgid "" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4701 +#: book.translate.xml:4716 msgid "" "Next, enter the encryption information for connecting to the selected " "wireless network. <acronym>WPA2</acronym> encryption is strongly recommended " @@ -6336,7 +6355,7 @@ msgstr "" "(<acronym>PSK</acronym>)。考量安全性,輸入到輸入框的字元會以星號顯示。" #. (itstool) path: figure/title -#: book.translate.xml:4711 +#: book.translate.xml:4726 msgid "WPA2 Setup" msgstr "WPA2 設定" @@ -6345,7 +6364,7 @@ msgstr "WPA2 設定" #. 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. -#: book.translate.xml:4715 +#: book.translate.xml:4730 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-configure-wireless-wpa2setup' " @@ -6353,16 +6372,16 @@ msgid "" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4720 +#: book.translate.xml:4735 msgid "" "Next, choose whether or not an <acronym>IPv4</acronym> address should be " "configured on the Ethernet or wireless interface:" msgstr "" "接下來,選擇是否要設定乙太網路或無線網路介面卡的 <acronym>IPv4</acronym> 位" -"址: " +"址:" #. (itstool) path: figure/title -#: book.translate.xml:4725 +#: book.translate.xml:4740 msgid "Choose <acronym>IPv4</acronym> Networking" msgstr "選擇 <acronym>IPv4</acronym> 網路" @@ -6371,7 +6390,7 @@ msgstr "選擇 <acronym>IPv4</acronym> 網路" #. 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. -#: book.translate.xml:4729 +#: book.translate.xml:4744 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-configure-network-interface-ipv4' " @@ -6379,7 +6398,7 @@ msgid "" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4734 +#: book.translate.xml:4749 msgid "" "There are two methods of <acronym>IPv4</acronym> configuration. " "<acronym>DHCP</acronym> will automatically configure the network interface " @@ -6392,7 +6411,7 @@ msgstr "" "手動輸入位址的資訊來做靜態設定。" #. (itstool) path: note/para -#: book.translate.xml:4742 +#: book.translate.xml:4757 msgid "" "Do not enter random network information as it will not work. If a " "<acronym>DHCP</acronym> server is not available, obtain the information " @@ -6404,7 +6423,7 @@ msgstr "" "列於 <xref linkend=\"bsdinstall-collect-network-information\"/> 的資訊。" #. (itstool) path: sect2/para -#: book.translate.xml:4749 +#: book.translate.xml:4764 msgid "" "If a <acronym>DHCP</acronym> server is available, select <guibutton>[ Yes ]</" "guibutton> in the next menu to automatically configure the network " @@ -6417,7 +6436,7 @@ msgstr "" "acronym> 伺服器並且取得系統的位址資訊時,安裝程式會出現一分鐘左右的停頓。" #. (itstool) path: figure/title -#: book.translate.xml:4757 +#: book.translate.xml:4772 msgid "Choose <acronym>IPv4</acronym> <acronym>DHCP</acronym> Configuration" msgstr "選擇 <acronym>IPv4</acronym> <acronym>DHCP</acronym> 設定" @@ -6426,7 +6445,7 @@ msgstr "選擇 <acronym>IPv4</acronym> <acronym>DHCP</acronym> 設定" #. 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. -#: book.translate.xml:4762 +#: book.translate.xml:4777 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-configure-network-interface-ipv4-dhcp' " @@ -6434,17 +6453,17 @@ msgid "" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4767 +#: book.translate.xml:4782 msgid "" "If a <acronym>DHCP</acronym> server is not available, select " "<guibutton>[ No ]</guibutton> and input the following addressing information " "in this menu:" msgstr "" "若沒有可用的 <acronym>DHCP</acronym> 伺服器,則選擇 <guibutton>[ No ]</" -"guibutton> 然後在這個選單中輸入以下位址資訊:" +"guibutton> 然後在這個選單中輸入以下位址資訊:" #. (itstool) path: figure/title -#: book.translate.xml:4772 +#: book.translate.xml:4787 msgid "<acronym>IPv4</acronym> Static Configuration" msgstr "<acronym>IPv4</acronym> 靜態位置設定" @@ -6453,7 +6472,7 @@ msgstr "<acronym>IPv4</acronym> 靜態位置設定" #. 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. -#: book.translate.xml:4776 +#: book.translate.xml:4791 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-configure-network-interface-ipv4-static' " @@ -6461,7 +6480,7 @@ msgid "" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:4783 +#: book.translate.xml:4798 msgid "" "<literal>IP Address</literal> - The <acronym>IPv4</acronym> address assigned " "to this computer. The address must be unique and not already in use by " @@ -6471,12 +6490,12 @@ msgstr "" "acronym> 位址。位址必須獨一無二且不可已被其他在區域網路上的設備使用。" #. (itstool) path: listitem/para -#: book.translate.xml:4790 +#: book.translate.xml:4805 msgid "<literal>Subnet Mask</literal> - The subnet mask for the network." msgstr "子網路遮罩 (<literal>Subnet Mask</literal>) - 網路的子網路遮罩。" #. (itstool) path: listitem/para -#: book.translate.xml:4795 +#: book.translate.xml:4810 msgid "" "<literal>Default Router</literal> - The <acronym>IP</acronym> address of the " "network's default gateway." @@ -6485,7 +6504,7 @@ msgstr "" "在網段的預設閘道器。" #. (itstool) path: sect2/para -#: book.translate.xml:4801 +#: book.translate.xml:4816 msgid "" "The next screen will ask if the interface should be configured for " "<acronym>IPv6</acronym>. If <acronym>IPv6</acronym> is available and " @@ -6495,7 +6514,7 @@ msgstr "" "要使用 <acronym>IPv6</acronym>,請選擇 <guibutton>[ Yes ]</guibutton>。" #. (itstool) path: figure/title -#: book.translate.xml:4807 +#: book.translate.xml:4822 msgid "Choose IPv6 Networking" msgstr "選擇 IPv6 網路" @@ -6504,7 +6523,7 @@ msgstr "選擇 IPv6 網路" #. 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. -#: book.translate.xml:4811 +#: book.translate.xml:4826 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-configure-network-interface-ipv6' " @@ -6512,7 +6531,7 @@ msgid "" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4816 +#: book.translate.xml:4831 msgid "" "<acronym>IPv6</acronym> also has two methods of configuration. StateLess " "Address AutoConfiguration (<acronym>SLAAC</acronym>) will automatically " @@ -6528,7 +6547,7 @@ msgstr "" "則需要手動輸入網路資訊。" #. (itstool) path: sect2/para -#: book.translate.xml:4824 +#: book.translate.xml:4839 msgid "" "If an <acronym>IPv6</acronym> router is available, select " "<guibutton>[ Yes ]</guibutton> in the next menu to automatically configure " @@ -6540,7 +6559,7 @@ msgstr "" "的位址資訊時,安裝程式會出現一分鐘左右的停頓。" #. (itstool) path: figure/title -#: book.translate.xml:4831 +#: book.translate.xml:4846 msgid "Choose IPv6 SLAAC Configuration" msgstr "選擇 IPv6 SLAAC 設定" @@ -6549,7 +6568,7 @@ msgstr "選擇 IPv6 SLAAC 設定" #. 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. -#: book.translate.xml:4835 +#: book.translate.xml:4850 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-configure-network-interface-slaac' " @@ -6557,17 +6576,17 @@ msgid "" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4840 +#: book.translate.xml:4855 msgid "" "If an <acronym>IPv6</acronym> router is not available, select " "<guibutton>[ No ]</guibutton> and input the following addressing information " "in this menu:" msgstr "" "若沒有可用的 <acronym>IPv6</acronym> 路由器,請選擇 <guibutton>[ No ]</" -"guibutton> 然後在這個選單中輸入以下位址資訊:" +"guibutton> 然後在這個選單中輸入以下位址資訊:" #. (itstool) path: figure/title -#: book.translate.xml:4845 +#: book.translate.xml:4860 msgid "IPv6 Static Configuration" msgstr "IPv6 靜態位置設定" @@ -6576,7 +6595,7 @@ msgstr "IPv6 靜態位置設定" #. 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. -#: book.translate.xml:4849 +#: book.translate.xml:4864 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-configure-network-interface-ipv6-static' " @@ -6584,7 +6603,7 @@ msgid "" msgstr "" #. (itstool) path: listitem/para -#: book.translate.xml:4856 +#: book.translate.xml:4871 msgid "" "<literal>IPv6 Address</literal> - The <acronym>IPv6</acronym> address " "assigned to this computer. The address must be unique and not already in use " @@ -6595,7 +6614,7 @@ msgstr "" "備使用。" #. (itstool) path: listitem/para -#: book.translate.xml:4863 +#: book.translate.xml:4878 msgid "" "<literal>Default Router</literal> - The <acronym>IPv6</acronym> address of " "the network's default gateway." @@ -6604,7 +6623,7 @@ msgstr "" "所在網段的預設閘道器。" #. (itstool) path: sect2/para -#: book.translate.xml:4869 +#: book.translate.xml:4884 msgid "" "The last network configuration menu is used to configure the Domain Name " "System (<acronym>DNS</acronym>) resolver, which converts hostnames to and " @@ -6627,7 +6646,7 @@ msgstr "" "<acronym>DNS</acronym> 伺服器。" #. (itstool) path: figure/title -#: book.translate.xml:4883 +#: book.translate.xml:4898 msgid "DNS Configuration" msgstr "DNS 設定" @@ -6636,7 +6655,7 @@ msgstr "DNS 設定" #. 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. -#: book.translate.xml:4887 +#: book.translate.xml:4902 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-configure-network-ipv4-dns' " @@ -6644,12 +6663,12 @@ msgid "" msgstr "" #. (itstool) path: sect2/title -#: book.translate.xml:4894 +#: book.translate.xml:4909 msgid "Setting the Time Zone" msgstr "設定時區" #. (itstool) path: sect2/para -#: book.translate.xml:4896 +#: book.translate.xml:4911 msgid "" "The next menu asks if the system clock uses <acronym>UTC</acronym> or local " "time. When in doubt, select <guibutton>[ No ]</guibutton> to choose the more " @@ -6659,7 +6678,7 @@ msgstr "" "問時可選擇 <guibutton>[ No ]</guibutton>使用更常用的當地時間。" #. (itstool) path: figure/title -#: book.translate.xml:4902 +#: book.translate.xml:4917 msgid "Select Local or UTC Clock" msgstr "選擇本地或 UTC 時鐘" @@ -6668,14 +6687,14 @@ msgstr "選擇本地或 UTC 時鐘" #. 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. -#: book.translate.xml:4906 +#: book.translate.xml:4921 msgctxt "_" msgid "" "external ref='bsdinstall/bsdinstall-set-clock-local-utc' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4911 +#: book.translate.xml:4926 msgid "" "The next series of menus are used to determine the correct local time by " "selecting the geographic region, country, and time zone. Setting the time " @@ -6688,7 +6707,7 @@ msgstr "" "能。" #. (itstool) path: sect2/para -#: book.translate.xml:4918 +#: book.translate.xml:4933 msgid "" "The example shown here is for a machine located in the Eastern time zone of " "the United States. The selections will vary according to the geographical " @@ -6696,7 +6715,7 @@ msgid "" msgstr "此處以位於美國東部時區的機器為例,選擇會依據地理位置不同改變。" #. (itstool) path: figure/title -#: book.translate.xml:4923 +#: book.translate.xml:4938 msgid "Select a Region" msgstr "選擇區域" @@ -6705,20 +6724,20 @@ msgstr "選擇區域" #. 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. -#: book.translate.xml:4927 +#: book.translate.xml:4942 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-timezone-region' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4932 +#: book.translate.xml:4947 msgid "" "The appropriate region is selected using the arrow keys and then pressing " "<keycap>Enter</keycap>." msgstr "使用方向鍵選擇適當的區域然後按下 <keycap>Enter</keycap>。" #. (itstool) path: figure/title -#: book.translate.xml:4936 +#: book.translate.xml:4951 msgid "Select a Country" msgstr "選擇城市" @@ -6727,20 +6746,20 @@ msgstr "選擇城市" #. 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. -#: book.translate.xml:4940 +#: book.translate.xml:4955 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-timezone-country' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4945 +#: book.translate.xml:4960 msgid "" "Select the appropriate country using the arrow keys and press <keycap>Enter</" "keycap>." msgstr "使用方向鍵選擇適當的城市然後按下 <keycap>Enter</keycap>。" #. (itstool) path: figure/title -#: book.translate.xml:4949 +#: book.translate.xml:4964 msgid "Select a Time Zone" msgstr "選擇時區" @@ -6749,20 +6768,20 @@ msgstr "選擇時區" #. 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. -#: book.translate.xml:4953 +#: book.translate.xml:4968 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-timezone-zone' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4958 +#: book.translate.xml:4973 msgid "" "The appropriate time zone is selected using the arrow keys and pressing " "<keycap>Enter</keycap>." msgstr "使用方向鍵選擇適當的時區然後按下 <keycap>Enter</keycap>。" #. (itstool) path: figure/title -#: book.translate.xml:4962 +#: book.translate.xml:4977 msgid "Confirm Time Zone" msgstr "確認時區" @@ -6771,13 +6790,13 @@ msgstr "確認時區" #. 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. -#: book.translate.xml:4966 +#: book.translate.xml:4981 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-timezone-confirm' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4971 +#: book.translate.xml:4986 msgid "" "Confirm the abbreviation for the time zone is correct. If it is, press " "<keycap>Enter</keycap> to continue with the post-installation configuration." @@ -6785,12 +6804,12 @@ msgstr "" "確認時區的縮寫是否正確,若正確,按下 <keycap>Enter</keycap> 繼續安裝後設定。" #. (itstool) path: sect2/title -#: book.translate.xml:4977 +#: book.translate.xml:4992 msgid "Enabling Services" msgstr "開啟服務" #. (itstool) path: sect2/para -#: book.translate.xml:4979 +#: book.translate.xml:4994 msgid "" "The next menu is used to configure which system services will be started " "whenever the system boots. All of these services are optional. Only start " @@ -6800,7 +6819,7 @@ msgstr "" "開啟系統運作真正需要的服務。" #. (itstool) path: figure/title -#: book.translate.xml:4985 +#: book.translate.xml:5000 msgid "Selecting Additional Services to Enable" msgstr "選擇要開啟的其他服務" @@ -6809,18 +6828,18 @@ msgstr "選擇要開啟的其他服務" #. 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. -#: book.translate.xml:4989 +#: book.translate.xml:5004 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-config-services' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:4994 +#: book.translate.xml:5009 msgid "Here is a summary of the services which can be enabled in this menu:" -msgstr "這是可以在這個選單開啟的服務摘要:" +msgstr "這是可以在這個選單開啟的服務摘要:" #. (itstool) path: listitem/para -#: book.translate.xml:4999 +#: book.translate.xml:5014 msgid "" "<literal>sshd</literal> - The Secure Shell (<acronym>SSH</acronym>) daemon " "is used to remotely access a system over an encrypted connection. Only " @@ -6830,7 +6849,7 @@ msgstr "" "端透過加密的連線存取系統,只有在系統允許遠端登入時開啟這個服務。" #. (itstool) path: listitem/para -#: book.translate.xml:5007 +#: book.translate.xml:5022 msgid "" "<literal>moused</literal> - Enable this service if the mouse will be used " "from the command-line system console." @@ -6839,7 +6858,7 @@ msgstr "" "務。" #. (itstool) path: listitem/para -#: book.translate.xml:5013 +#: book.translate.xml:5028 msgid "" "<literal>ntpd</literal> - The Network Time Protocol (<acronym>NTP</acronym>) " "daemon for automatic clock synchronization. Enable this service if there is " @@ -6852,7 +6871,7 @@ msgstr "" "acronym> 伺服器時,可開啟此服務。" #. (itstool) path: listitem/para -#: book.translate.xml:5021 +#: book.translate.xml:5036 msgid "" "<literal>powerd</literal> - System power control utility for power control " "and energy saving." @@ -6860,12 +6879,12 @@ msgstr "<literal>powerd</literal> - 系統電源控制工具用來做電源控 #. (itstool) path: sect2/title #. (itstool) path: figure/title -#: book.translate.xml:5028 book.translate.xml:5036 +#: book.translate.xml:5043 book.translate.xml:5051 msgid "Enabling Crash Dumps" msgstr "開啟當機資訊 (Crash Dump)" #. (itstool) path: sect2/para -#: book.translate.xml:5030 +#: book.translate.xml:5045 msgid "" "The next menu is used to configure whether or not crash dumps should be " "enabled. Enabling crash dumps can be useful in debugging issues with the " @@ -6879,18 +6898,18 @@ msgstr "" #. 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. -#: book.translate.xml:5040 +#: book.translate.xml:5055 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-config-crashdump' md5='__failed__'" msgstr "" #. (itstool) path: sect2/title -#: book.translate.xml:5047 +#: book.translate.xml:5062 msgid "Add Users" msgstr "新增使用者" #. (itstool) path: sect2/para -#: book.translate.xml:5049 +#: book.translate.xml:5064 msgid "" "The next menu prompts to create at least one user account. It is recommended " "to login to the system using a user account rather than as <systemitem class=" @@ -6905,12 +6924,12 @@ msgstr "" "使用一般使用者登入較保險且安全。" #. (itstool) path: sect2/para -#: book.translate.xml:5056 +#: book.translate.xml:5071 msgid "Select <guibutton>[ Yes ]</guibutton> to add new users." msgstr "選擇 <guibutton>[ Yes ]</guibutton> 來新增新使用者。" #. (itstool) path: figure/title -#: book.translate.xml:5060 +#: book.translate.xml:5075 msgid "Add User Accounts" msgstr "新增使用者帳號" @@ -6919,13 +6938,13 @@ msgstr "新增使用者帳號" #. 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. -#: book.translate.xml:5064 +#: book.translate.xml:5079 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-adduser1' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:5069 +#: book.translate.xml:5084 msgid "" "Follow the prompts and input the requested information for the user account. " "The example shown in <xref linkend=\"bsdinstall-add-user2\"/> creates the " @@ -6936,7 +6955,7 @@ msgstr "" "號。" #. (itstool) path: figure/title -#: book.translate.xml:5073 +#: book.translate.xml:5088 msgid "Enter User Information" msgstr "輸入使用者資訊" @@ -6945,18 +6964,18 @@ msgstr "輸入使用者資訊" #. 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. -#: book.translate.xml:5077 +#: book.translate.xml:5092 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-adduser2' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:5082 +#: book.translate.xml:5097 msgid "Here is a summary of the information to input:" -msgstr "這裡是要輸入的資訊摘要:" +msgstr "這裡是要輸入的資訊摘要:" #. (itstool) path: listitem/para -#: book.translate.xml:5086 +#: book.translate.xml:5101 msgid "" "<literal>Username</literal> - The name the user will enter to log in. A " "common convention is to use the first letter of the first name combined with " @@ -6968,7 +6987,7 @@ msgstr "" "區分大小寫且不應含有任何空白字元。" #. (itstool) path: listitem/para -#: book.translate.xml:5095 +#: book.translate.xml:5110 msgid "" "<literal>Full name</literal> - The user's full name. This can contain spaces " "and is used as a description for the user account." @@ -6977,7 +6996,7 @@ msgstr "" "用來描述該使用者帳號。" #. (itstool) path: listitem/para -#: book.translate.xml:5101 +#: book.translate.xml:5116 msgid "" "<literal>Uid</literal> - User <acronym>ID</acronym>. Typically, this is left " "blank so the system will assign a value." @@ -6986,7 +7005,7 @@ msgstr "" "統會自動分配一個值。" #. (itstool) path: listitem/para -#: book.translate.xml:5107 +#: book.translate.xml:5122 msgid "" "<literal>Login group</literal> - The user's group. Typically this is left " "blank to accept the default." @@ -6995,7 +7014,7 @@ msgstr "" "來使用預設值。" #. (itstool) path: listitem/para -#: book.translate.xml:5112 +#: book.translate.xml:5127 msgid "" "<literal>Invite <replaceable>user</replaceable> into other groups?</literal> " "- Additional groups to which the user will be added as a member. If the user " @@ -7006,12 +7025,12 @@ msgstr "" "需要管理權限,則在此輸入 <literal>wheel</literal>。" #. (itstool) path: listitem/para -#: book.translate.xml:5120 +#: book.translate.xml:5135 msgid "<literal>Login class</literal> - Typically left blank for the default." msgstr "登入類別 (<literal>Login class</literal>) - 通常會留空來使用預設值。" #. (itstool) path: listitem/para -#: book.translate.xml:5125 +#: book.translate.xml:5140 msgid "" "<literal>Shell</literal> - Type in one of the listed values to set the " "interactive shell for the user. Refer to <xref linkend=\"shells\"/> for more " @@ -7021,7 +7040,7 @@ msgstr "" "參考 <xref linkend=\"shells\"/> 取得更多有關 Shell 的資訊。" #. (itstool) path: listitem/para -#: book.translate.xml:5132 +#: book.translate.xml:5147 msgid "" "<literal>Home directory</literal> - The user's home directory. The default " "is usually correct." @@ -7030,7 +7049,7 @@ msgstr "" "問題的。" #. (itstool) path: listitem/para -#: book.translate.xml:5137 +#: book.translate.xml:5152 msgid "" "<literal>Home directory permissions</literal> - Permissions on the user's " "home directory. The default is usually correct." @@ -7039,7 +7058,7 @@ msgstr "" "限,預設值通常是沒有問題的。" #. (itstool) path: listitem/para -#: book.translate.xml:5143 +#: book.translate.xml:5158 msgid "" "<literal>Use password-based authentication?</literal> - Typically " "<literal>yes</literal> so that the user is prompted to input their password " @@ -7049,7 +7068,7 @@ msgstr "" "literal>) - 通常為是 (<literal>yes</literal>),使用者才可於登入時輸入密碼。" #. (itstool) path: listitem/para -#: book.translate.xml:5149 +#: book.translate.xml:5164 msgid "" "<literal>Use an empty password?</literal> - Typically <literal>no</literal> " "as it is insecure to have a blank password." @@ -7058,7 +7077,7 @@ msgstr "" "(<literal>no</literal>),因為使用空白密碼並不安全。" #. (itstool) path: listitem/para -#: book.translate.xml:5155 +#: book.translate.xml:5170 msgid "" "<literal>Use a random password?</literal> - Typically <literal>no</literal> " "so that the user can set their own password in the next prompt." @@ -7067,7 +7086,7 @@ msgstr "" "(<literal>no</literal>),這樣使用者接下來才可設定自己的密碼。" #. (itstool) path: listitem/para -#: book.translate.xml:5161 +#: book.translate.xml:5176 msgid "" "<literal>Enter password</literal> - The password for this user. Characters " "typed will not show on the screen." @@ -7076,7 +7095,7 @@ msgstr "" "會顯示在畫面上。" #. (itstool) path: listitem/para -#: book.translate.xml:5167 +#: book.translate.xml:5182 msgid "" "<literal>Enter password again</literal> - The password must be typed again " "for verification." @@ -7085,7 +7104,7 @@ msgstr "" "認無誤。" #. (itstool) path: listitem/para -#: book.translate.xml:5172 +#: book.translate.xml:5187 msgid "" "<literal>Lock out the account after creation?</literal> - Typically " "<literal>no</literal> so that the user can login." @@ -7094,7 +7113,7 @@ msgstr "" "literal>) - 通常為否 (<literal>no</literal>),這樣使用者才可以登入。" #. (itstool) path: sect2/para -#: book.translate.xml:5178 +#: book.translate.xml:5193 msgid "" "After entering everything, a summary is shown for review. If a mistake was " "made, enter <literal>no</literal> and try again. If everything is correct, " @@ -7105,7 +7124,7 @@ msgstr "" "literal>) 以後便會建立新使用者。" #. (itstool) path: figure/title -#: book.translate.xml:5184 +#: book.translate.xml:5199 msgid "Exit User and Group Management" msgstr "離開使用者與群組管理" @@ -7114,13 +7133,13 @@ msgstr "離開使用者與群組管理" #. 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. -#: book.translate.xml:5188 +#: book.translate.xml:5203 msgctxt "_" msgid "external ref='bsdinstall/bsdinstall-adduser3' md5='__failed__'" msgstr "" #. (itstool) path: sect2/para -#: book.translate.xml:5193 +#: book.translate.xml:5208 msgid "" "If there are more users to add, answer the <literal>A |