0. 已知问题
Linux支持测试版阶段,你的具体硬件配置,Linux(组件)需要有一些测试失败启动。
1.进入终端,安装容器
使用Ctrl
++Alt
可以t
打开打开crosh
,在其中输入vmc start termina
以启动Termina
虚拟机。
crosh> vmc start termina
(termina) chronos@localhost ~ $
lxc list
已经安装的容器:
(termina) chronos@localhost ~ $ lxc list
+---------+---------+-----------------------+------+------------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+---------+---------+-----------------------+------+------------+-----------+
| penguin | RUNNING | 100.115.92.202 (eth0) | | PERSISTENT | 0 |
+---------+---------+-----------------------+------+------------+-----------+
由于Fy 使用OSrun_container.sh
可以Arch Linux
在 Chromium OS 这个命令中进行修改,这个脚本启动时可以复制到临时更改目录的命令,将脚本编辑/tmp
:
cp /usr/bin/run_container.sh /tmp
cd /tmp
vim run_container.sh
找到以下截图:
# lxc init "google:${FLAGS_lxd_image}" "${FLAGS_container_name}" || \
# die "Unable to create container from image '${FLAGS_lxd_image}'"
local container_root="/usr/share/intergrade_container"
local lxd_info="${container_root}/lxd.tar.xz"
local root_file="${container_root}/rootfs.squashfs"
local container_alias="intergrade_fydemina"
lxc image import $lxd_info $root_file --alias $container_alias || \
die "Unable to import image from $root_file"
lxc init $container_alias ${FLAGS_container_name} || \
die "Unable to create container from image $container_alias"
修改为:
lxc init "google:${FLAGS_lxd_image}" "${FLAGS_container_name}" || \
die "Unable to create container from image '${FLAGS_lxd_image}'"
运行以下命令,请指定名称是设置 应用程序里显示的用户名。您可以自行选择container_name
指定lxd_image
指定的 Linux 镜像名称,或者lxd_remote
指定的镜像源。
bash ./run_container.sh --container_name arch --user 你的用户名 --lxd_image archlinux/current --lxd_remote https://mirrors.tuna.tsinghua.edu.cn/lxc-images/
确保下载成功并且创建用户成功(发射那几个不能加入用户组的错误)。
2.进入容器的属性
执行的范围:
(termina) chronos@localhost /tmp $ lxc exec arch -- bash
[root@arch ~]#
在容器中执行以下命令:
#设置密码。千万不要给 root 设置密码,否则 Chromium OS 集成服务将无法运行
passwd 你的用户名
#把用户加入 wheel 组
usermod -aG wheel 你的用户名
设置源,把 tuna ustc 163 等中国的源剪辑粘贴到前面(vi 中dd
剪切整行,p
粘贴,粘贴/
):
vi /etc/pacman.d/mirrorlist
设置archlinuxcn源:
vi /etc/pacman.conf
在插入最后:
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
安装依赖:
pacman -Syu archlinuxcn-keyring base-devel git gtk3 openssh xdg-utils xkeyboard-config
启用 sudo 无密码,执行
visudo
删除以下行前的注释:
%wheel ALL=(ALL:ALL) NOPASSWD: ALL
退出到终点站:
exit
3.登录到容器
登录 到你创建的用户(在执行 bash 的方法不是登录,无法加载服务之前)。
运行lxc console arch
,然后直接输入用户名:
(termina) chronos@localhost /tmp $ lxc console arch
[<your-username>@arch ~]$
登录成功后 aur 上的cros-container-guest-tools-git
。由于需要从chromium.googlesource.com
下载文件,因此请自行解决 Android 子系统或 Chromium OS 里的代理设置不会应用到安装虚拟机。
git clone https://aur.archlinux.org/cros-container-guest-tools-git.git
cd cros-container-guest-tools-git
makepkg -i
#解决.config不存在导致没有设置默认浏览器的问题
mkdir ~/.config
xdg-settings set default-web-browser garcon_host_browser.desktop
解决 Arch Linux 里xkeyboard-config
更新导致Sommelier
不支持两个键码的打开问题/usr/share/X11/xkb/keycodes/evdev
,注释或删除<i372>
和<i374>
大意的两行。
cros-container-guest-tools-git
支持 Chromium OS 最新版本,FyOS 暂时没有更新到 R71,x-auth
所以不需要文件(更新后就不用改了)
打开/usr/lib/systemd/user/sommelier-x@.service
,找到以下截图:
ExecStart=/opt/google/cros-containers/bin/sommelier \
-X \
--x-display=%i \
--sd-notify="READY=1" \
--no-exit-with-child \
--x-auth=${HOME}/.Xauthority \
/bin/sh -c \
"systemctl --user set-environment ${DISPLAY_VAR}=${DISPLAY}; \
systemctl --user set-environment ${XCURSOR_SIZE_VAR}=${XCURSOR_SIZE}; \
systemctl --user import-environment SOMMELIER_VERSION; \
touch ${HOME}/.Xauthority; \
xauth -f ${HOME}/.Xauthority add ${HOST}:%i . $(xxd -l 16 -p /dev/urandom); \
. /etc/sommelierrc"
改为
ExecStart=/opt/google/cros-containers/bin/sommelier \
-X \
--x-display=%i \
--sd-notify="READY=1" \
--no-exit-with-child \
/bin/sh -c \
"systemctl --user set-environment ${DISPLAY_VAR}=${DISPLAY}; \
systemctl --user set-environment ${XCURSOR_SIZE_VAR}=${XCURSOR_SIZE}; \
systemctl --user import-environment SOMMELIER_VERSION; \
. /etc/sommelierrc"
启用的所有systemdcros-container-guest-tools-git
服务
sudo systemctl enable cros-sftp
systemctl --user enable sommelier@0.service
systemctl --user enable sommelier@1.service
systemctl --user enable sommelier-x@0.service
systemctl --user enable sommelier-x@1.service
systemctl --user enable cros-garcon.service
4.重命名
一些限制,目前 FydeOS 的 Linux(测试版)可以启用。因此,只需要集成penguin
的重命名容器(不要删除自带的 Debian 容器):
[<your-username>@arch ~]$ exit
#按下ctrl-A Q
(termina) chronos@localhost /tmp $ lxc stop arch
(termina) chronos@localhost /tmp $ lxc stop penguin
(termina) chronos@localhost /tmp $ lxc rename penguin debian
(termina) chronos@localhost /tmp $ lxc rename arch penguin
重启虚拟机:
sudo reboot
5.本地化
打开终端应用程序,几秒钟,Arch Linux 就启动了,做一些本地化:
设置时区:
sudo timedatectl set-timezone Asia/Shanghai
设置中文语言:
编辑/etc/locale.gen
,删除zh_CN.UTF-8
之前的注释。然后执行
sudo locale-gen
修改/etc/locale.conf
:
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
安装字体、输入法、这里还安装了搜狗输入法,可能会出现bug,请酌情选择。
sudo pacman -S fcitx-im fcitx-configtool fcitx-sogoupinyin wqy-microhei
打开/usr/lib/systemd/user/cros-garcon.service.d/cros-garcon-override.conf
插件:
Environment="GTK_IM_MODULE=fcitx"
Environment="QT_IM_MODULE=fcitx"
Environment="XMODIFIERS=@im=fcitx"
执行:
echo /usr/bin/fcitx-autostart > $HOME/.sommelierrc
重容器:
sudo reboot
运行fcitx-config-gtk3
配置输入法。