資料問題

資料問題是指,機器或許可以 (或無法) 正確開機,但系統上有著明顯的資料損毀,且需要修復。遇到這些情況時,需要用到您重要資料的備份檔案,以讓您的系統回復到故障前的狀態。SUSE Linux Enterprise Desktop 提供了專用的 YaST 模組,用於系統備份與還原,並提供了一個救援系統,可從外部復原損毀的系統。

管理分割區影像

有時,您需要對整個分割區甚至是硬碟執行備份。Linux 附帶 dd 工具,可為磁碟建立完全一致的副本。結合 gzip,還能為您節省一些空間。

過程 28.7. 備份及還原硬碟

  1. root 使用者身分啟動外圍程序。

  2. 選取來源設備。一般類似 /dev/sda (標示為 SOURCE)。

  3. 決定要儲存影像 (標示為 BACKUP_PATH) 的位置。此位置必須不同於來源設備的位置。換言之,如果您對 /dev/sda 進行備份,就不能將影像檔案儲存在 /dev/sda 下。

  4. 執行以下指令建立壓縮影像檔︰

    dd if=/dev/SOURCE | gzip > /BACKUP_PATH/image.gz 
  5. 使用以下指令還原硬碟:

    gzip -dc /BACKUP_PATH/image.gz | dd of=/dev/SOURCE

如果您只需備份分割區,請使用各個分割區取代指令中預留的 SOURCE。如此,您的影像檔便會存放於同一個硬碟的不同分割區中。

備份重要資料

使用 YaST 系統備份模組,可輕鬆管理系統備份:

  1. 以根使用者身份啟動 YaST,並選取系統系統備份

  2. 建立持有備份所需所有細節、歸檔檔名、範圍和備份類型等資訊的備份設定檔:

    1. 選取設定檔管理+新增

    2. 輸入歸檔的名稱。

    3. 若您希望將備份保存於本地,請輸入備份的路徑與位置。若您要將備份歸檔於網路伺服器 (透過 NFS),請輸入要存放歸檔的 IP 位址或伺服器名稱和目錄。

    4. 決定歸檔類型,並按一下下一步

    5. 決定要使用的備份選項,如不隸屬任何套件的檔案是否要備份,以及建立歸檔前是否要先顯示檔案清單。同時也要決定是否要使用耗時的 MD5 機制,辨識檔案是否已變更過。

      使用進階進入備份整個硬碟區域的對話。此選項目前只適用於 Ext2 檔案系統。

    6. 最後,請設定搜尋限制,以將不需備份的特定系統區域從備份區域中排除,如所定的檔案或是快取檔案。新增、編輯或刪除項目,直到符合您的需求為止,再按確定離開。

  3. 完成設定檔設定之後,您就可以立即使用開始開始備份,或設定自動備份。您亦可針對其他不同目的,建立其他設定檔。

若要為已知設定檔設定自動備份,請如下操作:

  1. 設定檔管理中選取自動備份功能表。

  2. 選取開始自動備份

  3. 決定備份的頻率。選擇每日每週每月

  4. 決定備份開始時間。這些設定會根據所選取的備份頻率而定。

  5. 決定是否保留舊的備份,以及要保留多少。若要收到自動產生的備份程序狀態訊息,請按一下傳送摘要郵件給使用者 root

  6. 按一下確定套用您的設定,並於指定的時間啟動第一次備份。

還原系統備份

使用 YaST 系統還原模組,從備份還原系統組態。您可還原整個備份,或選取特定損毀而需要重設置舊狀態的元件。

  1. 啟動 YaST+系統+系統還原

  2. 輸入備份檔案的位置。可以是本地檔案、掛載於網路的檔案,或是軟碟或 DVD 等抽取式設備中的檔案。然後按下一步

    下列對話方塊會顯示歸檔內容的摘要,如檔案名稱、建立日期、備份類型和選用的註解。

  3. 按一下歸檔內容檢視歸檔的內容。按一下確定返回歸檔內容對話方塊。

  4. 會開啟進階選項對話方塊,讓您微調還原程序。按一下確定即可回到歸檔內容對話。

  5. 按一下下一步開啟要還原的套件檢視畫面。按接受還原歸檔中的所有檔案,或使用各式各樣的全選取消全選選取檔案按鈕,微調您的選擇。只有當 RPM 資料庫損毀或已刪除,而且此檔案包含於備份中時,才使用還原 RPM 資料庫選項。

  6. 按一下接受之後,就會還原備份。備份程序完成後,請按一下結束離開模組。

修復損毀的系統

