■SqueezeのchrootにCentOS4.9を導入。
$ sudo apt-get install -y rinse
squeeze上にwheezyのchroot環境を構築
http://d.hatena.ne.jp/labunix/20130311
プロキシ経由のdebootstrap、Lenny、Squeezeのchroot環境構築
http://d.hatena.ne.jp/labunix/20130312
chroot環境のsidで、rinseを使ってCentOS5/6のchroot環境を構築
http://d.hatena.ne.jp/labunix/20130313
chroot環境のバックアップ
http://d.hatena.ne.jp/labunix/20130314
chrootのwheezy/sidにnwdiagを導入する
http://d.hatena.ne.jp/labunix/20130321
■初回rinseの実行
$ mkdir cifs/centos4
$ sudo rinse --directory=/home/labunix/cifs/centos4/ --distribution=centos-4 --arch i386
Failed to fetch : http://mirror.bytemark.co.uk/centos/4/os/i386/CentOS/RPMS/
404 Not Found
■サポートの終わった「4.9」はミラーサイトには無い。
$ w3m -dump http://mirror.bytemark.co.uk/centos/4/readme
This directory (and version of CentOS) is depreciated.
CentOS-4 is now past EOL
You can get the last released version of centos 4.9 here:
http://vault.centos.org/4.9/
■以下の箇所を変更する。
$ sudo grep -A 2 centos-4 /etc/rinse/rinse.conf
[centos-4]
mirror = http://mirror.bytemark.co.uk/centos/4/os/i386/CentOS/RPMS/
mirror.amd64 = http://mirror.bytemark.co.uk/centos/4/os/x86_64/CentOS/RPMS/
$ sudo sed -i s%"http://mirror.bytemark.co.uk/centos/4/"%"http://vault.centos.org/4.9/"%g /etc/rinse/rinse.conf
$ sudo grep -A 2 centos-4 /etc/rinse/rinse.conf
[centos-4]
mirror = http://vault.centos.org/4.9/os/i386/CentOS/RPMS/
mirror.amd64 = http://vault.centos.org/4.9/os/x86_64/CentOS/RPMS/
■再度rinseを実行
$ sudo rinse --directory=/home/labunix/cifs/centos4/ --distribution=centos-4 --arch i386
■初期設定
$ sudo mount -t proc proc /home/labunix/cifs/centos4/proc/
$ echo "proxy=http://proxy.hostname.com:1234/" | sudo tee -a /home/labunix/cifs/centos4/etc/yum.conf
$ sudo cp /etc/profile.d/proxy.sh /home/labunix/cifs/centos4/etc/profile.d/
$ sudo cp /etc/wgetrc /home/labunix/cifs/centos4/etc/wgetrc
$ sudo chroot /home/labunix/cifs/centos4/ yum update
Setting up Update Process
Setting up repositories
not using ftp, http[s], or file for repos, skipping - 4 is not a valid release or hasnt been released yet
Cannot find a valid baseurl for repo: update
Error: Cannot find a valid baseurl for repo: update
■ここでも同様にリポジトリのチェックでコケる。
ミラーリストをコメントアウトして、baseurlを入れ替える。
$ sudo sed -i s/"^mirrorlist"/"#&"/g /home/labunix/cifs/centos4/etc/yum.repos.d/CentOS-Base.repo
$ sudo sed -i s%"#baseurl=http://mirror.centos.org/centos/\$releasever"%"baseurl=http://vault.centos.org/4.9"%g \
/home/labunix/cifs/centos4/etc/yum.repos.d/CentOS-Base.repo
■今度は上手く行った。
$ sudo chroot /home/labunix/cifs/centos4/ yum update
$ sudo chroot /home/labunix/cifs/centos4/ yum upgrade
$ sudo chroot /home/labunix/cifs/centos4/ rpm -qa | grep wget || \
sudo chroot /home/labunix/cifs/centos4/ yum install -y wget
$ sudo umount /home/labunix/cifs/centos4/proc/
$ echo "proc /home/labunix/cifs/centos4/proc proc defaults 0 0
/tmp /home/labunix/cifs/centos4/tmp none bind 0 0" | sudo tee -a /etc/fstab
$ sudo mount -a
$ mount | grep centos4
proc on /home/labunix/cifs/centos4/proc type proc (rw)
/tmp on /home/labunix/cifs/centos4/tmp type none (rw,bind)
$ sudo chroot /home/labunix/cifs/centos4/ id labunix && \
sudo chroot /home/labunix/cifs/centos4/ usermod -u 1000 labunix
id: labunix: そのようなユーザは存在しません
$ sudo chroot /home/labunix/cifs/centos4/ useradd -u 1000 labunix
$ sudo chroot /home/labunix/cifs/centos4/ id labunix
uid=1000(labunix) gid=1000(labunix) 所属グループ=1000(labunix)
$ sudo chroot /home/labunix/cifs/centos4/ passwd labunix
chroot: failed to run command 'passwd': そのようなファイルやディレクトリはありません
$ sudo chroot /home/labunix/cifs/centos4/ yum install -y passwd
$ sudo chroot /home/labunix/cifs/centos4/ passwd labunix
Changing password for user labunix.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
$ echo "[centos4]
description=centos4
directory=/home/labunix/cifs/centos4
users=labunix
[centos4-root]
description=centos4
directory=/home/labunix/cifs/centos4
users=root
" | sudo tee -a /etc/schroot/schroot.conf
$ echo "chroot-centos4" | sudo tee -a /home/labunix/cifs/centos4/etc/debian_chroot
$ grep . /home/labunix/cifs/centos4/etc/redhat-release
CentOS release 4.9 (Final)
■ログインチェック
「/dev/null」でエラー?
$ schroot -c centos4 -p
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
[labunix@dummyhost ~]$ exit
$ sudo ls -l /home/labunix/cifs/centos4/dev/null
-rw-r--r-- 1 root root 0 2013-03-22 21:47 /home/labunix/cifs/centos4/dev/null
■「644」で作り直す。
$ sudo schroot -c centos4-root -p
crw-r--r-- 1 root root 1, 3 3月 22日 09:29 /dev/null
$ schroot -c centos4 -p
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
bash: /dev/null: 許可がありません
[labunix@dummyhost ~]$ exit
■「666」で作り直す。直った。
$ sudo schroot -c centos4-root -p
crw-rw-rw- 1 root root 1, 3 3月 22日 09:31 /dev/null
bash-3.00
$ schroot -c centos4 -p
[labunix@dummyhost ~]$
■バックアップもしてしまおう。
$ mount | grep "centos4" | awk '{print $3}' | for list in `xargs`;do sudo umount "$list";done
$ sudo du -ks /home/labunix/cifs/centos4 | awk '{sum+=$1;printf "%dM%s\n",$1/1024,$2}END{printf "%dM Total\n",sum/1024}'
400M/home/labunix/cifs/centos4
400M Total
$ ls ~/chrootbackup/
centos5_20130313.tar.gz lenny_20130313.tar.gz squeeze_20130313.tar.gz
centos6_20130313.tar.gz sid_20130313.tar.gz wheezy_20130313.tar.gz
$ cd /home/labunix/cifs && sudo tar zcvf "/home/labunix/chrootbackup/centos4_`date '+%Y%m%d'`.tar.gz" centos4
$ ls -lh ~/chrootbackup/
合計 1.4G
-rw-r--r-- 1 root root 164M 2013-03-22 22:35 centos4_20130322.tar.gz
-rw-r--r-- 1 root root 138M 2013-03-13 20:39 centos5_20130313.tar.gz
-rw-r--r-- 1 root root 109M 2013-03-13 20:40 centos6_20130313.tar.gz
-rw-r--r-- 1 root root 139M 2013-03-13 20:42 lenny_20130313.tar.gz
-rw-r--r-- 1 root root 312M 2013-03-13 20:44 sid_20130313.tar.gz
-rw-r--r-- 1 root root 217M 2013-03-13 20:46 squeeze_20130313.tar.gz
-rw-r--r-- 1 root root 262M 2013-03-13 20:48 wheezy_20130313.tar.gz
$ sudo mount -a
$ mount | grep "centos4"
proc on /home/labunix/cifs/centos4/proc type proc (rw)
/tmp on /home/labunix/cifs/centos4/tmp type none (rw,bind)
■debian4バージョン、centos3バージョン載せても1GBのメモリで結構快適です。
$ sudo ./myscripts/autoclear.sh -t
[sudo] password for labunix:
[Before]
2013/03/22,22:53:24,MEMUSED=98%,SWAPUSED=0%
total used free shared buffers cached
Mem: 1021720 1006212 15508 0 25192 696624
-/+ buffers/cache: 284396 737324
Swap: 1994744 0 1994744
vm.drop_caches = 3
[After]
2013/03/22,22:53:24,MEMUSED=32%,SWAPUSED=0%
total used free shared buffers cached
Mem: 1021720 336012 685708 0 360 72248
-/+ buffers/cache: 263404 758316
Swap: 1994744 0 1994744