Armadillo 440 - Debian設定方法
1. WindowsでTFTPサーバーを設定してlinux.bin.gzとromfs.img.gzをTFTP経由でダウンロードできる状態にする
2. Serial Port経由でHermitからこんな感じにsetbootdeviceを設定
hermit> setbootdevice tftp 192.168.10.10 192.168.10.1 --kernel=linux.bin.gz --userland=romfs.img.gz
3. 設定ジャンパーをはずして、リブートさせる。
4. ネットワーク経由で起動したらしたらmicroSDのパーテションを作る
[armadillo ~]# fdisk /dev/mmcblk0 The number of cylinders for this disk is set to 124277. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): d Selected partition 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-124277, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-124277, default 124277): Using default value 124277 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. mmcblk0: p1 mmcblk0: p1 Syncing disks. [armadillo ~]#
5. microSDを初期化する
[armadillo ~]# mke2fs -j /dev/mmcblk0p1 mke2fs 1.25 (20-Sep-2001) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 497984 inodes, 994220 blocks 49711 blocks (5%) reserved for the super user First data block=0 31 block groups 32768 blocks per group, 32768 fragments per group 16064 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 35 mounts or 180.00 days, whichever comes first. Use tune2fs -c or -i to override
6. microSDをマウントしてカーネルをダウンロード
[armadillo ~]# mount /dev/mmcblk0p1 /mnt/ [armadillo ~]# mkdir /mnt/boot [armadillo ~]# cd /mnt/boot [armadillo /mnt/boot]# wget http://download.atmark-techno.com/armadillo-440/image/linux-a400- ⏎ [version].bin.gz [armadillo /mnt/boot]# mv linux-a400-[version].bin.gz /mnt/boot/linux.bin.gz [armadillo /mnt/boot]# cd [armadillo ~]# umount /mnt
7. Linuxをダウンロード
[armadillo ~]# mount /dev/mmcblk0p1 /mnt/ [armadillo ~]# mkdir tmp [armadillo ~]# mount -t ramfs ramfs tmp [armadillo ~]# cd tmp [armadillo ~/tmp]# for N in 1 2 3 4 5 a4x0; do > wget http://download.atmark-techno.com/armadillo-4x0/debian/debian-lenny-armel-${N}.tgz; > gzip -cd debian-lenny-armel-${N}.tgz | (cd /mnt; tar xf -); > sync; > rm -f debian-lenny-armel-${N}.tgz; > done [armadillo ~/tmp]# cd [armadillo ~]# umount tmp [armadillo ~]# rmdir tmp [armadillo ~]# umount /mnt
8. 電源を切って設定ジャンパーをONにして起動
9. Hermitが立ち上がったら、以下の設定を入れる
hermit> setbootdevice mmcblk0p1 hermit> setenv console=ttymxc1,115200 root=/dev/mmcblk0p1 noinitrd rootwait
10. 電源を切って設定ジャンパーをはずして起動
11. Debianが無事起動することを確認
AFSで使用するディスクを準備する
AFSで使用するディスクはextended file system (ext2,ext3,ext4)が一般的に最適といわれています。物理ディスクを準備するのが好ましいでしょう。ディスクサイズについてですが、データのたまり具合が早い環境や、画像や動画などの数メガ、数百メガのファイルが多い場合は大容量(1TB-2TB)が有利ですが、そもそもAFSはあまりデータの追加頻度が高いもの、画像や動画のファイルサイズの大きめのレポジトリには不向きです。長期的にはハードディスククラッシュ後のリカバリー等も考えると中容量(250GB-500GB)くらいが理想でしょう。金融などミッションクリティカルなシーンを想定する環境ではRAID構成で設計するのも手です。
まずはパーテションから行います。
# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. The number of cylinders for this disk is set to 32635. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-32635, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-32635, default 32635): Using default value 32635 Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. # ls /dev/sdb* sdb sdb1
次にmkfs.ext3を使ってext3でパーテションを初期化します。
# mkfs.ext3 -b 4096 /dev/sdb1 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 32768000 inodes, 65535151 blocks 3276757 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 2000 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 36 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
/etc/fstabを編集してマウント情報を追加します。
LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/hda6 /v xfs rw 0 0 + /dev/sdb1 /vicepa ext3 defaults 1 1 LABEL=SWAP-sda3 swap swap defaults 0 0
最後にmount先をmkdirして、mountコマンドでデバイスをマウントします。
# mkdir /vicepa # mount /vicepa # ls -la /vicepa total 28 drwxr-xr-x 3 root root 4096 Sep 18 06:31 . drwxr-xr-x 27 root root 4096 Sep 18 06:41 .. drwx------ 2 root root 16384 Sep 18 06:31 lost+found # echo 'Hello, world!' > test.txt # cat test.txt Hello, world!
CentOS Client Machineのインストール手順
CentOS 5
まずは、起動時にGraphical Desktop走らないようにinittabを調整。
tkpfdev1 # yum install vim-enhanced tkpfdev1 # vim /etc/inittab - id:5:initdefault: + id:3:initdefault: tkpfdev1 # reboot
次に、マシンのMAC Addressを確認して、DHCPに登録します。ここではtkpfdev1.home.localというホスト名とそれに割り当てるIPアドレスを192.168.0.20としています。
tkpfdev1 # /sbin/ifconfig | grep -i HWaddr eth0 Link encap:Ethernet HWaddr 54:XX:XX:XX:XX:3B tkpfdev1 $ ssh yizumi@dns1 dns1 $ cd /etc/tinydns/root dns1 $ sudo ./add-host tkpfdev1.home.local 192.168.0.20 dns1 $ sudo make dns1 $ sudo svc -dx /service/dnscache dns1 $ sudo svc -dx /service/tinydns dns1 $ dig tkpfdev1.home.local dns1 $ dig -x 192.168.0.20 dns1 $ sudo vim /etc/dhcp3/hosts.static > host tkpfdev1 { > hardware ethernet 54:XX:XX:XX:XX:3B; > fixed-address tkpfdev1.home.local; > }
dns1 # sudo /etc/init.d/dhcp3-server restart dns1 # exit tkpfdev1 $ sudo /etc/init.d/network stop tkpfdev1 $ sudo /etc/init.d/network start tkpfdev1 $ /sbin/ifconfig inet addr:192.168.0.20 tkpfdev1 $ sudo yum install ntp tkpfdev1 $ sudo vim /etc/sysconfig/ntpd tkpfdev1 $ sudo vim /etc/ntpd.conf + server ntp1.home.local tkpfdev1 $ sudo chkconfig ntpd on tkpfdev1 $ sudo chkconfig --list ntpd ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off tkpfdev1 $ sudo /etc/init.d/ntpd start tkpfdev1 $ sudo ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== dns1.home.local 219.123.70.90 3 u 39 64 7 1.015 659.814 0.474 LOCAL(0) .LOCL. 10 l 37 64 7 0.000 0.000 0.001 tkpfdev1 $ ######################### IPTABLE無効化 ####################### tkpfdev1 $ chkconfig iptables off tkpfdev1 $ sudo /etc/init.d/iptables stop tkpfdev1 $ ############### KERBEROS SETUP ################# tkpfdev1 $ sudo yum install krb5-workstation pam_krb5 tkpfdev1 $ sudo vim /etc/krb5.conf > HOME.LOCAL tkpfdev1 $ su tkpfdev1 # kadmin -p sysadmin kadmin: addprinc -randkey host/tkpfdev1.home.local kadmin: ktadd host/tkpfdev1.home.local kadmin: quit tkpfdev1 # klist -ke tkpfdev1 # tkpfdev1 # ################ LDAP SETUP ################### tkpfdev1 # yum install openldap openldap-clients cyrus-sasl-ldap cyrus-sasl-gssapi nss_ldap tkpfdev1 # vim /etc/ldap.conf > host afs2.home.local > base dc=home,dc=local tkpfdev1 # vim /etc/openldap/ldap.conf > BASE dc=home,dc=local > URI ldap://afs2.home.local ldap://afs2.home.local:666 > SASL_MECH GSSAPI tkpfdev1 # kinit sysadmin tkpfdev1 # ldapsearch -LLL tkpfdev1 # ################# OPENAFS ################### tkpfdev1 # exit tkpfdev1 $ cd tkpfdev1 $ mkdir src tkpfdev1 $ cd src tkpfdev1 $ sudo yum install kernel-2.6.18-308.1.1.el5 tkpfdev1 $ wget http://www.openafs.org/dl/openafs/1.6.1/rhel5/i386/kmod-openafs-1.6.1-1.2.6.18_308.1.1.el5.i686.rpm tkpfdev1 $ wget http://www.openafs.org/dl/openafs/1.6.1/rhel5/i386/openafs-1.6.1-1.el5.i386.rpm tkpfdev1 $ wget http://www.openafs.org/dl/openafs/1.6.1/rhel5/i386/openafs-client-1.6.1-1.el5.i386.rpm tkpfdev1 $ wget http://www.openafs.org/dl/openafs/1.6.1/rhel5/i386/openafs-docs-1.6.1-1.el5.i386.rpm tkpfdev1 $ wget http://www.openafs.org/dl/openafs/1.6.1/rhel5/i386/openafs-krb5-1.6.1-1.el5.i386.rpm tkpfdev1 $ sudo rpm -ihv *.rpm tkpfdev1 $ cd /usr/vice/etc tkpfdev1 $ su tkpfdev1 # echo "home.local" > ThisCell tkpfdev1 # vim CellServDB.dist tkpfdev1 # vim CellServDB.local tkpfdev1 # cat /etc/sysconfig/openafs # OpenAFS Client Configuration AFSD_ARGS="-dynroot -fakestat -afsdb" # OpenAFS Server Configuration BOSSERVER_ARGS= tkpfdev1 # reboot tkpfdev1 # kinit sysadmin tkpfdev1 # aklog tkpfdev1 # ln -s /afs/home.local /dena tkpfdev1 # ##################### nsswitch config #################### tkpfdev1 # cat /etc/pam.d/system-auth #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet + auth sufficient pam_krb5.so use_first_pass auth required pam_deny.so account required pam_unix.so account sufficient pam_succeed_if.so uid < 500 quiet account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok + password sufficient pam_krb5.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so + session optional pam_krb5.so tkpfdev1 # vim /etc/nsswitch.conf < passwd: files < shadow: files < group: files > passwd: files ldap > shadow: files ldap > group: files ldap tkpfdev1 # vim /etc/ssh/ssh_config Host * GSSAPIAuthentication yes + GSSAPIDelegateCredentials yes
NTPの設定
すでに、ネットワーク上においてあるNTPサーバー(192.168.0.8)にクライアントをシンクロさせる場合の、クライアント側の設定は以下のとおり。
$ sudo yum install ntp $ sudo /etc/init.d/ntpd stop $ sudo ntpdate 192.168.0.8 $ sudo hwclock --systohc # system clockをhcクロックにシンクロさせる $ sudo vim /etc/ntp.conf + server 192.168.0.8 - server 127.0.0.1 $ sudo chkconfig ntpd on $ sudo chkconfig --list ntpd ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off $ /etc/init.d/ntpd start $ ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *dns1.home.local 59.106.180.168 3 u 7 64 7 2.688 0.510 1.027
DNSが落ちたときにサーバー間の時間がずれて、最悪ホストにログインできなくなってしまうので/etc/ntp.confに設定するserverの値はIPアドレスにしておくほうがお勧めです。名前解決の時間も短縮できますし。
ほかのホストの時間と比べてみる。
$ ssh dns1 date && date Fri Jun 15 08:21:10 JST 2012 Fri Jun 14 16:21:10 PDT 2012 $
おっと、、なぜか太平洋標準時間になっているようだ。
タイムゾーンを変更する。
$ sudo cp /usr/share/zoneinfo/Japan /etc/localtime $ ssh dns1 date && date Fri Jun 15 08:22:31 JST 2012 Fri Jun 15 08:22:31 JST 2012 $
ハッピー。
vmware-tools installation fails
Installing vmware-tools is generally easy, but you can run into hick-ups here and there.
If you see the following:
Searching for a valid kernel header path... The path "" is not valid. Would you like to change it? [yes]
You probably need to install the kernel header. You can do this by
# apt-get update # apt-get install linux-headers-$(uname -r) gcc make gcc-4.1 libglib2.0-0
Then retry by running vmware-install.pl
Trouble shooting
That annoying locale message perl gives you
This may occur after installing perl on your Debian for the first time.
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US.UTF-8", LC_ALL = "en_US.UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
You can fix this by installing "locales" and configuring it.
$ su apt-get install locales $ su dpkg-reconfigure locales
Once you have the configuration screen, select en_US.UTF-8.