linux スワップ領域追加(ファイル)

linuxでのスワップ領域追加(ファイル)
1.スワップ領域用のファイルを用意 128MBのスワップ領域を用意する
# dd if=/dev/zero of=/var/tmp/swapfile1 bs=1024k count=128 読み込んだブロック数は 128+0 書き込んだブロック数は 128+0 # chmod 600 /var/tmp/swapfile1
2.スワップ領域として準備する
# mkswap /var/tmp/swapfile1 スワップ空間バージョン 1 を設定します、サイズ = 134213632 バイト
3.スワップ領域を有効にする
# free total used free shared buffers cached Mem: 253248 250176 3072 1852 53340 128648 -/+ buffers/cache: 68188 185060 Swap: 522072 72836 449236 # swapon /var/tmp/swapfile1 # free total used free shared buffers cached Mem: 253248 246164 7084 1852 53536 124348 -/+ buffers/cache: 68280 184968 Swap: 653136 72836 580300
4.スワップ領域を解除する
# swapoff /var/tmp/swapfile1 # free total used free shared buffers cached Mem: 253248 249248 4000 1852 53680 128648 -/+ buffers/cache: 66920 186328 Swap: 522072 72836 449236
※スワップが使われているときは、解放されるまで待つ おまけ.スワップの使用状況確認
$ cat /proc/swaps Filename Type Size Used Priority /dev/hda2 partition 787176 120780 -1

ループバックマウント

ディスクのすべてをパーティション割りしてしまっている状況化で、
ファイルシステムの移行のテストとかしたい場合。
ファイルをファイルシステムデバイスとしてしまう方法。
空ファイルを作成(ファイルシステムデバイスにするファイル)

# dd if=/dev/zero of=/var/tmp/mounttest1 count=1 bs=1024k

この例では1GBの領域を/var/tmp/mounttest1に作成
空いてるループバックデバイスの確認

# losetup -f
/dev/loop0

先ほど作成したファイルをループバックファイルとして、ループバックデバイスに関連づける

# losetup /dev/loop0 /var/tmp/mounttest1

おまけ:ファイルシステム作成

# mke2fs /dev/loop0
mke2fs 1.26 (3-Feb-2002)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
128 inodes, 1024 blocks
51 blocks (4.98%) reserved for the super user
First data block=1
1 block group
8192 blocks per group, 8192 fragments per group
128 inodes per group
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

マウント

# mount /dev/loop0 /app2

linux システムバックアップリストア(ext2/ext3 dump restore)

linux ext2/ext3ファイルシステム使用時のシステムバックアップリストア方法
こちらにメンテナンスされた(最新版の)文章があります。リンク先をご覧ください。
■ 前提条件

  • レスキューCD(インストールCD)を利用する
  • バックアップイメージは他サーバーのNFSエクスポート領域に配置
  • ファイルシステムはext2またはext3を使用

■ バックアップ
ローカルディスクの全ファイルシステムをバックアップ

# sync #念のため
# dump -0f – <ファイルシステムデバイス> | gzip -c > /backup/<イメージ名>

パーティション構造、lvm構造とかも記録しておく

#fdisk -l
#df
#cat /etc/fstab
# pvdisplay
# lvdisplay

■ リストア
1.インストールCDからブート
起動パラメータは

linux rescue       (レスキューモード)

ネットワークはメニューで設定しない。
後ほどコマンドで設定

# ifconfig eth0 ipaddr 192.168.1.xxx netmask 255.255.255.0

ファイルシステムはマウントしない
インストール済みLINUXを/mnt/sysimageに・・・   → スキップする
シェル起動完了


※ディスク交換した場合ディスクのパーティションを定義

# fdisk

/bootになるパーティションにはブートフラグを立てる。
lvm領域はタイプを8e(LinuxLVM)にする
lvm定義

# lvm pvcreate <デバイス>
# lvm vgcreate <vg名> <pvデバイスファイル>    ※vg名は以前のvg名とあわせる(vmlinuzの中に記録されている??)
# lvm lvcreate –size lv容量 –name lv名 <VG名>

ファイルシステム作成(+スワップ領域作成)

# mke2fs -j <ファイルシステムデバイス>    ※ラベルが設定されていた場合ラベルも設定する
# mkswap <ファイルシステムデバイス>

※上記作業中に中断(電源落とす)して、再開した場合
vgが有効化されていないので有効化する

# lvm vgchagne -ay


2.バックアップイメージを置いたNFS領域をマウント
/backup 以下にバックアップイメージを置いたNFS領域をマウント

# mkdir /backup
# mount -t nfs <NFSサーバーエクスポートディレクトリ> /backup

大抵のディストリビューションのrescueモードはnfsマウントしかできないはず・・・
(家庭用NASでsmbfsのみのものがよくあるので注意!)
3.リストア
”復旧させるファイルシステムのルートディレクトリ”に移動して、リストアする。
一番最初に、/にマウントするファイルシステムを/restoreにマウントし、リストア。その後、/boot などにマウントするファイルシステムを/restore以下に復活しているマウントポイントにマウントしてリストアする。
/tmpになるファイルシステムはリストアしないがrestoreコマンドで使用する(下記参照)ので/restore/tmpなどにマウントすると吉。

# mkdir /restore
# mount -t ext3 -o nouser_xattr <ファイルシステムデバイス> /restore/<従来のマウントポイント>
# cd /restore/<従来のマウントポイント>
# gzip -dc /backup/<バックアップイメージ> | restore -r -T <大容量ファイルが格納できるディレクトリ> -f –
(mountから繰り返し)
# sync

※mountするときは、ファイルシステムタイプを必ず指定すること。rescueモードでは自動的にファイルシステムタイプを認識しない。(よって、ext3でもタイプを指定しなければext2でマウントされてしまう → バックアップイメージが2G超だとrestoreがフリーズする)
※restore時に-Tオプションで大容量ファイルが格納できるディレクトリを指定する。1ファイルをバックアップイメージから抜き出すときに使用するため。この領域がなければrestoreは失敗する(restoreがデフォルトで使用するrescueモードの/tmpは小さい)。復旧予定のディスクの/tmpになるファイルシステムをマウントして、そのディレクトリを指定しておけば良い。
※nouser_xattrは拡張属性を無効にする(つけないとCentOS5で警告が出る)
4.各種設定変更
マウントの情報やらネットワークの情報を必要に応じて変更する。
# vi /etc/fstab
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network
# vi /etc/resolv.conf

など・・・


※ディスク交換した場合
5.ブートローダ(grub)のインストールgrubをインストール
chrootしてリストア先のgrubコマンドを直接実行できるようにする。KNOPPIXなどリストアするOSと違うディストリビューションのLiveCDを使用いる場合に有効。この場合chroot後/devにブロックデバイスファイルは当然存在しないので作成してあげディスクにアクセスできるようにする。

# chroot /restore
# MAKEDEV hda # SATAの場合はsda
# /usr/sbin/grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit


インストールCDをドライブから抜いて再起動。

# sync;sync;sync #←石橋を叩きたい数だけ(笑)
# exit

ハードウェアを交換した場合は再起動中のkudzuで質問に答えてハードウェア情報を更新しておくこと。