crostini与安卓容器的使用小结

最近在试用FydeOS(基于chromeOS)。FydeOS确实是一个挺不错的系统,其中的crostini涉及到lXC相关的操作,特此小结

terminaVM操作

crostini相当于用一个虚拟机terminaVM启动lxc容器来运行linuxGUI应用或者后台服务

进入terminaVM首先要启动VM,由于chromeOS的安全限制,VM无法随系统启动而启动,所以需要手动启动VM。发现打开Terminal应用或者访问文件应用的linux文件夹,都会启动VM和默认的容器。

或者在crosh里执行命令vmc start termina来启动VM

通过vsh termina进入VM的bash

停止VM可以使用vmc stop termina,遇到一些未知的问题,可以通过关闭再启动的方式尝试处理

销毁VM可以使用vmc destroy termina,这样会销毁所有VM的数据,慎重使用

##lxc操作

进入VM后,可以创建、启动、关闭、删除、备份lxc容器,拉取、创建镜像

基于镜像创建容器lxc launch 镜像名 容器名称,没有相同容器名称的容器时,就会创建一个以这个镜像为基础的容器同时启动容器。如果已经有该容器名称的容器,则启动容器

默认容器直接通过打开Terminal应用来启动。启动非默认容器并进入容器的bash目前是通过脚本run_container.sh执行的。

run_container.sh --container_name 容器名称 --shell --user 用户名

可以通过lxc stop 容器名来停止容器,还可以强行停止容器lxc stop 容器名 --force

可以通过lxc list查看所有容器的基本状态,是否启动,IP是多少有没有快照等

可以通过lxc restart 容器名来重启容器

可以通过lxc delete 容器名来删除容器和快照

可以通过lxc publish 容器名 --alias 镜像名来发布镜像,发布的镜像就可以被使用创建容器

可以通过lxc image list查看已有的镜像文件

通过SFTP在文件应用查看非默认容器文件

由于安全限制,容器内的文件是无法直接访问到的,默认容器经过官方设置可以访问到,貌似是通过SFTP的方式实现。非默认容器同样可以通过这种方式查看容器内文件。首先在容器安装openssh-server(如果已安装可以跳过)

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

删除 /etc/ssh/sshd_not_to_be_run文件

rm -v /etc/ssh/sshd_not_to_be_run

重启ssh并查看ssh状态,ssh应该变为active(running)

sudo service sshd restart
sudo systemctl status ssh

为容器的用户设置密码

sudo passwd yourusername

重启容器,使用secure shell app输入对应容器用户名和IP
设置用户名和IP
点击安装SFTP
安装SFTP提示安装成功

安装成功后,可在文件应用看到挂载了对应用户根目录
文件应用显示挂载的根目录
注意这里可以看到docker,是的,可以在容器里再运行容器

使用crostini注意事项

通过run_container.sh 脚本启动的container会报错:

Failed to connect to bus: No such file or directory

导致打开GUI应用无法显示,报以下错误:

Startup Error: Unable to detect graphics environment

再次执行run_container.sh脚本可以正常启动GUI应用并显示GUI,可能是脚本启动x11窗口时失败

查看安卓容器文件夹

访问安卓容器有两种方法,一种是安装一个安卓版的文件管理器。安卓版的文件管理器可以访问各个App的文件,然后通过Download文件夹传递到容器外面。

一种是在浏览器里输入chrome://flags,找到Show Android files in Files app
启用该flag
选择启用,重启后可以在文件应用看到安卓文件夹
安卓文件夹
参考文章链接

安卓APP访问USB设备

安卓app想要访问外接usb设备,比如移动硬盘可以通过指令挂载usb设备

sudo mount -B /media/removable/External\ Drive/AndroidCanAccess/ /run/arc/sdcard/default/emulated/0/Download/HDD
sudo mount -B /media/removable/External\ Drive/AndroidCanAccess/ /run/arc/sdcard/read/emulated/0/Download/HDD
sudo mount -B /media/removable/External\ Drive/AndroidCanAccess/ /run/arc/sdcard/write/emulated/0/Download/HDD

这里是将usb设备的AndroidCanAccess文件夹挂载到安卓系统的Download/HDD文件夹,这样下载到HDD文件夹的文件实际会下载到AndroidCanAccess文件夹

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值