タイトルリスト
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
 2020/03/12
日記帳のレイアウトを見直しました
本日記帳のレイアウトを見直しました。

PC版は1カ所バグ修正(右メニューがボックスグループからはみ出ていた)。

スマホ版は UA を見て .htaccess の RewriteCond を使ったスタイルシート切り替える方法から、CSS 内で Media Query を使用したスタイル適用に変更しています。
# デバイスピクセル比が 2以上のデバイスはスマホ向け表示になります。

数年前ならサポートしてないブラウザ云々ということもあり渋っていたところだが、今はそこまで心配することもないのかなぁと。
むしろ最近はスマホのデバイスピクセル比と viewport におけるウィンドウサイズに気を向けるべきっぽいけど横 360px くらいで見ておけばいいかなぁと思わなくもない。

最終:2020/03/12 15:34:54 カテゴリ:雑記 プログラム・スクリプト
タグ:
  - NO COMMENT -
TrackBack URL:[]
 2019/12/31
雪原撮影とコミケと買い物と
今年はいつになく暖冬傾向。
なんと美ヶ原に雪が積もらない程!
そんなわけで年末は久しぶりにコミケに行ってみようかな?と画策。
ついでにドルパで買い損ねたレンズを買うべく。

コミケは欲しい薄くて高い本が売り切れだったので 1冊だけ買って終了。

美ヶ原はなんとか雪原になっていたが、例年に比べるとやはり積雪量は少なかった。
なにより r174 に雪がほとんど無くて「これノーマルタイヤでもいけるんじゃね?」という程度だったが、流石に山頂付近になるとアスファルトは全然見えない程度には雪が被っていた。

レンズは結局 Canon EF16-35mm F4L IS USM 中古に決まり。
EF16-35mm F2.8L USM II が9.4万円くらいであって「お!?」と思ったけど、調べてみると 3型が最新版で、2型の修理終了期間は 2023年11月とまだ余裕はあるものの EoL が決まっているので大人しく F4L に。

消化不良の年末年始でした。

人形写真注意。

続きはこちら。
  - NO COMMENT -
TrackBack URL:[]
 2019/10/14
Windows10でユーザープロファイルを別ドライブにコピーする
メモとして残しておく。



ユーザープロファイルのコピーについて

▼administrator の有効化
管理者権限で cmd.exe を起動し、
net user administrator /active:yes
▼robocopyでコピー (administrator)
robocopy "H:\users\griffon" "D:\users\griffon" /MIR /UNILOG:D:\RoboCopy.log /R:0 /W:0 /TEE /XJD /XJF /FFT /COPY:DATSO /SECFIX 
※コピー先にはコピー元と同じディレクトリを指定しないとコピー元の中身をぶちまけられるので注意。
※/UNILOG は指定しなくてもいいけどエラーが出ていないかを確認するために念のため指定しておく。
※監査情報の移行 (/COPY:U) が出来ないため、/COPY:DATSOU ではなく /COPY:DATSO にする。
参考: https://teratail.com/questions/90231

▼ジャンクションを作成 (administrator)
ntfslinksview-x64 でジャンクションを探して mklink /J で作成。

ntfslinksview-x64 から対象ディレクトリを指定して検索後、全選択して CTRL+C で結果をコピーできるので、タブ区切りフィールドの 2列目と 4列目を使って上手いことバッチファイルを作る。
ハードリンクは無視 (既に有る)。

▼レジストリの変更 (コピーしたユーザー)
RegistryFinder64 で [変更前のドライブレター]:\Users\ - (例) H:\Users\ - を検索して結果を Export する (レジストリのバックアップ)。
その後一括変換を行う。
1度だけだと漏れるため何度か検索と一括変換を行うこと。
所々で ReadOnly な値があるがそこは無視で大丈夫だと思う (少なくとも当環境では大丈夫だった)

▼administrator の無効化
管理者権限で cmd.exe を起動し、
net user administrator /active:no
★現在の課題
古いドライブに
AppData\Local\Microsoft\Windows\AppCache
が残るが、もしドライブ文字を一時的にでも削除できるのであれば、
一旦ドライブ文字を削除→再起動→ドライブ文字を付与→再起動
で復活することはない。

Firefox のプロファイルが狂う。
厳密には拡張が使えなくなったりヘタをすると user.js や設定が飛ぶ時がある。

最終:2019/10/16 15:59:14 カテゴリ:PC関連 雑記
タグ:自作PC
  - NO COMMENT -
TrackBack URL:[]
 2019/10/09
MBRパーティションとGPTパーティションの混在でgmirrorを作る→その後両方ともGPTパーティションに変更
説明の想定としては、
現在 2TB 未満のディスクを使って gmirror を構築しているが、ディスク障害によるディスク交換で将来的に 2TB を超える HDD にアップグレードを考えているため、ミラーの方肺を 2TB 以上の HDD に置き換え、その後両方とも 2TB を超える HDD に揃える。
といった状況の下で説明とする。

gmirror は MBR パーティションと GPT パーティションの混在も可能のようだが、両方ともパーティション単位で指定すること。
MBR パーティションをドライブ全体で指定してしまうと、ミラーされる側 (GPT パーティション:ここでは ada3p1) が ada3p1s1d なんて超へんてこなデバイス名になってしまう。(笑)
% gpart show ada2 ada2s1 ada3
=>      63  10485697  ada2  MBR  (5.0G)
        63  10485657     1  freebsd  [active]  (5.0G)
  10485720        40        - free -  (20K)

=>       0  10485657  ada2s1  BSD  (5.0G)
         0        16          - free -  (8.0K)
        16  10485641       4  freebsd-ufs  (5.0G)

=>      40  16777136  ada3  GPT  (8.0G)
        40  16777136     1  freebsd-ufs  (8.0G)

% gpart show -lp ada2 ada2s1 ada3
=>      63  10485697    ada2  MBR  (5.0G)
        63  10485657  ada2s1  (null)  [active]  (5.0G)
  10485720        40          - free -  (20K)

=>       0  10485657   ada2s1  BSD  (5.0G)
         0        16           - free -  (8.0K)
        16  10485641  ada2s1d  (null)  (5.0G)

=>      40  16777136    ada3  GPT  (8.0G)
        40  16777136  ada3p1  (null)  (8.0G)

% sudo gmirror label -v mirror0 ada2s1d
Metadata value stored on ada2s1d.
Done.

% gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada2s1d (ACTIVE)

% gmirror insert -v mirror0 ada3p1
Done.

% gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada2s1d (ACTIVE)
                          ada3p1 (ACTIVE)

% gmirror list mirror0
Geom name: mirror0
State: COMPLETE
Components: 2
Balance: load
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 3646045765
Type: AUTOMATIC
Providers:
1. Name: mirror/mirror0
   Mediasize: 5368647680 (5.0G)
   Sectorsize: 512
   Mode: r0w0e0
