操作ミスでファイルを消してしまった時の復活方法

ファイルサーバのデータを整理中に rm *hoge* と入力しようとして rm * まで入力した状態で
hogeをコピペで貼り付けようとしました
この時hogeの先頭に改行が含まれていたため、 rm * が実行されてしまい
カレントディレクトリ内のファイルを全て削除してしまいました、事故です
このような場合、 extundelete というソフトを使うと復活できるみたいなので、試してみました

まず削除してしまったファイルがあるボリュームをroでマウントしなおします
この作業はできるだけ早く行う必要があります
自分の場合、別のプロセスがこのボリュームに書き込みをしていたので
削除したファイルのinodeが再利用されてしまいかなりのファイルを失いました

# mount -o remount,ro /mnt/lvm

次にdateコマンドで操作ミスが発生した時刻の確認をします

$ date +%s
1413993600

extundeleteで復活させます
復活できなかったファイルが以下のようにログに出力されて
復活できたファイルはカレントディレクトリの RECOVERED_FILES 以下に出力されます

# extundelete --restore-all --after 1413993600 /dev/mapper/vg0-lv0
Only show and process deleted entries if ...
more ...

Windows10を試してみた

Windows10 Technical PreviewがでたのでKVMにインストールしてみた
このサイトにLinuxからアクセスすると「お使いのオペレーティング システムにはプレビュー版をインストールできません。」と
表示されるがUserAgentをIEに変更してから再度アクセスしたらダウンロードすることができた

QEMUはひさしぶりなので使い方を忘れていたんだけれど以下のようにすることで特に問題なくインストールして動作させることができた

$ qemu-img create -f qcow2 windows10.img 32G
$ qemu-system-x86_64 -enable-kvm -cpu host -hda windows10.img -cdrom Windows10-en-x64.iso -boot d -m 4G

ただ電源の切り方がWindows8.1から更に変更されているので少し戸惑った

Windows10 with KVM

more ...

今更Sambaをインストールした

しばらく前にASUS VivoTab Note 8を買ったり、HP Pavilion 15-n200 (AMD)が29800円だったので妻に買ったりMacBook Airもあるし
Linux以外のマシンが増えてきたので、これらのマシンからもファイルサーバを利用できるようにSambaの導入をしました
今までは自分のLinuxマシンだけだったんでNFSで間に合ってたんだけどね

Gentooでのインストールは特に気にすることなくいつも通り
自分はクライアントの機能は不要だったので -client-smbclient を指定した
デフォルトの設定ファイルをコピーして自分の設定を作っていく

# emerge -av samba
# cp /etc/samba/smb.conf.default /etc/samba/smb.conf

以下に変更した設定をメモしておく

  • workgroup = WORKGROUP
    Windowsのデフォルトに合わせる
  • hosts allow = 10.0.0.
    hosts deny = all
    LAN内のマシン以外からのアクセスを拒否する
  • load printers ...
more ...

MySQL5.1から5.5へアップデート

GentooからMySQL5.5がStableになったし5.1はmaskするよ、というお知らせが来ていました
epgrecとMediatombで使っているのですが5.5でも問題なさそうなのでアップデートしました

  1. MySQLの停止

    # /etc/init.d/mysql stop
    
  2. emergeを使用してアップデート

    # emerge -uav mysql
    # etc-update
    
  3. InnoDBが有効になっているとepgrecが遅くなるみたいなので設定を変更する *
    /etc/mysql/my.cnf に以下の二行を追加

    skip-innodb
    default-storage-engine=MyISAM
    
  4. 関連パッケージの更新

    # emerge @preserved-rebuild -a
    # revdep-rebuild --library libmysqlclient.so.16
    # revdep-rebuild --library libmysqlclient_r.so.16
    
  5. MySQLを再起動
    再起動すると /var/log/mysql/mysqld.err に以下のようなエラーが出力されて
    mysql_upgrade を実行するように指示されます ...

more ...

Nginxで自己署名証明書を使う

ドメインを取ったのでそのうちきちんとした証明書を使おうかとは思っていますが
とりあえずしばらくはオレオレ証明書で運用しようと思っています
ということで作成の仕方をメモ

  1. パスフレーズなしの秘密鍵を作成
    色々なサイトを見ていると一度パスフレーズありで作成してから
    パスフレーズを削除したファイルを作りなおすような手順を踏んでいたりしますがこれでよさそう

    # openssl genrsa -out server.key 2048
    Generating RSA private key, 2048 bit long modulus
    ................................................+++
    ........................................+++
    e is 65537 (0x10001)
    
  2. 公開鍵の作成
    HTTPSで暗号化されていればいいだけなので Common Name 以外は適当でいいです
    . を入力した場合そのフィールドは空になるみたいなので全て空にしました

    # openssl req -new -key server.key -out server.csr
    You are about to be asked to enter information that will ...
more ...

MacUIM/Mozcを使う

ターミナルはrxvt-unicodeをビルドして使用しています
これはX11のアプリなのでMacの標準のインプットメソッド経由では日本語を入力することができません
今までほとんど困ることはなくて、必要なときはコピペで対応していました
ただ最近ここをvimで書いていることもあり、MacUIMをインストールして入力できるようにしました

  1. まず上記サイトからダウンロードしてきたアーカイブをインストールします
  2. 次に System Preferences -> Language & Text -> Input SourcesMacUIM (Japanese) のチェックを入れる
  3. System Preferences -> MacUIM を開いて
    1. General -> Input MethodMozc を選択
    2. Helper -> Use Helper-Applet をチェック (メニューバーに状態が表示される)
    3. Uim -> Global settings -> Specify default IM をチェック
    4. Uim -> Global settings -> Default input method で ...
more ...