系統無法啟動並正常運作的原因可能有幾種。最常見的原因是系統當機後檔案系統損毀、組態檔案損毀,或開機載入程式組態損毀。

SUSE Linux Enterprise Desktop 提供了兩種不同的方法來解決這些情況。您可以使用 YaST 系統修復功能,或啟動救援系統。下面幾節會介紹這兩種系統修復。

使用 YaST 系統修復

[Note]鍵盤與語言設定

如果您在開機後變更了語言設定,鍵盤也會相應調整。

啟動 YaST 的「系統修復」模組前,請判定要使用哪種模式執行,以符合您的需求。根據嚴重性與系統故障的原因 (以及您的技術水準),有三種不同的模式可以選擇:

自動修復

若您的系統會因為未知的原因故障,而您基本上不知道系統的哪個部分導致故障,請使用自動修復。這會對所安裝系統的所有元件進行大規模的自動檢查。如需此程序的詳細描述,請參閱第 28.6.4.1.1 節「自動修復」

自定修復

若您的系統故障,且您已經知道哪個元件造成故障,請將系統分析的範圍限制在那些元件上,停止自動修復冗長的系統檢查。例如,若故障前的系統訊息指示套件資料庫有錯誤,則您可將分析與修復程序限定於檢查並復原系統的這一部份。如需此程序的詳細描述,請參閱第 28.6.4.1.2 節「自定修復」

進階工具

如果您已經清楚瞭解發生故障的元件,且知道該如何修復,則可略過分析步驟,直接套用修復相關元件所需的工具。如需詳細資訊,請參閱第 28.6.4.1.3 節「進階工具」

如上所述選擇修復模式之一,並如以下章節所述繼續進行系統修復。

自動修復

若要啟動「YaST 系統修復」的自動修復模式,請如下執行:

  1. 將 SUSE Linux Enterprise Desktop 的安裝媒體插入 DVD 光碟機。

  2. 重新啟動系統。

  3. 在開機畫面中,選取修復已安裝的系統

  4. 確認授權合約並按一下下一步

  5. 選擇自動修復

    YaST 會立即啟動已安裝系統的大規模分析。程序的進度會以畫面底部的兩個進度列顯示。上面的進度列顯示目前執行測試的進度。下面的進度列顯示分析程序的整體進度。上方區段的記錄視窗會追蹤目前執行中的測試及其結果。請參閱圖形 28.4 「自動修復模式」

    圖形 28.4. 自動修復模式

    自動修復模式

    每次執行時都會執行下列主測試執行。其中包括一些個別的子測試:

    檢查分割區表

    對所有偵測到之硬碟的分割區表,進行有效性和連貫性的檢查。

    檢查交換區域

    對所安裝系統的交換分割區進行偵測、測試,並提議啟用 (若適用)。您應接受此提議,以便達到更高的系統修復速度。

    檢查檔案系統

    所有偵測到的檔案系統都會進行檔案系統的特定檢查。

    檢查 fstab 項目

    針對檔案中的項目進行完整性和一致性的檢查。所有有效分割區都會進行裝載。

    檢查套件資料庫

    檢查是否具有最小安裝作業所需的所有套件。雖然您也可以選擇分析基礎套件,但這很耗時,因為套件的數量十分龐大。

    檢查開機載入器組態

    針對已安裝系統 (GRUB 或 LILO) 的開機載入程式組態,檢查其完整性和一致性。這時會檢查開機和 root 設備,並檢查 initrd 模組的可用性。

  6. 發生錯誤時,程序會停止,並開啟對話方塊,說明詳細資訊及可能的解決方法。

    請仔細閱讀畫面訊息,再接受建議的修復動作。若您決定拒絕建議的解決方案,系統會保留不變。

  7. 修復程序成功完成之後,請按一下確定完成,並移除安裝媒體。這樣系統就會自動重新開機。

自定修復

若要啟動自定修復模式,並選擇性檢查已安裝系統的特定元件,請依照下列步驟執行:

  1. 將 SUSE Linux Enterprise Desktop 的安裝媒體插入 DVD 光碟機。

  2. 重新啟動系統。

  3. 在開機畫面中,選取修復已安裝的系統

  4. 確認授權合約並按一下下一步

  5. 選擇自定修復

    選擇自定修復會顯示測試執行清單,這些測試執行最初都會標記為執行。測試的整個範圍會與自動修復相符。如果您已經知道系統沒有受損,請取消相對應測試的標記。按一下下一步,然後啟動範圍較小的測試程序,它所需的執行時間可能短的多。

    不是所有測試群組都可以個別套用。檔案系統的檢驗一定會結合 fstab 項目的分析,包括現有的交換分割區。YaST 會選擇必要測試的最小執行數量,自動解析這樣的相依性。

  6. 發生錯誤時,程序會停止,並開啟對話方塊,說明詳細資訊及可能的解決方法。

    請仔細閱讀畫面訊息,再接受建議的修復動作。若您決定拒絕建議的解決方案,系統會保留不變。

  7. 修復程序成功完成之後,請按一下確定完成,並移除安裝媒體。這樣系統就會自動重新開機。