Consumers:
1. Name: ada2s1d
   Mediasize: 5368648192 (5.0G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 40448
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 2017605693
2. Name: ada3p1
   Mediasize: 8589893632 (8.0G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 20480
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 3326642448

% sudo mount /dev/mirror/mirror0 /mnt

% df /mnt
Filesystem          1K-blocks  Used   Avail Capacity  Mounted on
/dev/mirror/mirror0   5061568 28072 4628572     1%    /mnt

% ll /mnt
total 28076
drwxrwxrwx   3 root     wheel     -      512 10月  9 07:40 ./
drwxr-xr-x  23 root     wheel     -      512 10月  8 23:22 ../
drwxrwxr-x   2 root     operator  -      512 10月  9 07:40 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  9 07:40 kabe-gami.zip*
-rwxr--r--   1 griffon  wheel     -  6183181 10月  9 07:40 mikofuku_dd-dy_manual.pdf*

% sudo umount /mnt
更にこの後に MBR パーティションを持った小さなドライブから GPT パーティションを持った大きなドライブに入れ替える場合は、MBR の小さなドライブを remove してから GPT の大きなドライブを insert して growfs で広げる。
作業的には前途の通り。
GPTパーティションでgmirrorを作ってディスクサイズを広げてみる(GPT)



> MBR パーティションをドライブ全体で指定してしまうと、ミラーされる側 (GPT パーティション:ここでは ada3p1) が ada3p1s1d なんて超へんてこなデバイス名になってしまう。(笑)

だが、やってみるとこんなことになる。
% sudo gmirror label -v mirror0 ada2
Metadata value stored on ada2. Done. % gmirror status Name Status Components mirror/mirror0 COMPLETE ada2 (ACTIVE) % gmirror insert -v mirror0 ada3p1 Done. % gmirror status Name Status Components mirror/mirror0 COMPLETE ada2 (ACTIVE) ada3p1 (ACTIVE) % gmirror list mirror0 Geom name: mirror0 State: COMPLETE Components: 2 Balance: load Slice: 4096 Flags: NONE GenID: 0 SyncID: 1 ID: 1111266501 Type: AUTOMATIC Providers: 1. Name: mirror/mirror0 Mediasize: 5368708608 (5.0G) Sectorsize: 512 Mode: r0w0e0 Consumers: 1. Name: ada2 Mediasize: 5368709120 (5.0G) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Priority: 0 Flags: NONE GenID: 0 SyncID: 1 ID: 3283235968 2. Name: ada3p1 Mediasize: 8589893632 (8.0G) Sectorsize: 512 Stripesize: 0 Stripeoffset: 20480 Mode: r1w1e1 State: ACTIVE Priority: 0 Flags: NONE GenID: 0 SyncID: 1 ID: 2283151022 % gmirror destroy mirror0 % % ll /dev/ada3* crw-r----- 1 root operator - 0x60 10月 9 06:16 /dev/ada3 crw-r----- 1 root operator - 0x67 10月 9 06:38 /dev/ada3p1 crw-r----- 1 root operator - 0x76 10月 9 07:43 /dev/ada3p1s1 crw-r----- 1 root operator - 0x88 10月 9 07:43 /dev/ada3p1s1d
% gpart destroy -F ada3 ada3 destroyed % ll /dev/ada3* crw-r----- 1 root operator - 0x60 10月 9 06:16 /dev/ada3

最終:2019/10/09 08:00:17 カテゴリ:雑記 
タグ:鯖管理
  - NO COMMENT -
TrackBack URL:[]
MBRパーティションの内容をGPTパーティションにdump/restoreを使わずにコピーする
MBR パーティションから GPT パーティションに dump | restore を使わずにコピーする方法。
どちらもパーティション単位で dd if of すれば良い。
% gpart show ada2 ada2s1 ada3
=>      63  10485697  ada2  MBR  (5.0G)
        63  10485657     1  freebsd  [active]  (5.0G)
  10485720        40        - free -  (20K)

=>       0  10485657  ada2s1  BSD  (5.0G)
         0        16          - free -  (8.0K)
        16  10485641       4  freebsd-ufs  (5.0G)

=>      40  16777136  ada3  GPT  (8.0G)
        40  16777136     1  freebsd-ufs  (8.0G)

% gpart show -lp ada2 ada2s1 ada3
=>      63  10485697    ada2  MBR  (5.0G)
        63  10485657  ada2s1  (null)  [active]  (5.0G)
  10485720        40          - free -  (20K)

=>       0  10485657   ada2s1  BSD  (5.0G)
         0        16           - free -  (8.0K)
        16  10485641  ada2s1d  (null)  (5.0G)

=>      40  16777136    ada3  GPT  (8.0G)
        40  16777136  ada3p1  (null)  (8.0G)

% sudo mount -v /dev/ada2s1d /mnt
/dev/ada2s1d on /mnt (ufs, local, writes: sync 2 async 0, reads: sync 3 async 0, fsid a1f99c5d0a3d3046)

% df /mnt
Filesystem   1K-blocks  Used   Avail Capacity  Mounted on
/dev/ada2s1d   5061568 28072 4628572     1%    /mnt

% ll /mnt
total 28076
drwxrwxrwx   3 root     wheel     -      512 10月  9 06:04 ./
drwxr-xr-x  23 root     wheel     -      512 10月  8 23:22 ../
drwxrwxr-x   2 root     operator  -      512 10月  9 06:03 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  9 06:04 kabe-gami.zip*
-rwxr--r--   1 griffon  wheel     -  6183181 10月  9 06:04 mikofuku_dd-dy_manual.pdf*

% sudo umount -v /mnt
/dev/ada2s1d: unmount from /mnt

% sudo dd if=/dev/ada2s1d of=/dev/ada3p1 bs=2M
2559+1 records in
2559+1 records out
5368648192 bytes transferred in 2.444914 secs (2195842973 bytes/sec)

% gpart show ada2 ada2s1 ada3
=>      63  10485697  ada2  MBR  (5.0G)
        63  10485657     1  freebsd  [active]  (5.0G)
  10485720        40        - free -  (20K)

=>       0  10485657  ada2s1  BSD  (5.0G)
         0        16          - free -  (8.0K)
        16  10485641       4  freebsd-ufs  (5.0G)

=>      40  16777136  ada3  GPT  (8.0G)
        40  16777136     1  freebsd-ufs  (8.0G)

% sudo mount -v /dev/ada3p1 /mnt
/dev/ada3p1 on /mnt (ufs, local, writes: sync 2 async 0, reads: sync 3 async 0, fsid a1f99c5d0a3d3046)

% df /mnt
Filesystem  1K-blocks  Used   Avail Capacity  Mounted on
/dev/ada3p1   5061568 28072 4628572     1%    /mnt

% ll /mnt
total 28076
drwxrwxrwx   3 root     wheel     -      512 10月  9 06:04 ./
drwxr-xr-x  23 root     wheel     -      512 10月  8 23:22 ../
drwxrwxr-x   2 root     operator  -      512 10月  9 06:03 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  9 06:04 kabe-gami.zip*
-rwxr--r--   1 griffon  wheel     -  6183181 10月  9 06:04 mikofuku_dd-dy_manual.pdf*

% sudo umount -v /mnt
/dev/ada3p1: unmount from /mnt
5GB の MBR パーティションを 8GB の GPT パーティションにコピーしたら 5GB になっちゃったので広げましょう。
パーティション情報的には大きくなってるので growfs だけで事足りる
% gpart show ada3
=>      40  16777136  ada3  GPT  (8.0G)
        40  16777136     1  freebsd-ufs  (8.0G)

% sudo growfs -N /dev/ada3p1
super-block backups (for fsck_ffs -b #) at:
 11542656, 12825152, 14107648, 15390144, 16672640

% sudo growfs /dev/ada3p1
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/ada3p1 from 5.0GB to 8.0GB? [yes/no] yes
super-block backups (for fsck_ffs -b #) at:
 11542656, 12825152, 14107648, 15390144, 16672640

% sudo mount -v /dev/ada3p1 /mnt
/dev/ada3p1 on /mnt (ufs, local, writes: sync 2 async 0, reads: sync 3 async 0, fsid a1f99c5d0a3d3046)

% df /mnt
Filesystem  1K-blocks  Used   Avail Capacity  Mounted on
/dev/ada3p1   8106676 28072 7430072     0%    /mnt

% ll /mnt
total 28076
drwxrwxrwx   3 root     wheel     -      512 10月  9 06:04 ./
drwxr-xr-x  23 root     wheel     -      512 10月  8 23:22 ../
drwxrwxr-x   2 root     operator  -      512 10月  9 06:03 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  9 06:04 kabe-gami.zip*
-rwxr--r--   1 griffon  wheel     -  6183181 10月  9 06:04 mikofuku_dd-dy_manual.pdf*

% sudo umount -v /mnt
/dev/ada3p1: unmount from /mnt

最終:2019/10/09 07:09:41 カテゴリ:雑記 
タグ:鯖管理
  - NO COMMENT -
TrackBack URL:[]
GPTパーティションでgmirrorを作ってディスクサイズを広げてみる(GPT)
詳細な説明は端折っているので、おおまかな流れは MBR のそれを参照してください。
gmirrorのディスクサイズを広げてみる(MBR)



GPT パーティションを gmirror で使用する場合は MBR の時のようにディスク全体を指定することが出来ません。
つまり、パーティショニングスキームが GPT の場合は MBR と違い、GPT パーティション単位でミラー設定を行わなければならない

でもなんで MBR じゃなくて GPT かって?
MBR は 2TB までのディスクしか扱えないので、それ以上を扱いたいなら GPT しかないのです…。
% gpart show -lp ada2 ada3
=>      40  10485680    ada2  GPT  (5.0G)
        40  10485680  ada2p1  (null)  (5.0G)

=>      40  16777136    ada3  GPT  (8.0G)
        40  16777136  ada3p1  (null)  (8.0G)

% sudo gmirror label -v mirror0 ada2p1
Metadata value stored on ada2p1.
Done.

% gmirror insert -v mirror0 ada3p1
Done.

% gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada2p1 (ACTIVE)
                          ada3p1 (ACTIVE)

% gmirror list mirror0
Geom name: mirror0
State: COMPLETE
Components: 2
Balance: load
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 315191848
Type: AUTOMATIC
Providers:
1. Name: mirror/mirror0
   Mediasize: 5368667648 (5.0G) ←★小さい方に合わせられる
   Sectorsize: 512
   Mode: r1w1e1
Consumers:
1. Name: ada2p1
   Mediasize: 5368668160 (5.0G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 20480
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 2366964925
2. Name: ada3p1
   Mediasize: 8589893632 (8.0G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 20480
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 1280267142

% sudo mount /dev/mirror/mirror0 /mnt

% df /mnt
Filesystem          1K-blocks  Used   Avail Capacity  Mounted on
/dev/mirror/mirror0   5061588 28072 4628592     1%    /mnt

% ll /mnt
total 28076
drwxrwxrwx   3 root     wheel     -      512 10月  9 04:32 ./
drwxr-xr-x  23 root     wheel     -      512 10月  8 23:22 ../
drwxrwxr-x   2 root     operator  -      512 10月  9 04:31 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  9 04:32 kabe-gami.zip*
-rwxr--r--   1 griffon  wheel     -  6183181 10月  9 04:32 mikofuku_dd-dy_manual.pdf*
今度は小さいドライブ (ada2) を外して大きなドライブ (ada4) に交換する。
MBR パーティションの時は RAID-1 パーティション (ここでは mirror0) に対して gpart resize を使用したが、GPT パーティションの場合はそれが不要になっているので gmirror resize するだけでパーティションサイズを大きく出来る。
% gmirror remove -v mirror0 ada2p1
Done.

% gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada3p1 (ACTIVE)

% gmirror list mirror0
Geom name: mirror0
State: COMPLETE
Components: 1
Balance: load
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 1795428709
Type: AUTOMATIC
Providers:
1. Name: mirror/mirror0
   Mediasize: 5368667648 (5.0G)
   Sectorsize: 512
   Mode: r0w0e0
Consumers:
1. Name: ada3p1
   Mediasize: 8589893632 (8.0G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 20480
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 1783526678

% gpart show ada4
=>      40  16777136  ada4  GPT  (8.0G)
        40  16777136     1  freebsd-ufs  (8.0G)

% gpart show -lp ada4
=>      40  16777136    ada4  GPT  (8.0G)
        40  16777136  ada4p1  (null)  (8.0G)

% gmirror insert -v mirror0 ada4p1
Done.

% gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada3p1 (ACTIVE)
                          ada4p1 (ACTIVE)

% gmirror list mirror0
Geom name: mirror0
State: COMPLETE
Components: 2
Balance: load
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 1795428709
Type: AUTOMATIC
Providers:
1. Name: mirror/mirror0
   Mediasize: 5368667648 (5.0G)
   Sectorsize: 512
   Mode: r0w0e0
Consumers:
1. Name: ada3p1
   Mediasize: 8589893632 (8.0G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 20480
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 1783526678
2. Name: ada4p1
   Mediasize: 8589893632 (8.0G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 20480
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 2699217139

% sudo mount /dev/mirror/mirror0 /mnt

% df /mnt
Filesystem          1K-blocks  Used   Avail Capacity  Mounted on
/dev/mirror/mirror0   5061588 28072 4628592     1%    /mnt

% ll /mnt
total 28076
drwxrwxrwx   3 root     wheel     -      512 10月  9 06:39 ./
drwxr-xr-x  23 root     wheel     -      512 10月  8 23:22 ../
drwxrwxr-x   2 root     operator  -      512 10月  9 06:39 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  9 06:39 kabe-gami.zip*
-rwxr--r--   1 griffon  wheel     -  6183181 10月  9 06:39 mikofuku_dd-dy_manual.pdf*

% sudo umount /mnt

% gmirror resize mirror0

% gmirror list mirror0
Geom name: mirror0
State: COMPLETE
Components: 2
Balance: load
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 1795428709
Type: AUTOMATIC
Providers:
1. Name: mirror/mirror0
   Mediasize: 8589893120 (8.0G)
Sectorsize: 512 Mode: r0w0e0 Consumers: 1. Name: ada3p1 Mediasize: 8589893632 (8.0G) Sectorsize: 512 Stripesize: 0 Stripeoffset: 20480 Mode: r1w1e1 State: ACTIVE Priority: 0 Flags: NONE GenID: 0 SyncID: 1 ID: 1783526678 2. Name: ada4p1 Mediasize: 8589893632 (8.0G) Sectorsize: 512 Stripesize: 0 Stripeoffset: 20480 Mode: r1w1e1 State: ACTIVE Priority: 0 Flags: NONE GenID: 0 SyncID: 1 ID: 2699217139 % growfs -N /dev/mirror/mirror0 super-block backups (for fsck_ffs -b #) at: 11542656, 12825152, 14107648, 15390144, 16672640 % sudo growfs /dev/mirror/mirror0 It's strongly recommended to make a backup before growing the file system. OK to grow filesystem on /dev/mirror/mirror0 from 5.0GB to 8.0GB? [yes/no] yes super-block backups (for fsck_ffs -b #) at: 11542656, 12825152, 14107648, 15390144, 16672640 % sudo mount /dev/mirror/mirror0 /mnt % df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/mirror/mirror0 8106672 28072 7430068 0% /mnt % ll /mnt total 28076 drwxrwxrwx 3 root wheel - 512 10月 9 06:39 ./ drwxr-xr-x 23 root wheel - 512 10月 8 23:22 ../ drwxrwxr-x 2 root operator - 512 10月 9 06:39 .snap/ -rwxr--r-- 1 griffon wheel - 22475540 10月 9 06:39 kabe-gami.zip* -rwxr--r-- 1 griffon wheel - 6183181 10月 9 06:39 mikofuku_dd-dy_manual.pdf*
増えました。:)



ここからはダメな例とか詳細な説明とか。

ダメな例
% gpart show -lp ada2 ada3
=>      40  10485680    ada2  GPT  (5.0G)
        40  10485680  ada2p1  (null)  (5.0G)

=>      40  16777136    ada3  GPT  (8.0G)
        40  10485680  ada3p1  (null)  (5.0G)
  10485720   6291456          - free -  (3.0G)

% sudo mount /dev/ada2p1 /mnt

% ll /mnt
total 28076
drwxrwxrwx   3 root     wheel     -      512 10月  9 04:32 ./
drwxr-xr-x  23 root     wheel     -      512 10月  8 23:22 ../
drwxrwxr-x   2 root     operator  -      512 10月  9 04:31 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  9 04:32 kabe-gami.zip*
-rwxr--r--   1 griffon  wheel     -  6183181 10月  9 04:32 mikofuku_dd-dy_manual.pdf*

% df /mnt
Filesystem  1K-blocks  Used   Avail Capacity  Mounted on
/dev/ada2p1   5061588 28072 4628592     1%    /mnt

% sudo umount /mnt

% sudo gmirror label -v mirror0 ada2
Metadata value stored on ada2.
Done.

% gmirror insert -v mirror0 ada3
Done.

% gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada2 (ACTIVE)
                          ada3 (ACTIVE)

% ll /dev/mirror/mirror0*
crw-r-----  1 root  operator  - 0x6b 10月  9 04:34 /dev/mirror/mirror0

% sudo mount /dev/mirror/mirror0 /mnt
mount: /dev/mirror/mirror0: Invalid argument

% gmirror list
Geom name: mirror0
State: COMPLETE
Components: 2
Balance: load
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 1
ID: 1623628032
Type: AUTOMATIC
Providers:
1. Name: mirror/mirror0
   Mediasize: 5368708608 (5.0G)
   Sectorsize: 512
   Mode: r0w0e0
Consumers:
1. Name: ada2
   Mediasize: 5368709120 (5.0G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 26546643
2. Name: ada3
   Mediasize: 8589934592 (8.0G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 66523288
なんでマウントできない?と思ったら dmesg にこんなエラーが。
GEOM_MIRROR: Device mirror/mirror0 launched (1/1).
GEOM: mirror/mirror0: corrupt or invalid GPT detected.
GEOM: mirror/mirror0: GPT rejected -- may not be recoverable.
GEOM_MIRROR: Device mirror0: provider destroyed.
GEOM_MIRROR: Device mirror0 destroyed.
GEOM: ada2: the secondary GPT table is corrupt or invalid.
GEOM: ada2: using the primary only -- recovery suggested.
GEOM: diskid/DISK-01000000000000000001: the secondary GPT table is corrupt or invalid.
GEOM: diskid/DISK-01000000000000000001: using the primary only -- recovery suggested.
とりあえず gmirror destroy してから recover しておきましょう。
% gmirror destroy -v mirror0
Done.
% gpart show ada2
=>      40  10485680  ada2  GPT  (5.0G) [CORRUPT]
40 10485680 - free - (5.0G) % gpart recover ada2 ada2 recovered % gpart show ada2 => 40 10485680 ada2 GPT (5.0G) ←★CORRUPTがなくなった 40 10485680 - free - (5.0G)
つまりこれか。

FreeBSD Handbook
   18. GEOM: Modular Disk Transformation Framework
     18.3. RAID1 - Mirroring
       18.3.1. Metadata Issues
> gmirror(8) stores one block of metadata at the end of the disk. Because GPT partition schemes also store metadata at the end of the disk, mirroring entire GPT disks with gmirror(8) is not recommended. MBR partitioning is used here because it only stores a partition table at the start of the disk and does not conflict with the mirror metadata.
(和訳) gmirror(8) は、ディスクの最後に 1ブロックのメタデータを保存します。GPT パーティションスキームはディスクの最後にメタデータも保存するため、 gmirror(8) で GPT ディスク全体をミラーリングすることはお勧めしません。MBR パーティショニングは、ディスクの先頭にのみパーティションテーブルを格納し、ミラーメタデータと競合しないため、ディスク全体を使用することが出来ます。
つまりは GPT ディスクにパーティション切ってそれをミラーすればいいというわけで。
ここで注意する点は「両方同じパーティションテーブルを持ったパーティションが必要」ということだが、ぶっちゃけ後から追加するディスクが大きければ必ずしも同じパーティションテーブルでなくても良い。

仮にパーティションサイズが元居たパーティションサイズよりも小さい場合はこうなります。
% gpart show -lp ada2 ada3
=>      40  10485680  ada2  GPT  (5.0G)
        40  10485680     ada2p1  freebsd-ufs  (5.0G)

=>      40  16777136  ada3  GPT  (8.0G)
        40   8388608     ada3p1  freebsd-ufs  (4.0G)
   8388648   8388528        - free -  (4.0G)

% sudo gmirror label -v mirror0 ada2p1
Metadata value stored on ada2p1.
Done.

% gmirror insert -v mirror0 ada3p1
gmirror: Provider ada3p1 too small.
どうしてもパーティションサイズを同じにしてミラーしたいということであれば gpart backup [geom] | gpart restore [geom] してもいいが、ここで疑問なのは「ちょっとでも小さい方に restore したらどうなる?」だが、ちゃんと蹴られます。
% fdisk ada2
(省略)
    start 63, size 10485657 (5119 Meg), flag 80 (active)
(省略)

% gpart show ada3
=>      40  16777136  ada3  GPT  (8.0G)
        40  16777136     1  freebsd-ufs  (8.0G)

% gpart backup ada3 | gpart restore ada2
gpart: size '16777136': Invalid argument
gpart backup [geom] | gpart restore [geom] は、こう。
% gpart destroy -F ada4
ada4 destroyed

% gpart backup ada3 | gpart restore ada4

% gpart show ada3 ada4
=>      40  16777136  ada3  GPT  (8.0G)
        40  16777136     1  freebsd-ufs  (8.0G)

=>      40  16777136  ada4  GPT  (8.0G)
        40  16777136     1  freebsd-ufs  (8.0G)
gpart backup | gpart destore はパーティション情報が残ってるとエラーになるので必ず gpart destroy でメタデータを削除してからにしましょう。
gpart destroy で Device busy と怒られたら -F で強制的にデストローイ!!!
% gpart backup ada3 | gpart restore ada4
gpart: geom 'ada4': File exists

% gpart destroy ada4
gpart: Device busy

% gpart destroy -F ada4
ada4 destroyed

% gpart backup ada3 | gpart restore ada4

% gpart show ada3 ada4
=>      40  16777136  ada3  GPT  (8.0G)
        40  16777136     1  freebsd-ufs  (8.0G)

=>      40  16777136  ada4  GPT  (8.0G)
        40  16777136     1  freebsd-ufs  (8.0G)

最終:2019/10/09 08:07:20 カテゴリ:雑記 
タグ:鯖管理
  - NO COMMENT -
TrackBack URL:[]
 2019/10/06
gmirrorのディスクサイズを広げてみる(MBR)
ディスク容量の違うディスクを gmirror で使用し、その後大きなドライブを使ったときの対処法をここに残しておく。

想定している内容としては
  • ada2s1d に既にデータが存在する。
  • RAID-1 としてペアにするディスクは ada2 より大きい物を使用する (ada3)。
  • 後日その大きいサイズの HDD に容量を合わせる (ada2 = 5GB / ada3 = 8GB)。
となる。
順序としては
  1. マスターとなるディスク (小さい方) を gmirror label でメンバーに入れる。
  2. 大きいディスクを gmirror insert でメンバーに入れる。(この段階では小さいサイズに合う)
大きいディスクを手に入れたら
  1. 普通に (マルチユーザーモードで) 起動する。
  2. gmirror remove で小さいディスクをメンバーから外す。
  3. gmirror insert で新しいディスクをメンバーに入れる。
  4. 同期が完了するまで待つ。
  5. シングルユーザーモードで起動しなおす。
  6. gmirror resize で metadata を更新する。
  7. gpart resize でスライスとパーティションを広げる。
  8. growfs で広げたエリアを使えるようにする。
というフローで作業を実施。

gpart resize の使い方については「[修正版] ディスクスペースを拡張してみる@物理ディスク」を見て予習してください。
[修正版] ディスクスペースを拡張してみる@物理ディスク



まずは RAID-1 メンバーの作成。
ディスクの確認。
% fdisk ada2
(省略)
    start 63, size 10485657 (5119 Meg), flag 80 (active)
(省略)

% fdisk ada3
(省略)
    start 63, size 16776522 (8191 Meg), flag 80 (active)
(省略)
ちゃんとサイズは違ってます。

中身があることを確認。
% sudo mount /dev/ada2s1d /mnt

% ll /mnt
total 21996
drwxrwxrwx   3 root     wheel     -      512 10月  6 02:13 ./
drwxr-xr-x  23 root     wheel     -      512 10月  6 02:34 ../
drwxrwxr-x   2 root     operator  -      512 10月  6 02:12 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  6 02:13 kabe-gami.zip*

% df /mnt
Filesystem   1K-blocks  Used   Avail Capacity  Mounted on
/dev/ada2s1d   5061568 21992 4634652     0%    /mnt
アンマウントしておく。
% sudo umount /mnt
RAID-1 メンバーの作成。
ここで「既存のディスクを RAID-1 化する」なら、現在使用中のディスクを先に gmirror で追加すること。
これを間違うと最悪ディスクの中身が消えます。

まずは中身が入ってるディスクをアタッチ。
ちなみにオプションは「停電またはシステムクラッシュの後に同期しない (-F)」としている。
(intel Rapid Strage Technorogy でも突然のリブートの後に同期するけど、あれをしないような感じ)
% sudo gmirror label -v -F mirror0 ada2
Metadata value stored on ada2.
Done.
念のためパーティションが存在するかを確認する。
% ll /dev/mirror/mirror0*
crw-r-----  1 root  operator  - 0x68 10月  6 02:39 /dev/mirror/mirror0
crw-r-----  1 root  operator  - 0x69 10月  6 02:39 /dev/mirror/mirror0s1
crw-r-----  1 root  operator  - 0x6b 10月  6 02:39 /dev/mirror/mirror0s1d
中身が無事かを確認する。
% sudo mount /dev/mirror/mirror0s1d /mnt

% df /mnt
Filesystem             1K-blocks  Used   Avail Capacity  Mounted on
/dev/mirror/mirror0s1d   5061568 21992 4634652     0%    /mnt

% ll /mnt
total 21996
drwxrwxrwx   3 root     wheel     -      512 10月  6 02:13 ./
drwxr-xr-x  23 root     wheel     -      512 10月  6 02:34 ../
drwxrwxr-x   2 root     operator  -      512 10月  6 02:12 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  6 02:13 kabe-gami.zip*
この次に空のディスクをアタッチする。
% sudo gmirror insert -v mirror0 ada3
Done.

% gmirror status
          Name    Status  Components
mirror/mirror0  DEGRADED  ada2 (ACTIVE)
                          ada3 (SYNCHRONIZING, 55%)

% gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada2 (ACTIVE)
                          ada3 (ACTIVE)
中身が無事かを確認する。
% df /mnt
Filesystem             1K-blocks  Used   Avail Capacity  Mounted on
/dev/mirror/mirror0s1d   5061568 21992 4634652     0%    /mnt

% ll /mnt
total 21996
drwxrwxrwx   3 root     wheel     -      512 10月  6 02:13 ./
drwxr-xr-x  23 root     wheel     -      512 10月  6 02:34 ../
drwxrwxr-x   2 root     operator  -      512 10月  6 02:12 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  6 02:13 kabe-gami.zip*
gmirror はディスクサイズが異なる物をペアにした場合、一番小さい物に合わせられる。
% gmirror list
Geom name: mirror0
State: COMPLETE
Components: 2
Balance: load
Slice: 4096
Flags: NOFAILSYNC
GenID: 0
SyncID: 1
ID: 414357605
Type: AUTOMATIC
Providers:
1. Name: mirror/mirror0
   Mediasize: 5368708608 (5.0G) ←★RAID-1 メンバーのサイズ
   Sectorsize: 512
   Mode: r1w1e3
Consumers:
1. Name: ada2
   Mediasize: 5368709120 (5.0G) ←★ディスクのサイズ
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 3914746213
2. Name: ada3
   Mediasize: 8589934592 (8.0G) ←★ディスクのサイズ
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 320096764
ディスクサイズが異なっているが RAID-1 メンバーのサイズは一番小さい物に合わせられていることが確認出来る。



今度は小さいサイズの HDD を退役させ、ディスク容量を増やす。
% gmirror list
Geom name: mirror0
State: COMPLETE
Components: 2
Balance: load
Slice: 4096
Flags: NOFAILSYNC
GenID: 0
SyncID: 1
ID: 307285312
Type: AUTOMATIC
Providers:
1. Name: mirror/mirror0
   Mediasize: 5368708608 (5.0G)
   Sectorsize: 512
   Mode: r0w0e0
Consumers:
1. Name: ada2
   Mediasize: 5368709120 (5.0G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 317673527
2. Name: ada3
   Mediasize: 8589934592 (8.0G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 3541304040

% sudo gmirror remove mirror0 ada2 ←★サイズの小さいディスクを remove する。

% gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada3 (ACTIVE)
※ada2 (サイズの小さいディスク) が外れました。

% gmirror list
Geom name: mirror0
State: COMPLETE
Components: 1
Balance: load
Slice: 4096
Flags: NOFAILSYNC
GenID: 0
SyncID: 1
ID: 307285312
Type: AUTOMATIC
Providers:
1. Name: mirror/mirror0
   Mediasize: 5368708608 (5.0G)
   Sectorsize: 512
   Mode: r0w0e0
Consumers:
1. Name: ada3
   Mediasize: 8589934592 (8.0G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 3541304040
大きいサイズのディスクのみ残っていることを確認しておく。

次に新しいディスクを刺してリビルドを実施。
(ややこしいのでデバイス名は変えます。)
% fdisk /dev/ada4
(省略)
    start 63, size 16776522 (8191 Meg), flag 80 (active)
(省略)
こいつを RAID-1 メンバーにぶっこむ。
% sudo gmirror insert -v mirror0 ada4
Done.

% gmirror status
          Name    Status  Components
mirror/mirror0  DEGRADED  ada3 (ACTIVE)
                          ada4 (SYNCHRONIZING, 70%)

% gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada3 (ACTIVE)
                          ada4 (ACTIVE)

% gmirror list mirror0
Geom name: mirror0
State: COMPLETE
Components: 2
Balance: load
Slice: 4096
Flags: NOFAILSYNC
GenID: 0
SyncID: 1
ID: 1256414995
Type: AUTOMATIC
Providers:
1. Name: mirror/mirror0
   Mediasize: 5368708608 (5.0G) ←★RAID-1 メンバーのサイズ
   Sectorsize: 512
   Mode: r0w0e0
Consumers:
1. Name: ada3
   Mediasize: 8589934592 (8.0G) ←★ディスクのサイズ
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 968255354
2. Name: ada4
   Mediasize: 8589934592 (8.0G) ←★ディスクのサイズ
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 3468845043
この時点では過去の小さいサイズをひきずったままとなっている。

さてリサイズ。
リサイズは RAID-1 メンバーをマウントしたままでは操作できないのでシングルユーザーモードで起動してオフラインで行う。

まずは gmirror resize で RAID-1 メンバーの metadata を更新する。
これはオプション無しでやれば良きにはからってくれる。
% sudo gmirror resize -v mirror0
Done.

% gmirror list
Geom name: mirror0
State: COMPLETE
Components: 2
Balance: load
Slice: 4096
Flags: NOFAILSYNC
GenID: 0
SyncID: 1
ID: 2218697283
Type: AUTOMATIC
Providers:
1. Name: mirror/mirror0
   Mediasize: 8589934080 (8.0G) ←★RAID-1 メンバーのサイズが変わった
   Sectorsize: 512
   Mode: r1w1e1
Consumers:
1. Name: ada3
   Mediasize: 8589934592 (8.0G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 3801782773
2. Name: ada4
   Mediasize: 8589934592 (8.0G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: NONE
   GenID: 0
   SyncID: 1
   ID: 3565686053
広がりました。:)

次に gpart resize でパーティションを広げる。
これをやらないと広がりません。gmirror resize はあくまで metadata の更新のみのようだ。
ちょっと確認してみよう。
% sudo mount /dev/mirror/mirror0s1d /mnt
% df /mnt
Filesystem             1K-blocks  Used   Avail Capacity  Mounted on
/dev/mirror/mirror0s1d   5061568 21992 4634652     0%    /mnt
↑ほらね。

アンマウントは忘れずに。

あらかじめスライスとパーティションの中身を確認。
% gpart show -lp /dev/mirror/mirror0
=>      63  16777152    mirror/mirror0  MBR  (8.0G)
        63  10485657  mirror/mirror0s1  freebsd-ufs  [active]  (5.0G)
  10485720   6291495                    - free -  (3.0G)

% gpart show -lp /dev/mirror/mirror0s1
=>       0  10485657   mirror/mirror0s1  BSD  (5.0G)
         0        16                     - free -  (8.0K)
        16  10485641  mirror/mirror0s1d  freebsd-ufs  (5.0G)

% gpart show /dev/mirror/mirror0
=>      63  16777152  mirror/mirror0  MBR  (8.0G)
        63  10485657               1  freebsd  [active]  (5.0G)
  10485720   6291495                  - free -  (3.0G)

% gpart show /dev/mirror/mirror0s1
=>       0  10485657  mirror/mirror0s1  BSD  (5.0G)
         0        16                    - free -  (8.0K)
        16  10485641                 4  freebsd-ufs  (5.0G)
広げていきます。
まずはスライスから。
% sudo gpart resize -i 1 /dev/mirror/mirror0
mirror/mirror0s1 resized
% gpart show /dev/mirror/mirror0
=>      63  16777152  mirror/mirror0  MBR  (8.0G)
        63  16777152               1  freebsd  [active]  (8.0G)
次にパーティション。
% sudo gpart resize -i 4 /dev/mirror/mirror0s1
mirror/mirror0s1d resized
% gpart show /dev/mirror/mirror0s1
=>       0  16777152  mirror/mirror0s1  BSD  (8.0G)
         0        16                    - free -  (8.0K)
        16  16777136                 4  freebsd-ufs  (8.0G)
growfs で広げた部分を使えるようにしよう。
まずは確認。
% sudo growfs -N /dev/mirror/mirror0s1d
super-block backups (for fsck_ffs -b #) at:
 11542656, 12825152, 14107648, 15390144, 16672640
本番。
% sudo growfs /dev/mirror/mirror0s1d
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/mirror/mirror0s1d from 5.0GB to 8.0GB? [yes/no] yes
super-block backups (for fsck_ffs -b #) at:
 11542656, 12825152, 14107648, 15390144, 16672640
マウントしてみる。
% sudo mount /dev/mirror/mirror0s1d /mnt
% df /mnt
Filesystem             1K-blocks  Used   Avail Capacity  Mounted on
/dev/mirror/mirror0s1d   8106676 21992 7436152     0%    /mnt

% ll /mnt
total 21996
drwxrwxrwx   3 root     wheel     -      512 10月  6 03:34 ./
drwxr-xr-x  23 root     wheel     -      512 10月  6 03:55 ../
drwxrwxr-x   2 root     operator  -      512 10月  6 03:33 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  6 03:34 kabe-gami.zip*
拡張終わり!!

最終:2019/10/06 05:03:58 カテゴリ:雑記 
タグ:鯖管理
  - NO COMMENT -
TrackBack URL:[]
[修正版] ディスクスペースを拡張してみる@物理ディスク
前回日記で書いた「ディスクスペースを拡張してみる@物理ディスク」だが、一部間違いがあったのでここに書き直す。
ディスクスペースを拡張してみる@物理ディスク

ここでは「スライス自体が本来のディスクサイズよりも小さいもの」を対象に説明している。

つまりはこんな状態。
% gpart show -lp ada3
=>      63  16777153    ada3  MBR  (8.0G)
        63  10485657  ada3s1  freebsd-ufs  [active]  (5.0G)
  10485720   6291496          - free -  (3.0G)  ←★余ってる!

% gpart show -lp ada3s1
=>       0  10485657   ada3s1  BSD  (5.0G)  ←★余ってる!
         0        16           - free -  (8.0K)
        16  10485641  ada3s1d  freebsd-ufs  (5.0G)  ←★余ってる!
gpart show の -lp はスライス・パーティションをインデックス番号ではなくデバイスノード名 (ada3s1d とか) で表示する。

よくある例として、gmirror で小さいディスクに大きいディスクを使用した場合。
この場合、スライスの大きさそのものが小さくなっているので resize する時はスライスとパーティションの両方を resize する必要がある。

まずはスライスを大きくする。
% gpart show -l ada3
=>      63  16777153  ada3  MBR  (8.0G)
        63  10485657     1  freebsd-ufs  [active]  (5.0G)
  10485720   6291496        - free -  (3.0G)
gpart resize でサイズを大きくするが、対象の選択はインデックス番号を使用する。

今回は上の例だと、スライスを大きくする対象のインデックス番号は "freebsd [active] (5.0G)" の前にある "1" がそれなので -i 1 となる。
サイズ指定については gpart が増やせる最大値を勝手に判断するので特に指定する必要は無い。
% sudo gpart resize -i 1 ada3
ada3s1 resized

% gpart show -l ada3
=>      63  16777153  ada3  MBR  (8.0G)
        63  16777153     1  (null)  [active]  (8.0G)
大きくなりました :)

次にパーティション。
% gpart show -l ada3s1
=>       0  16777153  ada3s1  BSD  (8.0G)
         0        16          - free -  (8.0K)
        16  10485641       4  freebsd-ufs  (5.0G)
  10485657   6291496          - free -  (3.0G)
今度は "freebsd-ufs (5.0G)" の前にある "4" なので、-i 4 で指定する。
% sudo gpart resize -i 4 ada3s1
ada3s1d resized

% gpart show -l ada3s1
=>       0  16777153  ada3s1  BSD  (8.0G)
         0        16          - free -  (8.0K)
        16  16777137       4  freebsd-ufs  (8.0G)
大きくなりました :)

ここで慌ててマウントしてもまだ容量は増えてません。
% sudo mount /dev/ada3s1d /mnt

% df /mnt
Filesystem   1K-blocks  Used   Avail Capacity  Mounted on
/dev/ada3s1d   5061568 21992 4634652     0%    /mnt
増やした分は growfs で実際に使えるようにしなければならない。

まずはテスト。
-N で増やせるかどうかを確認。
% sudo growfs -N /dev/ada3s1d
super-block backups (for fsck_ffs -b #) at:
 11542656, 12825152, 14107648, 15390144, 16672640
ここで
growfs: requested size **GB is not larger than the current filesystem size **GB
とか出たら増やせないので諦めましょう。
(そんなことは無いはずだけど…)

増やせることが確認出来たら -N を無くして実行。
% sudo growfs /dev/ada3s1d
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/ada3s1d from 5.0GB to 8.0GB? [yes/no]
「ファイルシステムを拡張する前にバックアップは取れよ!
 増やしていいかい?」

と聞いてくるので、お祈りしながら "yes" を打ち込む。
% sudo growfs /dev/ada3s1d
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/ada3s1d from 5.0GB to 8.0GB? [yes/no] yes
super-block backups (for fsck_ffs -b #) at:
 11542656, 12825152, 14107648, 15390144, 16672640
すると増やした部分のみ newfs される。
これで拡張は完了だ。
% sudo mount /dev/ada3s1d /mnt

% df /mnt
Filesystem   1K-blocks  Used   Avail Capacity  Mounted on
/dev/ada3s1d   8106676 21992 7436152     0%    /mnt

% ll /mnt
total 21996
drwxrwxrwx   3 root     wheel     -      512 10月  6 02:13 ./
drwxr-xr-x  23 root     wheel     -      512 10月  6 02:34 ../
drwxrwxr-x   2 root     operator  -      512 10月  6 02:12 .snap/
-rwxr--r--   1 griffon  wheel     - 22475540 10月  6 02:13 kabe-gami.zip*

最終:2019/10/06 04:34:55 カテゴリ:雑記 
タグ:鯖管理
  - NO COMMENT -
TrackBack URL:[]
 2019/10/05
gmirrorの使い方
ぐぐってもイマイチぴんとこなかったのでまとめ。

■RAID グループから HDD を外したい
RAID グループ (ここでは mirror0) からなんらかの理由でディスクを外す必要があったら remove を使用する。

まずは状態確認。
% gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada1 (ACTIVE)
                          ada2 (ACTIVE)
mirror0 からディスクを外す。
% sudo gmirror remove mirror0 ada1

% sudo gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada2 (ACTIVE)
※ada1 が消えた。

% sudo gmirror dump ada1
Can't read metadata from ada1: Invalid argument.
gmirror: Not fully done.
※ada1 に gmirror のメタデータが残っていないことを確認。
この状態では ada1 のディスクは ada2 と同期が取れているため、ぶっちゃけバックアップドライブとして保管しておいても良い。

新しいディスクを追加する場合は
% sudo gmirror insert -v mirror0 ada1
Done.

sudo gmirror status
          Name    Status  Components
mirror/mirror0  DEGRADED  ada2 (ACTIVE)
                          ada1 (STALE)
追加した ada1 が STALE になっているので、ACTIVE な ada2 からデータを貰うことにする。
% sudo gmirror rebuild -v mirror0 ada1 
Done.

% gmirror status
          Name    Status  Components
mirror/mirror0  DEGRADED  ada2 (ACTIVE)
                          ada1 (SYNCHRONIZING, 0%)

ここで注意する点は、指定するディスクを間違えないこと。
rebuild で指定するディスクは「あとから追加した (現在 ACTIVE ではない) ディスク」を指定すること。

■gmirror insert 出来なかったら?
gmirror insert で新しいディスクを追加しようとしたら
gmirror: Not all disks connected.
というエラーが出た場合は、落ち着いて forget を使用しよう。
% sudo gmirror forget -v mirror0
Done.

% sudo gmirror status
          Name    Status  Components
mirror/mirror0  COMPLETE  ada2 (ACTIVE)
これで新しいディスクを追加できるようになる。

■パーティショニングスキームにGPTを使ってるドライブでmirrorしたら中身が消えた!
慌てずgmirror destroyしてパーティションを指定してミラーを作りましょう。
% sudo gmirror label -v mirror0 ada4p1 

最終:2019/10/09 00:56:23 カテゴリ:雑記 
タグ:鯖管理
  - NO COMMENT -
TrackBack URL:[]
gmirroで組んでいたRAIDがクラッシュ
10月4日(金)の夜に特大の雷により瞬停、その影響でサーバーが再起動してしまったが、その後に gmirro の RAID-1 が勝手にリビルドしていた。
ここまではよかったのだが、不幸にもアクティブな HDD は不良セクタが発生してしまったディスクで、無事な HDD がリビルド対象になってしまっていた。
それに気がついたのがしばらくしてからだったので慌てて止めたが、途中でリビルドを止めたのでどこがどうなっているかわからないのが現状という状態。

予備の HDD は以前瞬停を食らったときに買ってきていた 1TB の HDD が有ったのでそれを使ったのだが、どうもその時に使った HDD で RAID-1 が組めない。
普通なら
# sudo gmirror clear ada2
とかすればメタデータを消去できるのだが今回はダメ。
更にはこの状態で
# gmirror label -v mirror0 ada1
としても「mirror0 は既に使われてるで」とエラーが出て他の名前でしか組めない。
おかしいと思って
# gmirror dump ada1
としてみると、どうも過去に gmirror で組んだ RAID-1 のメタデータが残ったままになっている。

そこで、loader.conf で自動的にロードされている geom_mirror を一旦止めてシングルユーザーモードで起動。
するとなぜかメタデータが消えたので
# gmirror load -v
でモジュールをロードして
# gmirror label -v mirror0 ada1
したら無事に RAID-1 を組む準備が出来た。

あとは
# gmirror insert -v mirror0 ada2
でディスクを追加したら勝手にリビルドが始まるのでそのまま放置。

この後は停電時の再起動で勝手にリビルドするのが困るので、
# gmirror configure -F -v mirror0
で勝手にリビルドするのを止める。
止まったかどうかについては
gmirror dump ada1
Metadata on ada1:
     magic: GEOM::MIRROR
   version: 4
      name: mirror0
       mid: 239193923
       did: 779873358
       all: 2
     genid: 0
    syncid: 1
  priority: 0
     slice: 4096
   balance: load
 mediasize: 500107861504
sectorsize: 512
syncoffset: 0
    mflags: NOFAILSYNC 
    dflags: NONE
hcprovider:
  provsize: 1000204886016
  MD5 hash: 6ebcb89bc3fd056f5feda8878f2707ac
で確認出来る。

ちなみに新しいディスクを insert すると勝手にリビルドが始まるが、自身で rebuild を明示的に指示してリビルドを行う、つまり勝手にリビルドを行わせない場合は "-n" オプションを付ける。
 # gmirror configure -n -v mirror0
 # gmirror dump ada1
(省略)
    syncoffset: 0
    mflags: NOAUTOSYNC 
    dflags: NONE

最終:2019/10/05 20:56:02 カテゴリ:雑記 
タグ:鯖管理
  - NO COMMENT -
TrackBack URL:[]
 2018/10/01
ディスクスペースを拡張してみる@物理ディスク
ここに掲載している記事は一部間違っているため、新しい記事を書き直しましたのでそちらをご参照ください。
[修正版] ディスクスペースを拡張してみる@物理ディスク

bsdlabel なんて使いません。(白目




今度は本番。
gmirror でミラーされた、器は 1TB、中身は 500GB な HDD を 1TB に広げる作業。
流石に dump | restore の 24時間マラソンはサービス影響的に厳しい。

gmirror で複製を取っているため GEOM が「やらせるものかー!」と邪魔をしてくるので、fdisk の代わりに gpart を使ったり geom.debugflags を 16 にして黙らせる必要有り。
gpart → bsdlabel → growfs

% gpart recover ada2  ★おまじない
ada2 recovering is not needed

% gpart show ada2
=>        63  1953525105  ada2  MBR  (932G)
          63   976768002     1  freebsd  [active]  (466G)
   976768065   976757103        - free -  (466G)  ★余ってる領域

% sudo gpart resize -i 1 -s 1000GB ada2
gpart: size '2097152000': Invalid argument  ★大きかった

% sudo gpart resize -i 1 -s 932GB ada2
gpart: size '1954545664': Invalid argument  ★大きかった

% sudo gpart resize -i 1 -s 930GB ada2
ada2s1 resized  ★取れた。

% gpart show ada2
=>        63  1953525105  ada2  MBR  (932G)
          63  1950351360     1  freebsd  [active]  (930G)
  1950351423     3173745        - free -  (1.5G)  ★ちょっと余った 

% sudo gpart resize -i 1 -s 931GB ada2
ada2s1 resized

% gpart show ada2
=>        63  1953525105  ada2  MBR  (932G)
          63  1952448512     1  freebsd  [active]  (931G)
  1952448575     1076593        - free -  (526M)  ★惜しい
% sudo gpart resize -i 1 -s 932GB ada2
gpart: size '1954545664': Invalid argument  ★残りが取れない
% sudo gpart resize -i 1 -s 1953525105 ada2  ★ada2のブロック数全部を指定
ada2s1 resized  ★取れた!
% gpart show ada2
=>        63  1953525105  ada2  MBR  (932G)
          63  1953525105     1  freebsd  [active]  (932G)
教訓。サイズ (-s) はバイトサイズではなくブロックサイズで指定しよう。

これで拡張できました。
次に bsdlabel で広げるが、"Operation not permitted" と言われるので geom.debugflag=16 にして黙らせる。
% sysctl kern.geom.debugflags
kern.geom.debugflags: 0
% sudo sysctl kern.geom.debugflags=16
kern.geom.debugflags: 0 -> 16
bsdlabel で広げる。
-w じゃなくて -e だからな!間違うなよ!!!!
% sudo bsdlabel -e /dev/ada2s1
# /dev/ada2s1:
8 partitions:
#          size     offset    fstype   [fsize bsize bps/cpg]
  c: 1953525105          0    unused        0     0     # "raw" part, don't edit
  d: 1953525105          0    4.2BSD        0     0     0
★先頭からきっちり使っているのでサイズは同じ数字にする。
今回は gmirror によって先頭 16ブロックを無視して完全にゼロから使いはじめていたので c: と d: の値は同じになった。
初めに bsdlabel スライス でオフセットがどうなってるかを確認してから適切な数字を入力すること。

終わったら geom.debugflag を元に戻しておく。
% sudo sysctl kern.geom.debugflags=0
kern.geom.debugflags: 16 -> 0
最後に growfs。
% sudo growfs /dev/ada2s1d
It's strongly recommended to make a backup before growing the file system.
OK to grow filesystem on /dev/ada2s1d from 466GB to 932GB? [yes/no] yes
super-block backups (for fsck_ffs -b #) at:
 977009952, 977386304, 977762656, 978139008, 978515360, 978891712, 979268064, 979644416, 980020768, 980397120, 980773472,
(省略)
見てみましょう。
% sudo mount /dev/ada2s1d /mnt
% df -m
Filesystem             1M-blocks   Used  Avail Capacity  Mounted on
/dev/ada0s1a               36959   7565  26437    22%    /
devfs                          0      0      0   100%    /dev
/dev/da1s1d                  952     70    806     8%    /var/log
/dev/mirror/mirror0s1d    461929 346476  78498    82%    /pub1
/dev/md0                     290      0    266     0%    /tmp
/dev/ada2s1d              923859 346456 503493    41%    /mnt
以上。

最終:2018/10/01 21:54:10 カテゴリ:雑記
タグ:鯖管理
  • tsh:お久しぶりです、こんなところに書く内容ではないですが。
    G兄様提供のどるこむ過去ログ検索が、検索実行をすると500 Internal Server Errorで動かないようです。

    今のところはチャム&レオ様提供のどるこむ過去ログ検索は実行できるようですので
    とりあえずはそっちを使いますが、一応報告だけさせていただきます。
  • G兄:お久しぶりでーす!
    あ、OSバージョンアップの影響ですね。ちょっと見てみます。
  • G兄:あ、これnamazuか〜…。
    かなりやっかいなのでちょっと時間かかります。
    Namazu入れて解決するかな?
  • G兄:入って無かった物を入れたら使えるようになりました〜。
  • tsh:ありがとうございます。
    すぐに対応していただいていたみたいで・・・
    どうぞこれからもよろしくお願いいたします。
TrackBack URL:[]
 2018/08/13
夏休み前半 - ぐだぐだ
8月10日(金) 〜 8月20日(月) まで夏休みで 8月14日(火) だけ仕事だったが、前半は天気が優れずぐだぐだだった最悪の夏休みでした。(
FGO が捗ったわ。

最終:2018/08/22 12:46:38 カテゴリ:雑記
タグ:雑記
  - NO COMMENT -
TrackBack URL:[]
 2018/06/18
大阪府北部地震
大阪府北部地震

この日もいつもの日常と変わりなかった。


続きはこちら。
最終:2018/07/31 21:50:58 カテゴリ:雑記
タグ:TG-5 雑記
  - NO COMMENT -
TrackBack URL:[]
 2016/03/11
御犬様がおいでになられました。
あれから2年。

「もうそろそろいいよね」とは母者談。
まぁここらへんで決断しておかないと母者よりもむしろ親父の年齢的に問題が出てくる (高齢になると散歩に行けない) ので丁度良かったのかな、と。

まだ 2年しか、という思いはあるもののせっかくうちに来たんだから目一杯可愛がってやろう。

名前は「夏凜」。
先代の「空夏」から1文字を頂いた。

P3118273.jpg : OLYMPUS E-M1, OLYMPUS M.75mm F1.8, 1/125sec F1.8 ISO-200, 露出補正:0EV

P3118274.jpg : OLYMPUS E-M1, OLYMPUS M.75mm F1.8, 1/125sec F1.8 ISO-200, 露出補正:0EV P3118277.jpg : OLYMPUS E-M1, OLYMPUS M.75mm F1.8, 1/125sec F1.8 ISO-200, 露出補正:0EV

P3118280.jpg : OLYMPUS E-M1, OLYMPUS M.75mm F1.8, 1/125sec F1.8 ISO-200, 露出補正:0EV

P3118291.jpg : OLYMPUS E-M1, SAMYANG F3.5/7.5mm MFT, 1/125sec F ISO-200, 露出補正:0EV P3118293.jpg : OLYMPUS E-M1, SAMYANG F3.5/7.5mm MFT, 1/125sec F ISO-400, 露出補正:0EV

P3118301.jpg : OLYMPUS E-M1, SAMYANG F3.5/7.5mm MFT, 1/125sec F ISO-1600, 露出補正:0EV P3118303.jpg : OLYMPUS E-M1, SAMYANG F3.5/7.5mm MFT, 1/125sec F ISO-1600, 露出補正:0EV

P3118304.jpg : OLYMPUS E-M1, SAMYANG F3.5/7.5mm MFT, 1/125sec F ISO-1600, 露出補正:0EV P3158437.jpg : OLYMPUS E-M1, OLYMPUS M.12-40mm F2.8, 1/250sec F3.5 ISO-200, 露出補正:0EV

あとはうちの娘と撮った写真とか。
人形写真注意。

続きはこちら。
  - NO COMMENT -
TrackBack URL:[]
 2015/04/21
続:車を買うか共用か
各方面から返信を頂いたが、やはり「車 1本に絞った方がいいんじゃね?」という見方が多いっぽい。
やっぱ乗る頻度が少なすぎる、かつ高値で売れるバイクを塩漬けするのは勿体ないよね、と思うところは同じか。

「中古車はあかんの?」という話はあったが、ZZR1400 を手放すなら新車を買える今のうちに新車を買っておいて、将来的に飽きたら売る、飽きなかったら乗り続けるというパターンをとりたい。
また、中古で「高年式 (5年前くらいまで) の中走行 (5万キロ)」を買って安く済ませるという手も有るが、まずは片付けなければならない支払いを済ませてからになるので 1年待ちとなる。
# 残価 1年。ZZR1400 を売った金で残価の支払いに充てて残りを頭金にしようと考えている。
更に「自分の車買うつもりなら家の車は (売る予定だから) あんまり乗るなよ」と言われたので、今すぐ自由になりたいなら ZZR1400 を手放す以外に道は無い。



今度はマイカーローンと任意保険と車庫証明について。

マイカーローンは住宅ローンをりそな銀行で親父と一緒に組んでいるので「住宅ローンご利用者プラン」で金利が 1.5% 割引になるかもしれないと思い電話してみたが、残念ながら契約者が親父だったので割引は適用出来なかった。
# そりゃそうよね。

次に任意保険と車庫証明。
ちょっとややこしいのだが、
  • 任意保険は親父が勤めていた会社の団体割引があるのでそれを使いたい (定年退職しているため増車扱いなら可能)
  • 車庫証明は分譲マンションのため 1家 1枠だが我が家はヴェルファイアで既に枠を使っているので同じマンションに住んでいる妹夫婦の名義を借りる
  • 車の所有者・使用者は銀行でローンを組むので自分になる
という前提条件がある。

結論から書くと、任意保険は増車扱い可能、車庫証明は夫婦名義で取得可能ということでこちらの問題はクリア。
車検証と車庫証明と任意保険の「使用者」についてはそれぞれ関連がないので、ぶっちゃけ全てがバラバラの名前でも問題はないという。
(具体的には確か「実質誰それが使用する」と書けば可能だそうだ)

というわけで車を買った後のことに関してはオールクリア。
あとはマイカーローンの金利だが 3.45% と 4.95% だとかなりの開きがあるのよね・・・。

最終:2015/04/21 22:03:12 カテゴリ:雑記
タグ:買物
  • 山銀:ディーラーでもローンを扱っていたと思いますよ〜。見積もりを兼ねて相談してみるのも宜しいかと。
  • G兄:寺ローンは金利が…。
    どうしてもなら使わざるを得ませんが。
  • 山銀:おゃ、そうでしたか・・・3.9%くらいかと思っておりました。
  • G兄:5パーセントちょっとかと思ってました。
    3.9くらいならちょっと考えちゃいますね。
  • G兄:ちょっと調べてみたけど寺ローンはキャンペーンやってると激安だけど普段は5%ちょい。
    一番安いのが地方銀行の車ローンだけど変動金利が多い。
    (UFJのネットDEカーローンは2.945%とかなりアレだけど変動金利)
    ろうきんも今は安いみたいで2%+保証金率1.2%(一次審査可で適用)か3%(二次審査可で適用)の合計値(3.2%か5%)。
TrackBack URL:[]
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12
QRコード
携帯サイト試験運用
https://griffonworks.net/nikki/cgi-bin/k.cgi
1行板

備忘録
  • 無し
物欲リスト
  • Canon RF50mm F1.2L USM
  • SIGMA 20mm F1.4 EF Art
  • ニンバス チヌーク
  • OCB-1 ST II
ツーリング ドライブ兼野外撮影予定リスト