vserver是OS-Level的virtual machine,是一種進階的 chroot 機制,提供 processes 完全獨立的file systems,但系統其它部份並不是獨立的。Kernel必須要加上Patch才能支援VServer。
下載支援的kernel和patch brook@vista:/usr/src$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2 brook@vista:/usr/src$ wget http://vserver.13thfloor.at/Experimental/patch-2.6.37-vs2.3.0.37-rc1.diff 解開kernel並且給予patch brook@vista:/usr/src$ tar jxvf linux-2.6.37.tar.bz2 brook@vista:/usr/src$ cd linux-2.6.37 brook@vista:/usr/src/linux-2.6.37$ patch -p1 < ../patch-2.6.37-vs2.3.0.37-rc1.diff 利用make-kpkg建立kernel的.deb檔 brook@vista:/usr/src/linux-2.6.37$ cp /boot/config-`uname -r` .config brook@vista:/usr/src/linux-2.6.37$ make oldconfig brook@vista:/usr/src/linux-2.6.37$ make-kpkg clean brook@vista:/usr/src/linux-2.6.37$ fakeroot make-kpkg --initrd --append-to-version=-vserver kernel-image kernel-headers brook@vista:/usr/src/linux-2.6.37$ cd .. brook@vista:/usr/src$ sudo dpkg -i linux-image-2.6.37-vs2.3.0.37-rc1-vserver_2.6.37-vs2.3.0.37-rc1-vserver-10.00.Custom_amd64.deb brook@vista:/usr/src$ sudo dpkg -i linux-headers-2.6.37-vs2.3.0.37-rc1-vserver_2.6.37-vs2.3.0.37-rc1-vserver-10.00.Custom_amd64.deb
接著就是重新用新的kernel開機,並且建立vserver。
下載並且compile新的util-vserver brook@vista:/usr/src$ sudo apt-get install e2fslibs-dev libnss3-dev phthon-dev brook@vista:/usr/src$ wget http://people.linux-vserver.org/~dhozac/t/uv-testing/util-vserver-0.30.216-pre2926.tar.bz2 brook@vista:/usr/src$ tar jxvf util-vserver-0.30.216-pre2926.tar.bz2 brook@vista:/usr/src$ cd util-vserver-0.30.216-pre2926/ brook@vista:/usr/src/util-vserver-0.30.216-pre2926$ ./configure brook@vista:/usr/src/util-vserver-0.30.216-pre2926$ make -j3 brook@vista:/usr/src/util-vserver-0.30.216-pre2926$ sudo make install brook@vista:/usr/src/util-vserver-0.30.216-pre2926# sudo vserver BrookVS build -m debootstrap --hostname BrookVS --interface eth0:192.168.1.2/24 --interface lo:127.0.0.1/8 -- -d maverick -m http://tw.archive.ubuntu.com/ubuntu/ brook@vista:/usr/src/util-vserver-0.30.216-pre2926# sudo vserver BrookVS start brook@vista:/usr/src/util-vserver-0.30.216-pre2926# sudo vserver BrookVS enter
Kernel Version:2.6.37
參考資料:
- How to compile a kernel on Ubuntu 10.04
- Linux - Vserver
- Virtual machine - Wikipedia, the free encyclopedia
- VServer - DebianWiki
- Linux - Vserver, Installation on Linux 2.6
Q: how to running 32-bit Applications on 64-bit Linux
回覆刪除A: apt-get install libc6-i386
基本上vserver上不允許使用者mknod,您可以發現/dev底下沒幾個裝置,不過您可以在
回覆刪除/usr/local/etc/vservers/$VServerName/bcapabilities
加上
CAP_MKNOD
就可以允許vserver執行mknod。