CD-ROM(DVD)がマウント出来なくなったら

cdromをマウントしようとしたら、

# mount /dev/cdrom /mnt
mount: unknown filesystem type 'iso9660'

といったエラーがでてマウント出来ないことがあると思います。

この場合、正しくモジュールがロード出来ていない可能性があります。
まずは、

# uname -a
Linux localhost.localdomain 3.10.0-229.20.1.el7.x86_64
#1 SMP Tue Nov 3 19:10:07 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

を実行して、現在のカーネルのバージョンを確認します。
そして、以下の場所にあるisofsモジュールをinsmodするとマウント出来るようになりました。

# insmod /lib/modules/3.10.0-229.20.1.el7.x86_64/kernel/fs/isofs/isofs.ko
# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only

UUIDを調べてfstabを再構築する

最近のCentOSなどでは以下のようなfstabになっていると思います。

/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=e01eb23e-f456-7a89-0b1c-23a4df5c6fd7 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

たまにfstabが壊れる時があると思いますが、再構築しようとするとUUIDを調べる必要が出てきます。


CentOSの場合、以下のコマンドでUUIDを調べることができます。

“UUIDを調べてfstabを再構築する” の続きを読む

emacsの使い方

起動時にはホームディレクトリ直下にある.emacsファイルが読み込まれる。
scratchバッファ(左下にscratchと表示されるバッファ)上で、コマンドを入力しCtrl-Jを押すと結果が表示される。
都度、Ctrl-Jを押すのが面倒な場合は、 M-x ielm と入力すると、シェルっぽいのが開く。

全般操作

キー入力 コマンド名 動作
C-g keyboard-quit コマンドの中断、アンドゥの方向を変える
C-x C-c save-buffers-kill-terminal emacsの終了
eval-current-buffer 設定ファイル(.emacs)の再読み込み

ファイル操作

キー入力 コマンド名 動作
C-x C-f find-file ファイルを開く
C-x i insert-file 別のファイルを挿入する
C-x C-v find-alternate-file 別のファイルを開く
C-x C-k バッファ名 kill-buffer バッファを閉じる
C-x C-b list-buffers バッファの一覧を表示
C-x C-s save-buffer バッファの保存
C-x C-w write-file 別名でファイルを保存

バッファメニューによるバッファ操作

キー入力 コマンド名 動作
C-x C-b list-buffers バッファの一覧を表示
d/k Buffer-menu-delete バッファに削除マークを付ける
s Buffer-menu-save バッファに保存マークを付ける
x Buffer-menu-execute マーク付けされたバッファを削除/保存する

編集

キー入力 コマンド名 動作
C-@ or C-SPC set-mark-command リージョン(選択範囲)の開始位置(マーク)を設定
C-w kill-region リージョン(選択範囲)をキル(カット)する
M-w kill-ring-save リージョン(選択範囲)をコピーする
C-y yank 最後にキルした内容をヤンク(ペースト)する
C-_ or C-x u undo 直前の変更を取り消し
C-s isearch-forward 下方向へ文字列を検索
C-r isearch-backward 上方向へ文字列を検索
C-u 文字数 C-x TAB 選択したリージョンに対して指定した文字数分インデントする。マイナスの文字数(-4とか)を指定すると逆方向にインデントする

ウィンドウ(OSの1つのウィンドウ内での枠)操作

キー入力 コマンド名 動作
C-x 3 split-window-horizontally ウィンドウを左右に分割
C-x 2 split-window-vertically ウィンドウを上下に分割
C-x 1 delete-other-window ウィンドウ分割を解除
C-x 0 delete-window 選択されたウィンドウの削除
C-x o other-window 次のウィンドウにカーソルを移動

フレーム(OSのウィンドウに相当)操作

キー入力 コマンド名 動作
C-x 5 2 make-frame 新しいフレームの作成
C-x 5 1 delete-other-frames 他の全てのフレームを削除
C-x 5 0 delete-frame 現在のフレームを削除
C-x 5 o other-frame 別のフレームに移動

キーバインド

キー入力 コマンド名 動作
C-h k describe-key 入力されたキーバインドの説明を表示
C-h a apropos-command 入力された文字列が含まれているコマンド一覧を表示
C-h b describe-bindings 現在のキーバインド一覧を表示

カーソル移動

