差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
blog:2017:2017-11-09 [2017-11-10 19:36]
Decomo
blog:2017:2017-11-09 [2019-11-26 00:23] (現在)
Decomo
行 1: 行 1:
-====== ZFSで使ったことがあるHDD/SSDを再利用する時はzpool labelclearすべき ======+====== ZFSのメンバだったディスクを再利用する時はzpool labelclearすべき ======
  
 一度でもZFSで使ったことがあるストレージを別のzpoolに使い回す際は、zpool labelclearコマンドで当該デバイスからZFSラベル情報を消した方が良さそうだ。 一度でもZFSで使ったことがあるストレージを別のzpoolに使い回す際は、zpool labelclearコマンドで当該デバイスからZFSラベル情報を消した方が良さそうだ。
行 44: 行 44:
  
 というわけで、ZFSプールを作る時は忘れずにlabelclearで以前の情報を消すようにしたい。 というわけで、ZFSプールを作る時は忘れずにlabelclearで以前の情報を消すようにしたい。
 +
 +----
 +**(2017-11-14 追記)**
 +
 +タイミングよく本症状が発生したのでスクショをうp。
 +{{ :blog:2017:appear_previous_corrupted_zpool.png |}}
 +
 +やった事はと言うと...
 +  - 以前のzroot(赤い方)を削除しlabelclear
 +  - 新しいzroot(緑の方)を作成
 +  - FreeBSD 11.0-RELEASEをインストール
 +  - freebsd-updateで11.1-RELEASEに更新するも、ブート時のTrying to mount root~で失敗して起動しなくなる
 +    * 今にして思えば、この時点で古いプールが認識されて旧zrootの方をマウントしようとしてたのかも…?
 +  - kernel.oldの方から起動してfreebsd-updateで11.0の最新にしようとする
 +  - 見事に失敗して起動しなくなる。起動スプラッシュのシェルでload kernelもload zfsも失敗する状態。
 +  - インストーラメディアから起動してzpool importしたらこの状態
 +
 +確かにlabelclearしたハズなんだけどなぁ…。変なzpool.cacheでも食ってんのかなぁ…?わからん。
 +
 +----
 +**(2017-11-16 追記)**
 +
 +あ、ありのまま起こったことを(ry。
 +
 +症状が出たHDDの各パーティションを再度labelclearしてddでゼロフィルまでしたにもかかわらず、古い方のzrootが認識されやがったぜ……。最終的に''zpool labelclear da0''してようやく認識されなくなった。(が、当然GPTは壊れる。セカンダリテーブルは生きてるからパーティションの認識と復旧は可能だが…。)GPTの領域にZFSラベルが書き込まれそうな使い方─つまりディスク全体をzpoolにするような使い方はした記憶がないんだが、どうしてこうなった……?
 +
 +結論としては、zpoolを作る時は対象デバイスの''/dev/daX''と''/dev/daXpY''を全てlabelclearするのが安全、可能なら全体をゼロフィルするということで。
  • blog/2017/2017-11-09.1510310176.txt.gz
  • 最終更新: 2017-11-10 19:36
  • by Decomo