「debian」タグアーカイブ

auto-read-only

原因不明のフリーズ状態をリセットして、ドキドキ6時間。(寝てたけど

無事復帰の様子。だが、見てみると、、
md1 : active (auto-read-only) raid1 sda6[2] sdb6[1]
なにこれ。

$ sudo mdadm –readwrite /dev/md1
これでいつもの状態に戻った。

ディスクエラーかも

ファイルサーバーが1時頃にディスクアクセスランプつきっぱなしで応答しなくなった。
たまたまディスプレイが繋げてあったので、電源を入れてみたが、キーボードのNumLockランプすらつかない。これは機械として止まっているのじゃないかと言うことでリセットしてしまった。(ごめんなさい

5時間も待ったんだし。いいよね。。
再起動時にfsck進行中。計算してみるとちょっと待っていられない時間かかりそうだがどうなる事やら。

パッケージ探し

久しぶりの出勤、起きられるのかドキドキ。
なんてこと無く起きたが

さて、ソースからのコンパイルは極力避けているけど、sambaとかはいつもコンパイルして利用しています。
初めて入れるソフトで困るのは依存するライブラリがないとき。
どのパッケージに入っているのかaptitude searchでは調べられないなぁと思っていて何か用方法・・と模索中だった。何年も

Debian — パッケージ http://www.debian.org/distrib/packages#search_contents
こんなページがあった。
非常に助かる。

X61でDebianを使うために

Linux系OSなのでコツコツ調整しないと便利に利用できないので。

まずはブラウザで中ボタンとポイントを使ったスクロール出来るようにする。

/usr/share/X11/xorg.conf.d/20-thinkpad.conf
というファイルを作り、下記の内容を記述。

Section “InputClass”
Identifier “Trackpoint Wheel Emulation”
MatchProduct “TrackPoint”
MatchDevicePath “/dev/input/event*”
Driver “evdev”
Option “EmulateWheel” “true”
Option “EmulateWheelButton” “2”
Option “Emulate3Buttons” “false”
Option “XAxisMapping” “6 7”
Option “YAxisMapping” “4 5”
EndSection

mdadmとlvmでディスク管理

復習

64bit版 Debianで構築したサーバー君が容量不足でupdate出来ないなど困ったことが多かったので意を決してパーティーションの変更作業。
扱うデータの量が多いので失敗時が恐いけど、一応バックアップもあるし最悪消えることは・・無い。

まず現状。下記のようなパーティーションとした1GBのディスクが4台。
Device Boot Start End Blocks Id System
/dev/sda1 * 1 33 265041 fd Linux raid autodetect
/dev/sda2 34 121601 976494960 5 Extended
/dev/sda5 34 457 3405748+ 82 Linux swap / Solaris
/dev/sda6 458 121601 973089148+ fd Linux raid autodetect

sd[abcd]1はmd0を構成し、/マウント
sd[abcd]5はswap
sd[ab]6はmd1,sd[cd]6はmd2を構成。
アレイmd0,md1,md2はいずれもRAID1で、md1+md2をlvmでvg00としている。

logical volumeはVolume group目一杯で構成してしまっていたので、ディスクのやりくりが心配だったが、運良く縮小すればmd1 or md2で収まる範囲だった。(これ重要だな
$ sudo lvdisplay -C
homelv vg00 -wi-ao 28.00g
optlv vg00 -wi-ao 3.72g
srvlv vg00 -wi-ao 1.73t
tmplv vg00 -wi-ao 360.00m
usrlv vg00 -wi-ao 10.00g
varlv vg00 -wi-ao 6.00g

/dev/md0 on / type ext3
/dev/mapper/vg00-homelv on /home type ext3
/dev/mapper/vg00-optlv on /opt type ext4
/dev/mapper/vg00-tmplv on /tmp type ext4
/dev/mapper/vg00-usrlv on /usr type ext3
/dev/mapper/vg00-varlv on /var type ext3
/dev/mapper/vg00-srvlv on /srv type ext3

変更手順。
2台ずつ変更していくために、まずvg00からmd2を外したい。
巨大なパーティーションとしている/srvを800GB以下にすることでmd1以内の容量となるようにする。
$ lvdisplay -m
でマッピングを確認すると、vgでpvのどれが利用されているか解る。

パーティーションの縮小作業
$ sudo umount /srv
$ sudo fsck.ext3 -f /dev/mapper/vg00-srvlv
$ sudo resize2fs /dev/mapper/vg00-srvlv 730G
$ sudo mount /srv

中身が小さくなったので、lvを小さくする。
$ sudo lvreduce -L 730G /dev/mapper/vg00-srvlv

続いて、md2側を利用しているデータをmd1に移動。
$ sudo pvmove /dev/md2
このコマンドは凄く時間がかかるらしいのだが、ほぼ使っていなかったらしく一瞬だった。

md2をvgから外す
$ sudo vgreduce vg00 /dev/md2

sdc,sddのswapパーティーションを利用解除
$ sudo swapoff -v UUID=
$ sudo swapoff -v UUID=

アレイの解除
$ sudo mdadm -S /dev/md2
$ sudo mdadm /dev/md0 -f /dev/sdc6
$ sudo mdadm /dev/md0 -f /dev/sdd6
$ sudo mdadm /dev/md0 -r /dev/sdc6
$ sudo mdadm /dev/md0 -r /dev/sdd6
これでsdc, sddはフリーになった。

新しくパーティーションを設定。
$ sudo fdisk /dev/sdc
新しく下記のように編集。
/dev/sda1 * 1 132 1060258+ fd Linux raid autodetect
/dev/sda2 133 121601 975699742+ 5 Extended
/dev/sda5 133 525 3156741 82 Linux swap / Solaris
/dev/sda6 526 121601 972542938+ fd Linux raid autodetect

sdcに設定したパーティーションをsddに複写
$ sudo sfdisk -d /dev/sdc | sudo sfdisk /dev/sdd

アレイを再作成
$ sudo mdadm –create /dev/md2 –level=1 –raid-disks=2 missing /dev/sdd6

初期化してリビルド
$ sudo mkfs.ext3 /dev/md2
$ sudo mdadm /dev/md2 -a /dev/sdc6
時間がかかるので待つ。今回は3時間近くかかった。
$ watch cat /proc/mdstat

vgに追加
$ sudo vgextend vg00 /dev/md2

md0にもsdc1,sdd1を追加
$ sudo mdadm /dev/md0 -a /dev/sdc1
$ sudo mdadm /dev/md0 -a /dev/sdd1
容量が小さいので比較的短時間で終わる。

swapも作り直し
$ sudo mkswap /dev/sdc5
$ sudo mkswap /dev/sdd5
fstabの設定も修正
$ sudo vim /etc/fstab
$ sudo swapon -v UUID=
$ sudo swapon -v UUID=

md2側完了。
同じようにmd1側のパーティーションも変更するために、
md1側からmd2側利用に切り替える。
$ sudo pvmove /dev/md1 &
かなり時間がかかるからバックグラウンドで動かしておくといいかも。

sda,sdbも同じように作業を繰り返す。
md0からsda1,sdb1を外し、vg00からmd1を分離してmd1アレイを解除。
swapも利用解除してsda,sdbをフリーにしてからパーティーション切り直し。

$ sudo sfdisk -d /dev/sdc | sudo sfdisk /dev/sda
$ sudo sfdisk -d /dev/sdc | sudo sfdisk /dev/sdb
これですべてのディスクが同じ設定になったと。

md0へsda1,sdb1を追加
sda6,sdb6でmd1を作成、フォーマット。
md1をvg00へ追加(lvの拡張は後でいつでも出来るから後回し)
sda5,sdb5でswapを作成、fstab修正。swapon

大事なポイントはここからで、md0にマウントしている/をどうするのか。
今回知ったポイントで一番大きいところはext3の拡張はマウントした状態で行えると言うこと。

今までの作業でmd0のsd[abcd]1パーティーションは1GBとなっているので、
まずアレイのサイズを拡張する。
$ sudo mdadm –grow /dev/md0 -z max
リビルドが行われるが、これも1GBなのですぐ終わる。

ここです、ext3ファイルシステムはマウントしたまま拡張可能。安心
$ sudo resize2fs /dev/md0

これにて万事解決。
容量不足で実行できなかったlinux-imageのupdateを実行したところ気になるwarningが。

W: mdadm: the array /dev/md2 with UUID 958d14c4:ce08bb4b:26636c8b:317bbf90
W: mdadm: is currently active, but it is not listed in mdadm.conf. if
W: mdadm: it is needed for boot, then YOUR SYSTEM IS NOW UNBOOTABLE!
W: mdadm: please inspect the output of /usr/share/mdadm/mkconf, compare
W: mdadm: it to /etc/mdadm/mdadm.conf, and make the necessary changes.
W: mdadm: the array /dev/md1 with UUID d84d2821:b6365b56:4c31cd24:6521e64d
W: mdadm: is currently active, but it is not listed in mdadm.conf. if
W: mdadm: it is needed for boot, then YOUR SYSTEM IS NOW UNBOOTABLE!
W: mdadm: please inspect the output of /usr/share/mdadm/mkconf, compare
W: mdadm: it to /etc/mdadm/mdadm.conf, and make the necessary changes.

そうだ、アレイを構築し直したのでUUID等情報を修正しないとなりません。
$ sudo mdadm –detail –scan
これで表示されるARRAY表示をmdadm.confに記載する。
$ sudo vim /etc/mdadm/mdadm.conf

起動できなくなったりしたら恐いので、再度インストールしてみる。
$ sudo aptitude reinstall linux-image-2.6.32-5-amd64

もしかしたら
update-initramfs だけでいいのかな。

またもう一つ調べなきゃ行けないことを思いだした。
initramfsについて。

vimrcを編集する

ちょっとだけ便利に。
楽して便利に。
のメモ。

1. 下記からcvim.zipをダウンロード。

c.vim – C/C++ IDE — Write and run programs. Insert statements, idioms, comments etc. : vim online http://www.vim.org/scripts/script.php?script_id=213

$ mkdir .vim #はじめはないから
$ cd .vim
$ wget cvim.zip
$ unzip cvim.zip

2. .vimrcの編集

syntax on

if has(“autocmd”)
filetype plugin indent on
endif

この辺は少なくともコメント解除

set cursorline “カーソルラインを表示するとき
set expandtab “タブをスペースを使う設定
set tabstop=4 “既にあるタブの間隔?
set softtabstop=4 “タブ入力時の間隔
set shiftwidth=4 “画面上の間隔?
この辺は調整したいところだろうかと。

$ cd
$ cp /usr/share/vim/vimrc .vimrc
$ vim .vimrc

3. vimを起動し直して使う

コマンド入力モードで「im」と入力してみると・・
そのほかはc-hotkeys.pdfを見るべし。