[Linux] 安裝 HFS 相關套件,讓 CentOS 可以讀取 Mac 格式硬碟
之前買的一個外接式硬碟,
想說只有 Mac 會用,格式化成了 Mac 專用的 HFS+ 格式,
結果後來造成了不少困擾…
像是接到 Windows 機器上認不得,只好用 HFSExplorer 來讀取,
不過 HFSExplorer 畢竟只能選擇單一的檔案,
少量的檔案還算 OK,如果要複製大量的檔案可就麻煩了…
想要將外接硬碟的檔案備份出來,
再重新將硬碟格式化成 ExFAT 格式,Windows/Mac 皆可用,
但我 Mac 上的內建硬碟剩餘空間太小,
唯一有空間的只有一台 CentOS Linux 機器。
可是 CentOS 也認不得 HFS+,怎麼辦呢?
上網找了一下,原來 CentOS 有套件可以支援 HFS+ 的讀取 (無法寫入),
而且已經將步驟詳細列出,就來照做一次吧~
1. 新增 ELRepo
ELRepo 這個 repository 包含了這次必要的套件,
因此要先把它加到系統上:
sudo rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org sudo rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
執行完之後,會新增 /etc/yum.repos.d/elrepo.repo 這個檔案,
yum 就可以到 ELRepo 找套件了~
2. 安裝 HFS 相關套件
執行下面指令,安裝 HFS 相關的 kernel module 和套件:
sudo yum install -y kmod-hfs sudo yum install -y kmod-hfsplus sudo yum install -y hfsplus-tools
在安裝 kmod-hfs 和 kmod-hfsplus 這兩個 kernel module 時,
因為它會去新增檔案系統,
因此會花比較多時間 (大約是一兩分鐘?)
裝完之後,可以確認一下套件有裝好:
testuser@localhost ~ $ rpm -qa | grep hfsplus kmod-hfsplus-0.0-5.el7_5.elrepo.x86_64 hfsplus-tools-540.1.linux3-4.el7.x86_64
3. 讀取 HFS 硬碟
將 Mac HFS/HFS+ 格式的硬碟接上電腦,
理論上要可以正常掛載了~
像 CentOS 7 預設會掛載到 /run/media/$USER/<硬碟名稱> 下:
testuser@localhost ~ $ mount /dev/sdb2 on /run/media/testuser/Seagate Backup Plus Drive type hfsplus (ro,nosuid,nodev,relatime,umask=22,uid=1000,gid=1000,nls=utf8,uhelper=udisks2)
注意 mount 輸出中的 ro,代表這個檔案系統是唯讀的,
我們不能建立新檔案、修改或是刪除現有的檔案。
不過讀取是沒有問題的:
testuser@localhost ~ $ ll /run/media/testuser/Seagate\ Backup\ Plus\ Drive/ -rwxr-xr-x. 1 nobody nobody 32 Jul 17 2012 Autorun.inf -rwxr-xr-x. 1 nobody nobody 168766 Jun 5 2015 BackupPlus.ico drwxr-xr-x. 1 root nobody 6 Oct 5 2017 Backups.backupdb drwxr-xr-x. 1 501 games 724 Apr 12 16:42 DCIM
這樣子,我們就可以順利的把 Mac HFS+ 的硬碟上的檔案,
複製到 CentOS 上,之後就能重新將硬碟格式化成 ExFAT 格式啦~
參考資料:Mount HFS & HFSPLUS (Apple Filesystem Types) – CentOS