有馬総一郎のブログ

(彼氏の事情)

起動時のZFSプールのインポート処理を止めさせたい

Ubuntu 16.04

zfs導入して二日経った。

やはり、KURO-DACHI/CLONE/U3は二台差しでは不安定なようだった。robocopyをしはじめて、2時間ぐらいでディスクを認識しなくなった。

取り外すことにした。そして再起動…

[FAILED] Failed to start Import ZFS pools by cache file.
See 'systemctl status zfs-import-cache.service' for details.
     Starting Mount ZFS filesystems...

緊急モードでの起動になってしまった…ZFSプールのインポート処理でエラーの文字が…どうすればインポートを止められるのだろうか(結論から言うとZFSプールのインポートの失敗によるせいではなかったのだが)

/etc/modulesから zfs を削除して、

modprobe -r zfs

ZFSモジュールを無効化し再起動しても駄目。

/etc/default/zfsでは元より

ZFS_SHARE='no'

となっている。

zpool clear tank
zpool destroy -f tank

とするも、元より tank が認識されていない。

svcadm milestone all
systemctl stop zfs-mount

無反応(メッセージが出ないだけで、何かしらの処理は行われていたのかもしれないが…)。 /etc/init/zpool-import.confを作成し

modprobe zfs zfs_autoimport_disable=0

を記述したが駄目。

/etc/rc.local

zfs unmount -a
exit 0 #元からの記述

を記述しても駄目。

サービスの起動を止めようと、/etc/init/直下を見るもそれらしきものがない。ならばと、/etc/init.d/zfs-shareの中身をコメントアウトしても駄目。

一番初めに見たOracle Solaris ZFS 管理ガイド > 起動できないシステムを修復するを見直すと

/etc/zfs/zpool.cache ファイルの名前を変更するかこのファイルを別の場所に移動します。

とあるので、

mv /etc/zfs/zpool.cache /etc/zfs/zpool.cache.mv

とすれば、システム起動時にインポートでずっこけることはなくなった。

そこまでやって、そもそも正常起動できないのは/etc/fstabで取り外した外付けHDDを記載してることに気付く。いや、いつもならまっさきに気付いたのだが、zfs導入して二日目なので、zfsのせいとばかり早合点してしまった。

sudo rm /etc/zfs/zpool.cache.mv

一度、プールを削除した。

HDDケースとして、ラトックシステム USB3.0/2.0 RAIDケース(HDD2台用)RS-EC32-U3Rを買ってきて、それを取り付ける。 前回はデバイス名(/dev/sd名)で作成したが、今度は、ディスクのWWID(/dev/disk/by-id/)で指定して作成した。調べたが、UUIDで指定する方法はないみたい。

sudo zpool create -f tank usb-ST8000AS_0002-1ZZ11Z_123456789012-0:1 -o ashift=12 -o autoexpand=on

再び、robocopy開始。00:15:23から23:14:15まで丸一日4TBコピーしたが、途切れることなく成功した。その後、コピーしたファイルが、sambaでちゃんとアクセスできて、操作するできることを確認した。

Comments