キー入力 コマンド名 動作
C-p previous-line カーソルを1行上に移動
C-n next-line カーソルを1行下に移動
C-f forward-char カーソルを1文字右に移動
C-b backward-char カーソルを1文字左に移動
C-a beginning-of-line 行の先頭へと移動
C-e end-of-line 行の末尾へと移動
C-v scroll-up 下方向へと縦スクロール
M-v scroll-down 上方向へと縦スクロール
M-< beginning-of-buffer バッファの先頭へと移動
M-> end-of-buffer バッファの末尾へと移動

文字コードを変換して再読み込み

キー入力 コマンド名 動作
C-x RET c universal-coding-system-argument 文字コードを変更する(例:utf-8-unix)

NSIntegerを32bit/64bit両環境で表示させるには

iPhoneは5Sから64bitになりましたが、64bit環境だとNSIntegerの値が異なります。

32bit 64bit
long 4 8
size_t 4 8
NSInteger 4 8
CGFloat 4 8

このため、

NSInteger count=1;

NSLog(@”NSInteger count = %d”, count);

といったプログラムを組むと、64bit環境で実行しようとすると

ViewController.m:122:86: Values of type ‘NSInteger’ should not be used as format arguments; add an explicit cast to ‘long’ instead

のようなエラーが出力され、%ldに訂正するようにXcodeに勧められます。
しかし、

NSInteger count=1;
NSLog(@”NSInteger count = %ld”, count);

のように訂正すると、今度は32bit環境で実行した場合にエラーになります。

対策として、32bit/64bit両対応にするには、

NSInteger count=1;
NSLog(@”NSInteger count = %zd”, count);

と「z」を付けると両対応できるようです。

RPMパッケージを定期的に更新するには

サーバは、セキュリティーアップデートが出る度に定期的に更新しないと大変なことになりますが、手動でいちいち

# yum update

とするのは面倒だったりします。

CentOSにはyum-cronなるものが用意されており、これを動かしておくと定期的にupdateしてくれます。
まず、パッケージを導入します。

$ sudo yum install yum-cron

起動します。

$ sudo /etc/init.d/yum-cron start

次にサーバ起動時に自動起動されるかを確認しておきます。

$ sudo /sbin/chkconfig –list yum-cron
yum-cron 0:off 1:off 2:off 3:off 4:off 5:off 6:off

ここで3(runlevelコマンドで確認できる数字)がoffになっていたりするとサーバ起動時に起動しませんので、自動起動するように設定しておきます。

sudo /sbin/chkconfig yum-cron on

再度起動状態を確認します。

$ sudo /sbin/chkconfig –list yum-cron
yum-cron 0:off 1:off 2:on 3:on 4:on 5:on 6:off

3がonになっていれば終了です。

[Mac] Macでスリープせずにディスプレイの電源を切るには

Macで夜中に作業をさせたまま寝たい時などに画面が明るくて邪魔になる時があると思います。

Macでスリープにせずにディスプレイを消灯させたい(真っ暗にする)には、

control + shift + eject

のキーボードショートカットで対応可能です。

その他、主要なショートカットはこちらに載ってます。

LVMで論理ボリュームのサイズを変更する

LVMではスナップショット機能を有効にすることができますが、既に物理ボリュームを限界まで使ってパーティションを作っているとスナップショット用に領域を作れません。
新たにディスクを買い足すなどしてボリュームを追加する方法もありますが、論理ボリュームに空きがあればサイズを変更してスナップショット用の領域を空けることが出来ます。

まず、パーティションをumountしておきます。

rootパーティションなどはアンマウントできないため、インストールCDなどから起動します。

一旦、ファイルシステムに対してfsckをかけます。

# e2fsck -f /dev/VolGroup00/LogVol00

resize2fsでファイルシステムのサイズを変更します(この例では20Gに変更)

# resize2fs /dev/VolGroup00/LogVol00 20G

lvreduceで論理ボリュームのサイズを変更します。

# lvreduce -L 20G /dev/VolGroup00/LogVol00

lvdisplayコマンドでサイズを確認するとサイズが変わっていると思われます。

# lvdisplay /dev/VolGroup00/LogVol00

— Logical volume —
LV Path /dev/VolGroup00/LogVol00
LV Name LogVol00
VG Name VolGroup00

略

LV Size 20.00 GiB