在數位資料的時代,我們依賴儲存裝置來保存寶貴的數據,而 Synology NAS 更是許多使用者的首選。然而即使是最好最穩定的 Synology NAS 也是有機率發生意外故障,導致 NAS 無法正常啟動。在這種情況下,許多人可能會感到困惑和無助,擔心他們的重要數據會永遠消失。
今天我們將介紹一個能夠幫助你在 Synology NAS 故障無法開機的情況中,透過 macOS 從 NAS 硬碟中擷取資料的教學。這個技巧不僅能讓你從困境中解脫,更讓你保護和恢復你重要的檔案。準備好發現這個救星般的解決方案了嗎?
註:這篇教學主要是教學從 macOS 透過 Parallels Desktop 存取 NAS 硬碟中的資料,而非資料救援功能的教學。
存取 NAS 硬碟事前工具準備
- 一台 macOS 的電腦
- Parallels Desktop
- Ubuntu 版本為 15 ~ 16.04.7 LTS 映象檔(不能使用最新版本的原因底下會解釋)
- Synology NAS 中的硬碟組(RAID / SHR / 單獨硬碟、Btrfs / ext4 格式均可,系統版本需為 DSM 6.2 以上)
- 足夠讀取所有硬碟陣列數量的外接盒或裝置,這邊我是選擇 AKiTiO 出的 SK-3501
假設今天你在 NAS 中是一個 2 顆硬碟組成 RAID 1 的儲存集區,因為 RAID 技術的資料分散性,你需要準備兩顆 3.5 硬碟的外接盒同時使用兩個電腦的 USB 孔將兩顆硬碟均接上 Mac。 - Synology 官方文件:
https://kb.synology.com/zh-hk/DSM/tutorial/How_can_I_recover_data_from_my_DiskStation_using_a_PC
首先先下載 Parallels Desktop 18 虛擬系統程式,詳細步驟可以參考之前的教學:
- PChome:Parallels Desktop 18 for Mac 標準版
- momo:Parallels Desktop 18 for Mac 標準版
- Yahoo:Parallels Desktop 18 for Mac 標準版
透過 Parallels Desktop 方便快速安裝部屬不同版本的 Ubuntu,這邊幫大家踩雷先避開一個坑。我測到這個問題:
如果你使用官方推薦的 Ubuntu 18.04 或更新的版本,掛載 NAS 硬碟時會出現 “Wrong fs type, bad option, bad superblock” 錯誤。
主要錯誤原因是 在 Linux Kernal 4.7 (2016年07月推出) 後的版本新增了對保留 GDT 區塊數量的檢查,因此將 DSM 建立的儲存區拿到 4.7 版本以後的 Linux 會無法掛載,需要使用 Kernal 為 4.7 版本前的 Ubuntu,用日期推算一下大概有 Ubuntu 15 ~ 16.04.7 LTS 之間的版本可以使用。
在這個範例測試中,我將硬碟放入兩個檔案和一個資料夾,等等還原時可以比較。
1. Ubuntu 安裝
Ubuntu 安裝我們在上一篇教學中有完整清楚的步驟說明,可以選擇我們這篇教學中需要的版本(Ubuntu 15~16.04.7) 用上一篇的方式安裝即可。
2. 將硬碟接上 Parallels Desktop
準備好 Parallels Desktop 環境後,接著先將硬碟們接上你的 Mac 電腦,因為硬碟格式是給 Linux 使用的,在 macOS 中會跳出無法辨識的視窗非常正常,不需要慌張。
接著使用 Parallels Desktop 掛載周邊裝置的功能,將外接硬碟掛上去,這邊需要找一下你的外接裝置名稱。
並提供讀取外接硬碟的權限給 Parallels Desktop。
3. 以 Ubuntu 虛擬機進行操作
進入 Ubuntu 後先取得 root 權限才能進行接下來的操作:
sudo -i
接著使用 root 權限,在你想要掛載硬碟的地方建立資料夾,我是選 `/home/ubuntu`底下,創立一個 SHR1 為名稱的資料夾,透過 `pwd`指令可以看見你現在在的路徑方便等等輸入:
pwd mkdir /home/ubuntu/SHR1 ls /home/ubuntu
4. 以 Ubuntu 虛擬機掛載硬碟
輸入以下指令來重組所有從 Synology NAS 取出的硬碟,其結果可能會因 Synology NAS 上的儲存集區配置而有所不同。以我一顆 SHR 為例的話這步是沒有效果的:
mdadm -AsfR && vgchange -ay
接著輸入以下指令來取得 `${device_path}` 的資訊,要拿到的資訊是 `lvs` 出來的 LV / VG 路徑,例如我放一顆 4T (3.63T) 的硬碟,會找到` LV = volume_1 和 VG = vg1`,就能組成 `device_path` 為 `/dev/vg1/volume_1`,這就是我們需要的硬碟來源掛載路徑,其他種類 RAID 規則可以參考【Synology 文件】來推算
cat /proc/mdstat lvs
於是,透過剛剛取得的硬碟來源掛載路徑,我們透過 mount 指令組成以下指令,並掛載到我們一開始創立的資料夾 `/home/ubuntu/SHR1/`上,格式為:
mount ${device_path} ${mount_point} -o ro
以我的例子產生的完整指令為:
mount /dev/vg1/volume_1 /home/ubuntu/SHR1/ -o ro
如此一來,就能成功掛載了
透過 `ls /home/uuntu/SHR1` 指令,就可以看到底下有一個我在 NAS 中建立的共享資料夾 `SHR1`,裡面也有完整我剛剛放的檔案~
5. 在 macOS 中存取恢復的資料
我們先將 Parallels 的網卡選擇成 Bridged Network,方便使用同一個網段的 IP 位址來 SSH 登入
切換完成後記得先重開機一次才會生效,之後登入 Ubuntu 系統,輸入ifconfig
指令取得 Ubuntu 虛擬系統的 IP 位址
接著因為 Ubuntu 預設沒有安裝 SSH 套件,我們需要在虛擬系統的 Ubuntu 中安裝 SSH Package,輸入以下指令來安裝
sudo apt-get install openssh-server
安裝完成後可以用這個指令確認服務是否有開啟,更多教學可以參考
sudo service ssh status
如此一來就可以在 macOS 中開啟終端機,輸入 ssh ubuntu@IP位址
來登入你的 Ubuntu 了
那要如何在 macOS 中瀏覽還原的 Synology NAS 資料夾呢?可以透過終端機 rsync 指令來複製,或者是透過更親民介面的 ForkLift 直接存取虛擬機裡面的掛載資料夾
ForkLift: https://binarynights.com
下載完 ForkLift 3 安裝後開啟,我們建立一個新的站點,輸入 Ubuntu 虛擬機的 IP (如我剛剛取得的就是 192.168.1.149),帳號是我設定的 ubuntu,密碼則是登入虛擬機的密碼,連接協定選擇 SFTP
建立後直接連接,記得我們剛剛步驟是將 Synology 硬碟資料夾掛載到 /home/ubuntu 下面嗎。這樣一來,你開啟 forkLift 就欲社會顯示在使用者加目錄底下了,我們也可以看到 Synology 硬碟內的資料,還可以透過如 Finder 一般的操作方式來拖拉複製!大功告成
你成功了嗎?
成功的話,請記得幫 APPLEFANS 蘋果迷分享此篇教學文章,您的分享才會是我們繼續創作的動力,謝謝各位~
如果想得到更多 iPhone、Mac 教學,請追蹤蘋果迷粉絲團以掌握最新訊息,並且訂閱我們 YouTube 頻道,取得直播第一時間通知,或者加入蘋果迷社團跟大家分享自己的心得和疑難雜症哦~
如果想要聊天,也可以加入我們的 LINE 聊天群找我們。