進階工具

如果您瞭解 SUSE Linux Enterprise Desktop,而且清楚知道需要修復系統中的哪些元件,請略過系統分析,直接套用工具。

若要使用「YaST 系統修復」模組的進階工具功能,請依照下列步驟執行:

  1. 將 SUSE Linux Enterprise Desktop 的安裝媒體插入 DVD 光碟機。

  2. 重新啟動系統。

  3. 在開機畫面中,選取修復已安裝的系統

  4. 確認授權合約並按一下下一步

  5. 選取進階工具,然後選擇一個修復選項。

  6. 修復程序成功完成之後,請按一下確定完成,並移除安裝媒體。這樣系統就會自動重新開機。

進階工具可提供下列選項來修復故障系統:

安裝新的開機載入程式

這會啟動 YaST 開機載入程式組態模組。如需詳細資訊,請參閱第 10.2 節「使用 YaST 設定開機載入程式」

將已安裝的系統開機

嘗試將已安裝的 Linux 系統開機。

啟動磁碟分割工具

這會啟動 YaST 裡的進階分割工具。

修復檔案系統

這會檢查您已安裝系統中的檔案系統。系統會先提供所有偵測到之分割區的選單,供您選擇一個來進行檢查。

復原遺失的分割區

您可以嘗試重建受損的分割區表。首先會提供所偵測到的硬碟清單,供您選擇。按一下確定,啟動檢查。這可能需要一些時間,具體視電腦速度及硬碟的大小和速度而定。

[Important]重建分割區表

重建分割區表有些麻煩。YaST 會分析硬碟的資料磁區,嘗試辨識遺失的分割區。辨識之後,會將遺失的分割區新增至重新建好的分割區表。不過,這個方法並不一定適用於每個所想得到的例子。

將系統設定儲存至軟碟

這個選項將重要的系統檔案儲存至軟碟。如果這些檔案中有一個受損,就可以從磁碟還原。

驗證安裝的軟體

這會檢查套件資料庫的一致性,和最重要套件的可用性。任何已安裝套件在受損時都可以使用這個工具重新安裝。

使用救援系統

SUSE Linux Enterprise Desktop 包含一個救援系統。救援系統是一個小型的 Linux 系統,可以載入到 RAM 磁碟上並裝載為根目錄檔案系統,好讓您從外部存取 Linux 分割區。藉由此救援系統,您可以復原或修改任何重要的系統項目:

  • 操作任何類型的組態檔案。

  • 檢查檔案系統有無缺失並啟動自動修復程序。

  • 變更根目錄環境中存取已安裝的系統.

  • 檢查、修改和重新安裝開機載入程式設定.

  • 使用 Parted 指令來調整分割區大小。如需此工具的詳細資訊,請造訪 GNU Parted 網站 http://www.gnu.org/software/parted/parted.html

救援系統可以從各種來源與位置載入。最簡單的方法就是從原始安裝媒體將救援系統開機:

  1. 將安裝媒體插入 DVD 光碟機。

  2. 重新啟動系統。

  3. 在開機畫面中按 F4,然後選擇DVD-ROM。之後從主功能表中選擇救援系統

  4. Rescue: 提示輸入 root。無須輸入密碼。

如果硬體設定沒有包含 DVD 光碟機,您可以從網路來源將救援系統開機。以下範例適用於遠端開機情境 — 如果使用其他開機媒體 (例如 DVD),請相應修改 info 檔案,並按照一般安裝方式開機。

  1. 輸入 PXE 開機設定的組態,然後新增下列行:install=protocol://instsourcerescue=1。如果需要啟動系統修復,請使用 repair=1。正如一般安裝的情況,protocol 代表任何支援的網路通訊協定 (NFS、HTTP、FTP 等等),而 instsource 代表網路安裝來源的路徑。

  2. 依照第 11.3.7 節「Wake on LAN」 (第 11 章「Remote Installation」, ↑部署指南)中的說明,使用網路喚醒啟動系統。

  3. Rescue: 提示輸入 root。無須輸入密碼。

