在 MacOS 上讀取 Btrfs 分區文件

  1. 背景和前置條件

Btrfs 文件系統相較於 Ext4 ,是一種更年輕的文件系統,具有更多可玩的特徵,比如支持快照、子卷、校驗和自檢、軟 RAID 甚至透明壓縮等。

但是在沒有運維能力的情況下,建議不要使用 Btrfs 文件系統。本文記錄的是,在羣輝 DSM 系統下,將 Btrfs 文件系統的磁盤拆下後,讀取數據的過程。

在我的 DSM 系統中,有兩塊硬盤組成 RAID1 陣列,使用的是 Btrfs 文件系統。我將其中一塊硬盤拆下,插入到另外一臺蘋果機器中。

此外,這裏要求,DSM 版本不低於 6.2,MacOS 系統上有 Parallels Desktop 並安裝有 Ubuntu 版本不低於 18.04。

如果你有 Windows 機器,那麼也可以嘗試使用 WinBtrfs 驅動進行文件讀取。

  1. MacOS 上掛載硬盤

可以看到 MacOS 無法直接識別 Btrfs 文件系統。忽略圖片中顯示 disk3,這是補的一張圖,最初是 disk2。

diskutil list

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         1000.0 GB  disk0s2
...
/dev/disk2 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                                                   *4.0 TB     disk2

進入 Home 目錄

cd ~

新建硬盤指向物理磁盤

/Applications/ParallelsDesktop.app/Contents/MacOS/prl_disk_tool create -p --hdd disk2.hdd --ext-disk-path /dev/disk2
  1. 將硬盤掛載到 PD 的 Ubuntu 虛擬機

進入 Ubuntu 關閉主機,然後編輯虛擬機,添加一塊硬盤,選擇已經存在的硬盤,選中上面創建的 disk2.hdd 中的 HDD 格式文件。

  1. 在 Ubuntu 上讀取 Btrfs 分區

sudo -i
apt-get install -y mdadm lvm2

在 Disks 工具中,可以看到磁盤

自動掛載分區

mdadm -Asf && vgchange -ay

查看 /dev/md4 分區,如果處於 inactive 狀態,可以卸載之後,再次重試。

mdadm -D /dev/md4

/dev/md4:
           Version : 1.2
     Creation Time : Thu Apr 30 20:16:28 2020
        Raid Level : raid1
        Array Size : 3902187456 (3721.42 GiB 3995.84 GB)
     Used Dev Size : 3902187456 (3721.42 GiB 3995.84 GB)
      Raid Devices : 2
     Total Devices : 1
       Persistence : Superblock is persistent

       Update Time : Sat Dec 18 07:38:07 2021
             State : clean, degraded 
    Active Devices : 1
   Working Devices : 1
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : DiskStation:4
              UUID : 9cf8faf4:c1c76801:3a4efd95:f021908b
            Events : 16609

    Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8       21        1      active sync   /dev/sdb5
mount /dev/vg1/volume_1 /data

此時在 Ubuntu 系統 /data 目錄下,已經可以訪問 Btrfs 磁盤分區的數據。

  1. MacOS 上掛載 Ubuntu 目錄訪問文件

由於在 Ubuntu 中訪問 Btrfs 磁盤分區的數據,不夠方便,因此這裏將 PD Ubuntu 中的目錄掛載到 MacOS 系統中。

brew install macfuse sshfs-mac curlftpfs-mac
sshfs shaowenchen@10.211.55.12:/data /Users/shaowenchen/Data

  1. 參考

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/zHamuam8bsB2Wrk6zG_S5w