本人博客已经迁移到nasdaqgodzilla.github.io

文章目录

  • 本人博客已经迁移到[nasdaqgodzilla.github.io](https://nasdaqgodzilla.github.io)
  • crouton概述
    • 作用
  • 使用crouton
      • After crouton
      • 在Chromium OS和chroot linux之间进行切换
    • 修改chroot内的系统使用的桌面环境
    • Single-App 单App模式
    • 在使用xiwi的情况下临时使用X11进行启动
  • crouton extension
    • crouton extension的作用
    • 让chroot内的应用以窗口形式直接内嵌显示在Chromium OS
      • Download crouton extension
      • 在Chromium OS中以窗口形式运行Linux
    • Crosh Window extension
      • 组合键屏蔽功能与chroot的结合
    • crouton 维护与更新
  • enter-chroot startxxx 命令的解释
    • enter-chroot
      • 单独运行enter_chroot
    • startxxx
  • 在浏览器的Tab页中运行chroot内的桌面系统
  • 通过一个window或一个browser tab运行Application in chroot
    • tab运行时特性
  • 通过crouton实现chroot GO!
  • 优化用户体验,提前下载bootstrap文件,快速创建系统,免除下载等待
    • 提前下载bootstarp files
  • 毁灭你的chroot
  • 启动多个chroot
  • 确保真正shutdown chroot内的系统
    • 特性
    • (窗口或tab)被关闭的Chroot内系统可以通过Crouton extension重新打开而不需要重新启动chroot内系统
  • misc

crouton概述

crouton: ChRomium Os Universal chrooT EnvirONment

Crouton是CrOS上的一个chroot生成器。它能够自动完成对指定linux镜像的构建,并以chroot的形式启动它们。Crouton使得Ubuntu,Debian和Kali Linux系统能够与Chrome OS系统并行运行。它使用的是chroot而不是双启动的方式,允许用户同时运行不同的桌面环境:Chrome OS和用户通过crouton选择的其他环境。

作用

在Chromium os上面通过chroot直接运行linux。此时,Chromium OS与chroot内的系统是并行运行的。

使用crouton

下载地址:https://goo.gl/fd3zc ;如果地址失效可以从https://github.com/dnschneid/crouton找到最新的下载地址。

sudo sh ~/Downloads/crouton -t xfce

-t xfce表示旋转使用xfce作为桌面环境,常用的桌面环境有kde gnome xfce unity;更多桌面环境可以参考命令help。

-n chrootname指定chroot的名称。

-u update;更新指定的chroot。该参数用于修改、更新chroot内的系统的设置 :如通过-u与-t xiwi的配合,将原不带xiwi的系统update为使用xiwi的系统。

当然,希望尝试不同的桌面环境,可以直接使用-n chroot name来创建新的chroot,不一定要在原有的chroot上进行update。

  • 该命令将构建Ubuntu并创建chroot;在运行过程中会要求输入新用户的用户名密码作为chroot系统里面的初始用户。
  • chroot的默认路径:/mnt/stateful_partition/crouton/chroots
  • 可以通过-p参数来指定chroot的位置。当chroot路径不是默认路径时,在enter-chroot或startxxx的时候注意通过-c指定路径,否则按照默认路径进入系统。
sudo enter-chroot startgnome
# or
sudo startgnome

该命令启动并进入chroot里面的系统。

其中启动命令对应桌面环境,如startgnome进入gnome桌面。

注意:startgnome命令的意义是启动桌面环境,它会自动启动对应的linux,但是startgnome的真正工作是启动桌面环境,也就是说,Linux系统的启动与否并不取决与是否有startxxx命令,因为可以以不启动桌面环境的形式来启动系统。

After crouton

进入chroot后,如果需要修改软件包,则需先运行以下命令,否则可能出现apt install或dpkg安装失败的情况。

sudo apt-get install -f
sudo apt-get upgrade && sudo apt-get update

在Chromium OS和chroot linux之间进行切换

在CrOS和chroot之间切换:

Ctrl+Alt+Shift+F1
Ctrl+Alt+Shift+F2

sh crouton -r list查询支持安装的发行版(包括Ubuntu、debian、kali的各种发行版)。

-t core-t cli-extra只安装CLI而不安装桌面环境。
如果没有安装桌面环境,或者是安装了桌面环境但是不想启动桌面,可以直接使用enter-chroot。在此条件下,使用startcli来打开一个VT(虚拟终端),该终端的会话实际上由chroot里面的系统提供。

修改chroot内的系统使用的桌面环境

通过-u(update)参数将chroot修改为使用xiwi:

sudo crouton -u -t xiwi
# 多环境
sudo crouton -u -t xiwi,gnome

(u)pdate已有chroot内的系统;

Single-App 单App模式

sudo crouton -t xiwi

只安装xiwi作为唯一的显示系统,而不安装独立的桌面环境。不是首次安装,不需要-u参数。

注意:只安装xiwi,没有桌面系统,此时必须安装了crouton extension,否则无法打开Linux窗口。

在使用xiwi的情况下临时使用X11进行启动

如果希望使用xiwi的同时临时使用X11,可以通过-X参数:

sudo enter-chroot startgnome -X xiwi

该模式下chroot内的系统没有自己的桌面环境,只能通过xiwi在Chromium OS里面显示。

crouton extension

It’s also highly recommended that you install the crouton extension, which, when combined with the extension or xiwi targets, provides much improved integration with Chromium OS.

全称:crouton intergration;该插件在Google extension store不能成功搜索到(尝试了Linux的chrome和Chrome OS的Chrome都搜不到这个extension),只好从别的地方找到了网址,然后手动键入Chrome OS的浏览器导航栏进行下载。

当希望通过插件(crouton extension)或xiwi(X11 in Window,将X11界面用一个窗口显示出来,类似Android窗口通过wayland显示到chromium OS)来进行显示的时候,可以使用crouton插件,它比直接使用crouton具有更好的兼容性。

crouton extension的作用

  • 允许chroot内的系统共享使用Chromium OS的设施(如剪贴板、浏览器)。
  • 允许chroot内的系统以常规Chromium OS window的形式创建会话窗口(就是说允许在Chromium OS里面显示chroot系统的窗口,在Chromium OS里面显示chroot的窗口而不需要通过Ctrl+alt+Shift进行桌面系统的切换)。

在chroot系统内使用Chromium Browser的方法:

在Chromium OS的browser中安装croutonextension。然后把chroot系统内的所有browser都卸载掉。这时在chroot内打开的url都会由Chromium OS的Chromium进行处理。

让chroot内的应用以窗口形式直接内嵌显示在Chromium OS

  • crouton extension
  • xiwi

Download crouton extension

crouton extension download

在Chromium OS中以窗口形式运行Linux

步骤:

  1. Chromium OS Chrome or Chromium Browser安装插件Crouton;
  2. 通过crouton命令来更改chroot内的系统的默认显示server; Command as follow:
sudo sh ~/Downloads/crouton -t xiwi -u -n chrootname
// # reset:
sudo sh ~/Downloads/crouton -t xorg,xiwi -u -n chrootname

命令解释:

  • -t xiwi使用xiwi(X11 in Window)作为默认的显示服务;将chroot内的系统显示到Chromium OS窗口的服务就是xiwi;Ubuntu默认的显示服务是X11,使用命令参数-t xorg,xiwi即可修改为默认的X11。xorg就是常说的X显示server,Linux命令startx中的x就是xorg。
  • -n chrootname指定chroot,其中,chrootname可以在chroot内的系统中看到(进入chroot内的系统后,在终端的命令提示符内看得到)。在Chromium OS中,第一次创建chroot默认的chrootname为xenial

执行完以上两个步骤后,以常规方式进入chroot或者startxxx(startunity这种带图形界面的或startcli启动Cmd Line Interface命令行界面),此时会出现一个新的窗口显示chroot,另外,可以在Chromium OS browser的crouton extension处看到一些信息。

Crosh Window extension

Use the Crosh Window extension to keep Chromium OS from eating standard keyboard shortcuts.

作用:

  1. 安装后在browser插件栏中单击它,打开一个新的outside chrome的crosh窗口(crosh是Chromium OS的shell的名称,打开后输入shell即可进入bash命令行);
  2. 该插件确保键盘组合键不会被Chromium OS or Chromium browser处理,而是将组合键发送到shell窗口处理;(如:在browser取得屏幕焦点的情况下,Ctrl+T会打开新的Tab,在该插件打开的Crosh窗口中就会发送到系统,而不交给browser处理)

如果不安装该插件,在启动chroot内桌面环境后,单击Ctrl + t按钮不是打开chroot内系统的终端,而是打开Chromium OS的终端。

Crosh Window extension download

依赖于该插件:
Secure Shell App

组合键屏蔽功能与chroot的结合

当使用CLI(Command Line Interface)的时候,希望键盘组合键发送给VT,而不是给Browser处理,此时,该插件就发挥其作用了。

crouton 维护与更新

  1. Check for updates, download the latest version, and see what’s new by running croutonversion -u -d -c from the chroot (run croutonversion -h to see what those parameters actually do).
  2. Exit the chroot and run sudo sh ~/Downloads/crouton -u -n chrootname. It will update all installed targets.

enter-chroot startxxx 命令的解释

这是两个命令:enter-rootstartxxx

enter-chroot

这是进入chroot的命令;值得一提的是,它后面所跟的参数基本不会对它产生影响。

sudo enter-chroot startxfce4
  • enter-chroot后面跟着的startxxx看似是enter-chroot的参数,其实不是,enter-chroot完全不care后面的参数,它只做两件事:

    • 进入chroot
    • 把它后面跟着的东西作为native raw command转交给进入chroot后的shell进行执行
      也就是说,即使我们后面写上一个奇奇怪怪的“参数”:
enter-chroot ls

enter-chroot也不会出错,在打印出进入chroot的信息后,chroot内的shell会执行这个参数并打印出命令的结果。

graph LR
enter_chroot-->chroot
enter_chroot.startxxx-->chroot_exec_startxxx
chroot_exec_startxxx-->chroot

单独运行enter_chroot

不启动桌面环境,不保证能有窗口或tab弹出来,在安装了crouton extension后能够弹出CLI窗口。

在进入chroot后,可以通过xiwi -T/-F cmd来让app运行在tab或window。

sudo enter-chroot xiwi -T /usr/local/code/code

以上命令实际上是多条命令,可以分开键入:

sudo -i
enter-chroot
xiwi -T xxx # tab运行xxx
xiwi -F xxx # FullScreen运行xxx

startxxx

这个命令所在的路径被添加到了$PATH;因此能够直接在命令行中键入使用。

在浏览器的Tab页中运行chroot内的桌面系统

sudo startxfec4 -n chrootname -X xiwi-tab
  • 在tab页上跑chroot内的桌面系统;关闭tab页后,还能在插件Crouton中再次启动。
  • 只要用户没有从chroot内的系统中logout,即使关闭标签页,也不会导致chroot内的系统停止。

通过一个window或一个browser tab运行Application in chroot

当Chromium OS通过crouton安装了xiwi后,可以不通过桌面环境,直接在一个窗口或标签页中启动chroot内的app。

# 在一个tab中启动
sudo enter-chroot xiwi -T bin
# 全屏幕启动
sudo enter-chroot xiwi -F bin

命令解析:
enter-chroot后执行命令xiwi -T bin;xiwi命令根据参数将bin的界面显示到指定的位置。bin是chroot内的可执行文件。

tab运行时特性

在tab中运行时,xiwi会将指定的进程显示到tab中,当该进程退出时,不论他有没有fork,或invoke其他进程,或带起了其他进程,只要它退出,tab页就会显示进程退出,画面丢失。如果所运行的程序会启动其他进程,或者进行fork,且希望新进程的界面继续保持显示,就必须向xiwi传递参数-f

通过crouton实现chroot GO!

chroot go是对chroot的备份打包、解包和恢复,类似于Windows的安装到U盘,成为随处可用的Windows go。chroot go不是官方名称,是我自己起的名字。

  1. backup chroot
sudo edit-chroot -b chrootname

在当前目录下得到以time stamp命名的tarball,备份了整个chroot系统。

  1. restore from tarball
sudo edit-chroot -r chrootname

找到拥有最新time stamp的tarball并从中恢复。可以通过-f参数来指定tarball而不需要使用most recent timestamp.tar.gz。

  1. Everywhere chroot go
sudo sh ~/Downloads/crouton -f mybackup.tar.gz

全新安装chroot系统;适用于从来没有执行过crouton的系统。

优化用户体验,提前下载bootstrap文件,快速创建系统,免除下载等待

  • 首次运行crouton安装系统,要下载大量文件,耗时,waste…
  • 通过crouton安装多个系统,每次安装都有下载文件,而且还是相同的重复文件,waste…

提前下载bootstarp files

sudo sh ~/Downloads/crouton -d -f ~/Downloads/mybootstrap.tar.bz2
  • 追加参数:可以通过-r来选择安装的发行版
  • 追加参数:可以通过-t来选择桌面环境(如内嵌到Chromium OS Browser使用-t xiwi;使用独立的unity:-t unity;)

使用已经下载好的文件进行安装:(可以利用该命令来安装定制过的系统)

sudo sh ~/Downloads/crouton -f ~/Downloads/mybootstrap.tar.bz2 -t xxx

该命令在上面介绍过了,通过-f参数指定tarball进行安装。

需要注意的是:该方法可能需要追加-t参数,显式通知crouton该tarball内使用的是那种桌面环境,保证crouton已经安装了该桌面环境对应的设施。

毁灭你的chroot

sudo delete-chroot chrootname

等同于:

sudo edit-chroot -d chrootname

启动多个chroot

Chroot is cheap.
文档显示:Chroot开销不大。可以通过-n参数启动多个chroot。

sudo enter-chroot startunity -n
  • 该功能是chroot的功能,-n参数是enter-chroot命令的参数,不是startxxx的参数
  • 如果不追加-n参数,存在已有chroot并且已经进入时,命令执行失败。追加-n参数,即使同一个chroot已经被进入了,仍然可以再次启动一个新的chroot内系统。

crouton的-n是指定chrootname,这里的-n是多次启动一个chroot内的系统。

确保真正shutdown chroot内的系统

  1. 在crouton extension已经安装的情况下,所有显示chroot内的系统的tab或window在被关闭后,都不会真正退出。
  2. 在浏览器插件那里能够看到正在运行的chroot系统。
  3. 关闭chroot内的系统的真正办法是:用户logout系统会话。
    1. 若有桌面环境:单击logout
    2. 通过chroot内命令行:键入logout命令
    3. 仅CLI界面:logout命令或Ctrl + D向VT发出logout信号

特性

为了使用户能够快速回到chroot环境,所有单击关闭按钮所得到的关闭操作,不会真正关闭chroot内的系统。只有当用户从chroot内系统logout后,才会关闭系统(chroot内关机)。

  • 确定跑了几个chroot内系统:通过crouton extension查看。

(窗口或tab)被关闭的Chroot内系统可以通过Crouton extension重新打开而不需要重新启动chroot内系统

misc

  1. -t touchImproves touch support.不带该参数也能支持触摸。
  2. /etc/crouton/shares在Chromium OS和chroot之间共享目录。

Chromium OS并行运行Linux chroot运行Linux相关推荐

  1. Chromium OS初体验 就是一款Linux

    好奇,弄了一个Chromium OS for VMWare 玩玩,发现Chromium OS并非像我之前想象的一样,并非完全是一个自主研发的独立操作系统. 启动 Chromium OS 时 vmwar ...

  2. 通过chroot运行linux,通过chroot构建Linux操作系统

    通过chroot构建Linux操作系统 发布时间:2006-04-14 12:41:48来源:红联作者:翔翔 转贴:出处:天极网 在已有的Linux操作系统中,安装另一个开源操作系统,我们一般是先构建 ...

  3. linux 后台运行jar包命令,Linux 运行jar包命令(Cent OS 7后台运行jar包)

    Linux 运行jar包命令如下: 方式一 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu. ...

  4. Linux后台运行命令 nohup command myout.file 21

    Linux命令后台运行 转自北国的雨,谢谢:http://www.cnblogs.com/lwm-1988/archive/2011/08/20/2147299.html 有两种方式: 1. comm ...

  5. 如何判断 Linux 是否运行在虚拟机上

    在 WebHostingTalk 论坛上有些国外奸商会把虚拟机当作独立服务器卖,去年7月份的时候就有一位中国同胞上当受骗,并在 WHT 上发帖声讨,证据确凿,甚至连服务商自己也承认,回帖达355篇.这 ...

  6. 如何在Linux上运行Windows软件?

    因此,您已经准备好过渡到Linux ,但是您仍然有一些程序还不十分乐于使用. 您仍然可以在Linux上运行Windows软件吗? 答案可能是肯定的,但是有一些警告. 在继续之前,我想作一个重要的区分. ...

  7. linux如何运行windows游戏,如何在Linux上运行Windows应用程序和游戏 互联网技术圈 互联网技术圈...

    在本教程中,我将向您介绍如何在Linux中运行Windows应用程序和游戏.您可能知道,Microsoft Windows使用DirectX来运行游戏.因此,在Windows平台上玩一些需要Direc ...

  8. linux后台运行服务

     有两种方式: 1. command & : 后台运行,你关掉终端会停止运行    2. nohup command & : 后台运行,你关掉终端也会继续运行 一. 简介      L ...

  9. 如何检查是否在Cygwin,Mac或Linux中运行?

    本文翻译自:How to check if running in Cygwin, Mac or Linux? I have a shell script that is used both on Wi ...

  10. linux如何运行windows游戏,Steam 让我们在 Linux 上玩 Windows 的游戏更加容易

    众所周知,Linux 游戏库中的游戏只有 Windows 游戏库中的一部分,实际上,许多人甚至都不会考虑将操作系统转换为 Linux,原因很简单,因为他们喜欢的游戏,大多数都不能在这个平台上运行. 在 ...

最新文章

  1. 黑科技抢先尝(续2) - Windows terminal中Powershell Tab的美化全攻略
  2. 【Python科学计算系列】矩阵
  3. CImage类的用法(转帖)
  4. python嵌入shell代码_大家一起学python-Python基础1
  5. hdu 1430+hdu 3567(预处理)
  6. 两个单片机iic通讯程序_PIC单片机之DS1302时钟
  7. Web容器初始化过程
  8. magento 2 引用 css,Magento2在Phtml文件中调用显示静态块
  9. gimp中文版教程_GIMP视频教程集合(中文+英文)下载 | 卧云楼
  10. 文字转语音软件真人发声(声音自然有感情)
  11. 计算机子网掩码在线,子网掩码计算器
  12. 网站不收录怎么办?网站SEO优化工具
  13. 小马激活工具拒绝访问cannot open file c:\oemsf解决方法
  14. 页面首页、上一页、下一页、尾页设置
  15. Macbook 开机黑屏
  16. 在线YAML转Properties工具
  17. cad角度命令怎么输入_怎么对角度进行尺寸标识 CAD钝角标注技巧
  18. 一致性哈希算法的原理与实现
  19. 可以使用中文作为变量名_一套智慧校园CAD设计方案,可以作为投标技术文件使用...
  20. navicat for mysql 10.1.7注册码

热门文章

  1. 材料成型及控制工程学计算机吗,材料成型及控制工程专业属于什么学科
  2. linux中oracle数据乱码,Linux环境解决Oracle 中文乱码
  3. css vue 内联_Vue学习之路第十二篇:为页面元素设置内联样式
  4. js判断是否是数组的几种方法
  5. 好的示波器可以显示正常的方波,自己制作示波器只有正弦波
  6. IP地址规划和设计方法
  7. python绘制箱线图-python绘制箱线图
  8. matlabRC电路实验仿真
  9. Scintilla教程(2): 文本检索与修改
  10. 基于RSSI及KNN算法的WiFi室内定位实现