一旦進入救援系統後,您可以利用 Alt+F1Alt+F6 來使用虛擬主控台。

/bin 目錄中提供外圍程序以及其他許多有用的公用程式,例如 mount 程式。sbin 目錄中包含重要的檔案與網路公用程式,以便檢視及修復檔案系統。此目錄中也包含最重要的二進位系統維護程式,例如 fdisk、mkfs、mkswap、mount、mount、init 及 shutdown,還有維謢網路的 ifconfig、ip、route 以及 netstat。目錄 /usr/bin 包含 vi 編輯器、find、less 以及 ssh。

若要檢視系統訊息,請使用指令 dmesg 或檢視檔案 /var/log/messages

檢查和操作組態檔案

為了舉例說明使用救援系統如何修正組態檔案,請想像系統由於組態檔案損毀而無法正常開機。您可以使用救援系統來解決這個問題。

若要操作組態檔案,請執行下列步驟:

  1. 使用上述的其中一個方法啟動救援系統。

  2. 若要將 /dev/sda6 下的開機檔案系統裝載到救援系統,請使用下列指令:

    mount /dev/sda6 /mnt

    系統的所有目錄現在都存放在 /mnt

  3. 將此目錄變更到裝載的開機檔案系統中:

    cd /mnt
  4. 在 vi 編輯器中開啟有問題的組態檔案。調整並儲存設定。

  5. 從救援系統解除裝載開機檔案系統:

    umount /mnt
  6. 重新開機。

修復和檢查檔案系統

一般而言,檔案系統無法在執行中的系統上修復。如果發生了嚴重的問題,您可能甚至無法裝載開機檔案,而且系統可能會因為核心異常而無法開機。在此情況下,唯一的方法就是從外部修復系統。強烈建議您使用 YaST 系統修復來執行這項任務 (如需詳細資料,請參閱第 28.6.4.1 節「使用 YaST 系統修復」)。不過,如果您需要執行手動檔案系統檢查或修復,請啟動救援系統。其中包含的公用程式可檢查和修復 ext2ext3ext4reiserfsxfsdosfs 以及 vfat 檔案系統。

存取已安裝的系統

如果需要從救援系統存取已安裝的系統,您需要在變更根目錄環境中執行此操作。例如,若要修改開機載入程式組態或執行硬體組態公用程式。

若要根據已安裝的系統設定變更根目錄環境,請執行下列步驟:

  1. 首先,從已安裝系統與設備檔案系統掛接根分割區 (將設備名稱變更為目前設定):

    mount /dev/sda6 /mnt
    mount --bind /dev /mnt/dev
  2. 現在您可以變更根目錄至新環境:

    chroot /mnt
  3. 接著裝載 /proc and /sys

    mount /proc
    mount /sys
  4. 最後,從已安裝的系統裝載其餘分割區:

    mount -a
  5. 現在您可以存取已安裝的系統。重新啟動系統之前,請先使用 umount -a 來解除裝載分割區,並以 exit 離開變更根目錄環境。

[Warning]限制

雖然您可以完全存取已安裝系統的檔案和應用程式,但必須遵守某些限制。執行中的核心是使用救援系統啟動的核心,而不是使用變更根目錄環境啟動的核心。它只支援基本硬體,而且無法從已安裝系統新增核心模組,除非核心版本完全一致 (這種機率很低)。因此舉例而言,您將無法存取音效卡。您也無法啟動圖形使用者介面。

另外請注意,當您使用 Alt+F1Alt+F6 來切換主控台時,將會離開變更根目錄環境。

修改和重新安裝開機載入程式

有時候系統無法開機是因為開機載入程式組態已損毀。譬如說,開機載入程式若未執行,啟動常式便無法將實體磁碟機轉譯為 Linux 檔案系統中的實際位置。

若要檢查開機載入程式組態和重新安裝開機載入程式,請執行下列步驟:

  1. 執行存取已安裝系統所需的必要步驟,如 第 28.6.4.2.3 節「存取已安裝的系統」 所述。

  2. 根據第 10 章「開機載入程式 GRUB 中概述的 GRUB 組態原則,檢查下列檔案是否正確設定,並在必要時加以修正。

    • /etc/grub.conf

    • /boot/grub/device.map

    • /boot/grub/menu.lst

    • /etc/sysconfig/bootloader

  3. 依序使用下列指令來重新安裝開機載入程式:

    grub --batch < /etc/grub.conf
  4. 解除裝載分割區,從變更根目錄環境登出,並重新啟動系統:

    umount -a
    exit
    reboot