2011年8月19日 星期五

Tiny Core 系統啟動三部曲 - Serial Port & ACPID

在 Linux KVM 虛擬系統中, 往往需管理大量虛擬電腦, 如所有管理是透過 SSH, 那你就必須記住一堆 IP 位址, 有時網路還不通, 這在管理上是一大挑戰. 這樣的情況如使用 Serial Port 方式連接虛擬電腦, 就不需記憶大量 IP 及 擔心網路不通.

對於虛擬電腦管理上還有另一個挑戰, 那就是批次關機, TinyCore 系統內建並沒有安裝 ACPID (Advanced Configuration and Power Interface daemon), 這樣就無法由 virsh shutdown 命令將虛擬電腦關機

針對上述需求,開始進行 TinyCore 改裝, 步驟如下 :

1.解開 initial RAM disk 檔 (microcore.gz)
$ mkdir /mnt/hda1/rd
$ cd /mnt/hda1/rd
$ zcat /mnt/hda1/boot/microcore.gz | sudo cpio -i -H newc -d

2.編輯 /mnt/hda1/rd/etc/inittab 設定檔
在 inittab 設定檔中, 加入下式

$ cd /mnt/hda1/rd
$ nano  etc/inittab
            :
ttyS0::respawn:/sbin/getty 38400 ttyS0

3.編輯 /mnt/hda1/rd/etc/securetty 設定檔
$ cd /mnt/hda1/rd
$ nano  etc/securetty
                     :
# For people with serial port consoles
ttyS0    # 移除這行註解

4. 重製 initial RAM disk 檔 (microcore.gz)


$ cd /mnt/hda1/rd
$ sudo find | sudo cpio -o -H newc | gzip -2 > ../microcore.gz

5. 複製 microcore.gz 至啟動目錄

$ cp ../microcore.gz ../boot/
cp: overwrite `../boot/microcore.gz'? y

6.重新開機

$ sudo reboot

7.在裸機系統執行以下命令, 使用 Serial Port 登入改裝後的 TinyCore 虛擬電腦
$ sudo virsh console TC382
Micro Core Linux
box login: root
Password:
 (
 //\  Micro Core is distributed with ABSOLUTELY NO WARRANTY.
 v_/_           www.tinycorelinux.com
root@box:~#

8.安裝 acpid 套件
$ tce-load -wi acpid.tcz

9.產生 acpid 事件檔 (powerbtn)
$ sudo nano /usr/local/etc/acpi/events/powerbtn
event=button[ /]power
action=/sbin/poweroff

10.修改備份清單 (/opt/.filetool.lst)

$ nano /opt/.filetool.lst
           :
usr/local/etc/acpi/events/powerbtn

11.修改 /opt/bootsync.sh

$ nano /opt/bootsync.sh
          :
/usr/local/sbin/acpid &>/dev/null

12.重新開機

$ filetool.sh -b
$ sudo reboot


參考文章
1.Linux 電源管理研究筆記-acpid 工作原理簡述
http://bluequiet.blogspot.com/2009/05/linuxacpid.html
2.Serial Port console with syslinux question?
http://forum.tinycorelinux.net/index.php?topic=11088.0

沒有留言:

張貼留言