damn small linux in VMware player

0

更新記錄

  1. 2006-0905 因為 SLAX 採用 tgz 方式非常容易改裝新的軟體,延展性比較大,當然代價就是體積大了一點,不過還不超過 150 M,比起其他 500-600 M 的巨大光碟版 Linux 來說,也比較方便,所以將暫時不再使用 Damn Small Linux。
  2. 如需參考 SLAX Popcorn 在 vmplayer 上面運作的資訊,請參閱 SLAX Popcorn 5.1.8 RC in vmplayer

緣起

建立一個容易使用與開啟的 linux 測試環境,所以用 VMware player on Windows 方式測試看看。

damn small ?

也許會同時跑幾個 VM,所以 guest os 必須不會太大,很好傳送或是帶著跑,所以選之前用過的 damn small linux 來跑。

下載 dsl-3.0.1-vmx.zip 來跑 VMware player 。解開與執行後,除非執行 VMware player poweroff,不然整個記憶體會轉存成下列檔案,這個記憶檔 dsl.vmem 大小是可以設定的,不過一旦將狀態保持下來後,大於300MB size 對有些小隨身碟可能撐不住。

2006/06/20  下午 04:53        51,806,208 dsl-3.0.1.iso
2006/09/01  下午 08:57               847 dsl.vmx
2006/09/01  下午 09:00             8,664 nvram
2006/09/01  下午 09:00            14,019 vmware.log
2006/09/01  下午 09:00        18,123,037 dsl.vmss
2006/09/01  下午 09:00       239,075,328 dsl.vmem

一開始使用沒問題,只是預設的 bridged 連線無法上網,連 gateway 也無法 ping 到,只有 ping host os 可以,出不去這台實體機器。

Broswer Appliance is in the know on the player

於是又去 vm 的目錄拉個 dsl-n 下來試,一樣是無法連到 gateway 機器,只到 host 為止。

VMware player 設定網路說明或是範例並不好找,一定是誤解設定,所以直接找 VMware 官方的 Browser Appliance 來試看看並觀摩其中網路設定,結果上網一切正常。原來是必須用 NAT 模式來共用 host os 的網卡,等於當 host os 是分享器。

回改 dsl-3.0.1-vmx 為 nat 模式,但是誰知道 nat 規則 ?這時候必須找到安裝的 vmnetcfg.exe 來看,預設是 192.168.213.2 為 gateway,很高興的改了 192.168.213.5 卻跑不動,只好仿 Broswser Appliance 的 192.168.213.128 才跑起來。

後來又改為 192.168.213.12 也可以,猜測是之前改完沒有重新啟動的關係 ? 另外 dsl 常常會有些桌面程式開不起來,變成要重新開 VM 才回復正常。

Update: 預設不一定是 192.168.213 區,後來換到 NB 去裝,變成 88 區,這時你必須手動改回 213 區,不然別的機器可以連線的 VM 檔,直接移過來會連不上去。

java vm in vm player ?

dsl 可以直接下載 jre_1_5_0,安裝完可以查看版本,放置於 /opt 下。不過如果關掉 vm 整個 jre 都會消失,因為裝在 ramdisk 之中。

Update: 後來下載只剩下 plugin 與 lib 目錄,不見 bin 目錄,應該是版權問題,請看 這裡

BIG jre-1_5_0_08-linux-i586.bin

目前要使用 java 必須到 java.sun.com 下載 jre-1_5_0_08-linux-i586.bin 來裝,注意不要上傳到 dsl os 的根目錄,因為那個目錄只有 3M 可用,要不爆請下到 /tmp 目錄,另外 VM player 預設的 128 M 記憶體會不夠用,因為 dsl os 會分 32M當執行記憶體,其他剩下當 ramdisk。

記憶體設太小會導致安裝有問題發生,因為很多安裝檔在解開時會產生暫存檔,這會讓 ramdisk 爆掉,例如 java 就會裝不進去,所以必須改為 172 M 左右,可以用的 ramdisk 約 128 M,但是裝完並刪掉 bin 檔也只剩約 40M 可用,裝了約 80M 真腫。

root@0[lib]# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/ram0                 2.9M    625.0k      2.3M  21% /
/dev/scd0                49.4M     49.4M         0 100% /cdrom
/dev/cloop              118.1M    118.1M         0 100% /KNOPPIX
/ramdisk                126.6M     86.8M     39.8M  69% /ramdisk

