2016年12月9日金曜日

FreeBSD 11のインストール(zfs root/mirrorの場合) - 5

新しく接続したディスクのパーティションを、既存のディスクと同じようにしたい場合には、gpart backup/restoreを使います。
# gpart show
=>        40  7814037088  ada0  GPT  (3.6T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  freebsd-zfs  (3.6T)
  7814035456        1672        - free -  (836K)

=>        40  7814037088  ada1  GPT  (3.6T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  freebsd-zfs  (3.6T)
  7814035456        1672        - free -  (836K)

=>        40  3907029088  ada2  GPT  (1.8T)
          40  3907029088        - free -  (1.8T)

=>        40  3907029088  ada3  GPT  (1.8T)
          40  3907029088        - free -  (1.8T)

=>        40  3907029088  ada4  GPT  (1.8T)
          40  3907029088        - free -  (1.8T)

=>        40  3907029088  ada5  GPT  (1.8T)
          40  3907029088        - free -  (1.8T)

#
ada0とada1は4TB、ada2〜ada5は2TBのHDDです。単純にada1のパーティション情報をada2に書き込んでみるとエラーになります。
# gpart backup ada1 | gpart restore -F ada2
gpart: size '7814031360': Invalid argument
# gpart backup ada1
GPT 152
1            efi         40       1600 efiboot1
2   freebsd-boot       1640       1024 gptboot1
3    freebsd-zfs       4096 7814031360 disk1
#
3つ目のパーティションはこのディスクには大きすぎるので、3つ目のパーティション情報以外を書き込むことにします。
# gpart backup ada1 | head -3
GPT 152
1            efi         40       1600 efiboot1
2   freebsd-boot       1640       1024 gptboot1
# gpart backup ada1 | head -3 | gpart restore -F ada2
# gpart show ada1 ada2
=>        40  7814037088  ada1  GPT  (3.6T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  freebsd-zfs  (3.6T)
  7814035456        1672        - free -  (836K)

=>        40  3907029088  ada2  GPT  (1.8T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664  3907026464        - free -  (1.8T)

#
そして3つ目のパーティションはコマンドで陽にして指定して作ります。
# gpart add -t freebsd-zfs -b 4096 ada2
ada2p3 added
# gpart show ada1 ada2
=>        40  7814037088  ada1  GPT  (3.6T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  freebsd-zfs  (3.6T)
  7814035456        1672        - free -  (836K)

=>        40  3907029088  ada2  GPT  (1.8T)
          40        1600     1  efi  (800K)
        1640        1024     2  freebsd-boot  (512K)
        2664        1432        - free -  (716K)
        4096  3907025024     3  freebsd-zfs  (1.8T)
  3907029120           8        - free -  (4.0K)

#
ラベルはないので、これも指定します。
# gpart show -l ada1 ada2
=>        40  7814037088  ada1  GPT  (3.6T)
          40        1600     1  efiboot1  (800K)
        1640        1024     2  gptboot1  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  disk1  (3.6T)
  7814035456        1672        - free -  (836K)

=>        40  3907029088  ada2  GPT  (1.8T)
          40        1600     1  (null)  (800K)
        1640        1024     2  (null)  (512K)
        2664        1432        - free -  (716K)
        4096  3907025024     3  (null)  (1.8T)
  3907029120           8        - free -  (4.0K)

# gpart modify -i 1 -l efiboot2 ada2
ada2p1 modified
# gpart modify -i 2 -l gptboot2 ada2
ada2p2 modified
# gpart modify -i 3 -l disk2 ada2
ada2p3 modified
# gpart show -l ada1 ada2
=>        40  7814037088  ada1  GPT  (3.6T)
          40        1600     1  efiboot1  (800K)
        1640        1024     2  gptboot1  (512K)
        2664        1432        - free -  (716K)
        4096  7814031360     3  disk1  (3.6T)
  7814035456        1672        - free -  (836K)

=>        40  3907029088  ada2  GPT  (1.8T)
          40        1600     1  efiboot2  (800K)
        1640        1024     2  gptboot2  (512K)
        2664        1432        - free -  (716K)
        4096  3907025024     3  disk2  (1.8T)
  3907029120           8        - free -  (4.0K)

#
gpart backup/retoreを使うと、/dev/gptにディスクが現れないので、再起動します
# ls /dev/gpt
disk0        efiboot0    gptboot0
disk1        efiboot1    gptboot1
# reboot

# ls /dev/gpt
disk0        efiboot0    gptboot0
disk1        efiboot1    gptboot1
#