User-mode Linux
什麼是 user-mode-linux?[編輯 | 編輯原始碼]
User-mode-linux (UML) 是讓一個linux作為一個獨立進程運行在另一個linux上。 請在[1] 查找 uml 的詳細安裝使用指南。
這篇 wiki 文章是 這帖[失效連結 2020-08-06 ⓘ] 概要。 如果你有任何意見和建議可以在這回帖。
為什麼使用 UML?[編輯 | 編輯原始碼]
UML 是一種在同一時間運行多 (arch-)linux 的安全方式。 每個進程都是獨立去其它的, 這非常安全,例如在同一機器上進行多種測試和開發而不互相干擾。如果一些測試進程損壞並不會影響宿主系統或者開發用進程。
HOWTO[編輯 | 編輯原始碼]
運行所需:[編輯 | 編輯原始碼]
- User-mode-linux 內核(安裝 linux-usermodeAUR)
- uml_工具, 特別使 tunctl 程序 (安裝 uml_utilitiesAUR)
- archbootstrap 腳本. 在 這個主題 進行討論.
現在開始[編輯 | 編輯原始碼]
1.) 首先要創建一個獨立、大的文件用來安裝 arch。 如下命令會創建一個獨立的空的 1GB 文件 - 應該足夠安裝一個基 arch 系統。
dd if=/dev/zero of=archRootFs bs=1MB count=1000
2.) 當創建完成後格式化。 如下命令將會提示 archRootFs 不是一個 block 設備。 你可以完全忽略或者加入 -F 來使 mke2fs 可以屏蔽提示信息。
mke2fs archRootFS
3.) 格式化後加載它。 以root用戶執行如下命令:
mount -o loop archRootFs /mnt
4.) 現在開始基本系統安裝。您可以用 archbootstrap 腳本, 這會象光盤安裝一樣,不同的是這個安裝從指定目錄開始。這是一個真實的基本系統安裝 - 因而會花費一點時間!
sh archbootstrap /mnt/ ftp://archlinux-mirror
5.) 在系統以 user-mode-linux 模式啟動之前, 一些 arch 基本系統文件要求定製。 在 /mnt/etc/fstab 加入:
/dev/ubd0 / ext2 defaults 0 0
可以通過禁用 hotplugin 來加快啟動時間,在 /mnt/etc/rc.conf 加入:
DAEMONS=(syslog-ng !hotplug !pcmcia network netfs crond)
6.) 卸載文件系統。 注意: 如果你在加載的系統中改變了 任何東西 (例如 /mnt) 而它正在 運行,則很有可能 毀了 它 !
umount /mnt
7.) 下一步是配置網絡。 因此您要創建 tun 設備 (請閱讀 uml howto 得到具體的 tun/tap 信息), 分配一個 IP 地址。 如下命令將會創建 tun/tap 設備並讓普通用戶能夠使用,然後分配 ip 地址。為了安全起見您最好建立一個 uml 用戶組並賦予使用網絡設備的權限。
modprobe tun tunctl -u users chown root.users /dev/net/tun ip addr add 192.168.0.100/24 dev tap0
8.) 現在可以啟動鏡像。為了使用網絡,您要在 uml 內核中聲明正確的設備值。 (確保普通用戶通過運行 uml 命令有足夠的權限使用網絡!)
vmlinux ubd0=archRootFs eth0=tuntap,,,192.168.0.100
",,," 意思是:
eth0=transport,tuntap device,MAC adress,ip
例如:
eth0=tuntap,tap0,3f:2a:bb:00:00:00,192.168.3.23
祝您開心使用 uml。