root@0[opt]# /opt/jre1.5.0_08/bin/java -version
java version "1.5.0_08" 
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
Java HotSpot(TM) Client VM (build 1.5.0_08-b03, mixed mode, sharing)

Is your file mine?

如何交換 host-guest 檔案最方便方式是用網路進出,下用 sshd 方式,可以用 sftp/scp 上下東西。必須先設定密碼後啟動 ssh 服務。

sudo su
passwd 
/etc/init.d/ssh start

want to keep it

下載完或是做完設定後,執行 backup 工作,這樣會產出一個 backup.tar.gz,下次開機用指名方式例如 restore=hda1 存回來。不過這是用磁區方式,所以沒有目錄可以選,必須放在某個磁區的根目錄下,這點比較麻煩。

Update: 後來版本可以指定目錄

How do I save my settings?

make a vmdk

每次指定起動備份檔很麻煩的話,可以直接燒到 iso 檔去。參考 mkmydsl 。使用 mkmydsl 需要一個磁區可以 mount,這時候就需要 QEMU on Windows 的幫助,來讀取 vmdk 檔,用來放建立出來的 iso 檔。

C:\Downloads\qemu-0.8.2-windows>qemu-img.exe create -f vmdk dslhd.vmdk 512M
Formating 'dslhd.vmdk', fmt=vmdk, size=524288 kB

這時候這個檔只有 128 K 而已,複製到 dsl-3.0.1-vmx 目錄下,修改 dsl.vmx 檔。

  # hd info
  ide0:0.present = "TRUE" 
  ide0:0.fileName = "dslhd.vmdk" 

啟動後可以檢視是否正確找到,可以發現還沒有格式化來用。

root@0[root]# dmesg | grep hd
    ide0: BM-DMA at 0x1410-0x1417, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0x1418-0x141f, BIOS settings: hdc:DMA, hdd:pio
hda: VMware Virtual IDE Hard Drive, ATA DISK drive
hdc: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive
hda: attached ide-disk driver.
hda: 1048576 sectors (537 MB) w/32KiB Cache, CHS=520/32/63
 hda: unknown partition table
hdc: attached ide-scsi driver.

fdisk /dev/hda 建立一個 ext2 磁區 /dev/hda1,然後 mke2fs /dev/hda1 後就可以 mount /dev/hda1 /mnt/hd 來用。

這時候就可以上傳資料到 /mnt/hd 也不怕停 VM 後又要下載一次。

Update: 後來重新開啟 VM 卻一直開不起來,後來才發現 VM player bios 的啟動順序是 HD 先,然後才找 CD,不知道為何只找 HD 就掛住,只要進 VM player bios 改一下順序就可以用了。

create a dsl iso with java

  1. normal dsl boot
  2. mount /dev/hda1 /mnt/hd
  3. mkdir /mnt/hd/master
  4. mkdir /mnt/hd/iso
  5. chmod +x /mnt/hd/jre_xxx.bin
  6. cd /opt
  7. sh /mnt/hd/jre_xxx.bin
  8. click /opt/jre_xxx add2filetool in emelfm on desktop
  9. cat /home/dsl/.filetool.lst
  10. backup hda1 on control panel
  11. mv /mnt/hd/backup.tar.gz /mnt/hd/master
  12. reboot at dsl 2 toram
  13. mount /dev/hda1 /mnt/hd
  14. mkmydsl
  15. answer /mnt/hd/master
  16. answer /mnt/hd/iso
  17. OK
  18. passwd
  19. /etc/init.d/ssh start
  20. scp /mnt/hd/iso/mydsl.iso file
  21. replace dsl-3.0.1.iso by this iso file.
  22. modify dsl.vmx for this new iso file.
  23. boot this vmx by player and test /opt/java_xxx/bin/java -version

這個方式有點取巧,其實還是直接轉成 xxx.dsl 再放到目錄來做比較理想。

(謎之音:取個複雜的巧)

links

Damn Small Linux

DSL 中文化

Virtual Appliances Directory

Browser Appliance

VMware tips

How to create a new virtual machine with VMware Player

Comments

(leave url/email »)

   Preview comment