📑

centos 9 stream で hfs+をマウント

2024/11/26に公開

検証用にNFSサーバを作ろうと思い、ローカルが実行数十GBくらいしかなかったところ、
4TBのUSBHDDを使っていいと言われ、いざUSB接続してみたらまんまとMACでフォーマット
されていたのですが、フォーマットしなおしたら負けだと思い、マウントしようとしたら
案外面倒だったのでまとめます。

とりあえず、標準、epelはダメでした。
ということでstreamのままではダメで、
唯一行けたのがメインライン(kernel-ml)にカーネル切り替えちゃう、
だったのでタイトルは詐欺なのですが、簡単にまとめます。

前提

  • というわけではないですが、結果的に

    • yum updateしたり
    • epel入れたり
    • crb有効化してみたり
      したのですが、解決せず、ここに至った点、一応記載しておきます。
  • また、後で使うbindfsはこの時点インストールできるのでしておきます。

  • OS:centos 9 stream(物理サーバ)

yum install bindfs

repo入れて

dnf install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
dnf makecache

kernel-mlをインストール

dnf install kernel-ml

確認してreboot

# grubby --default-kernel
/boot/vmlinuz-6.12.1-1.el9.elrepo.x86_64
# reboot

起動後、確認

# uname -r
6.12.1-1.el9.elrepo.x86_64

USBを確認

サイズ分かってればこれ

# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPO
~~~
略
~~~
sdb           8:16   0   3.6T  0 disk
├─sdb1        8:17   0   200M  0 part
└─sdb2        8:18   0   3.6T  0 part 

もしくは、
parted -l だと

Model:~~~
略
~~~
 2      210MB   4001GB  4000GB  hfs+

hfs+と書いてくれてるからお好きな方でデバイスを確認。

モジュール使えると思うので一応コマンドを入力

modprobe hfsplus
なにも返らなければOK

マウントする(mountpointは便宜的)

# mount -t hfsplus -o force,rw /dev/sdb2 /mnt/usb-root
# bindfs -u $(id -u) -g $(id -g) /mnt/usb-root /mnt/usb

※直接マウントだと、書き込みできないので、強制的にローカルルートでマウントしなおします。

  • つまりは、/mnt/usbにしか書き込みできません。
    ※umountは逆順で。 /mnt/usb → /mnt/usb-root

確認

マウント先で隠しファイルにappleとかSpotlightとかMACっぽいキーワード
が読み取れます。

# ls -la /mnt/usb | grep -o -e "Spot" -e "apple"
apple
Spot

esxiへのnfsでの見せ方について

  • exportするときにfsidを付けないとだめ。
    • いろいろ試してないけど0にしてルートとして見せたらすんなりマウントできた。

おまけ

なお、最初yum updateしようとしてchecksumが合わないみたいなエラーで先に進めず、
いろいろ調べて始めたんですが、結果的に

#metalink=https://mirrors.centos.org/metalink?repo=centos-baseos-$stream&arch=$basearch&protocol=https,http
baseurl=https://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/

タイミング的にライブラリ側に何かあってmetalinkがうまく動いてなかったのか
強制的にbaseurl見せたら行けました。

  • hfsplus-toolsは実際マウントした後に調査するときとかに使います。
    • 例えばfsck.hfsplusとか使うときとか。

ちなみに、結局そのdiskにNFS越しにvcenter越しにイメージのクローンを作る(これが最終的な目的だったのですが)デカいファイルコピーしようとすると条件を変えても同じとこでハングって使い物にならず、そっとあった場所に返して、別のHDDを2本USB越しに束ねて使う羽目になったのは秘密。

Discussion