本篇暂时作为个人的笔记使用,可读性可能较差

在前几个月的某次更新后,设置里出现了悄悄的出现了一个Linux(Beta)的选项,这允许你使用官方的Linux支持,并且使用一个完全与Chrome OS共生的系统,而不再是像crouton那样为了使用一个图形应用程序而安装一套完整的桌面环境。

  • 在设置中启用Linux,注意需要翻墙并且有可能无法通过使用本机的翻墙方式需要使用路由器做到完全翻墙(待考证,个人认为原因是Chrome OS的翻墙无法影响到共生的Linux),如果出现错误尝试直接点击重试而不是取消后删除进度重来。
  • 安装好之后的系统是Debian 9,支持图形应用,在应用中找到Terminals直接运行即可。
  • 在ctrl+alt+t中输入vmc list可以看到当前的vmc容器(个人理解,不清楚具体叫法),使用vmc start termina可以进入一个不同于shell的命令行。

使用lxc查看与子系统相关的命令,参照网络上的解释,似乎是Chrome OS嵌套VM嵌套子Liunx系统三重嵌套。

使用类似lxc launch images:ubuntu/xenial xenial的命令可以建立新的子系统,参照网络上的资料似乎以此方式新建的不支持图形化的程序,仅以默认方式建立的才支持(从Terminals中直接运行即可),不过影响并不大,即使是ubuntu也是基于debian的(大概)。支持的系统列表参照这里 https://us.images.linuxcontainers.org/

子系统除了提示给出的操作外可以通过如下方式运行

run_container.sh --container_name xenial --shell --user root

lxc exec xenial -- /bin/bash

参考资料:
https://www.reddit.com/r/Crostini/comments/8ayrnl/creating_other_lxc_containers/
http://linuxiumcomau.blogspot.com/2018/08/introduction-to-crostini-part-3-using.html
https://www.reddit.com/r/Crostini/comments/94oja4/making_ubuntu_the_default_container_in_crostini/
https://www.reddit.com/r/Crostini/comments/8ju1lx/terminal_suddenly_failing_to_start/
https://blog.google/products/chromebooks/linux-on-chromebooks/
https://www.reddit.com/r/Crostini/comments/9hhk0o/error_installimg_linux_on_pixelbook/

鉴于Crostini稳定性太差(我是崩过好几次),如果要稳定的开发环境建议使用crouton,或者随时备份同步自己的代码到云端。

(这个问题似乎可以改善,参照下一篇文章)

19-6-29更新

鉴于现在的稳定性已经有很大的改善(也可能是因为笔者使用的是Beta channel),已经很长时间没有将crouton作为生产环境了。

来自crouton官方的对比推荐:

Crostini is an official project within Chromium OS to bring the Linux shell and apps to the platform in verified mode with clean integration, multi-layered security, and all the polish you expect from Chromium OS proper.

That means compared to crouton, Crostini has official support, competent engineers, and code that looks a little less like ramen. crouton, in its defense, has wider device compatibility, enables direct hardware access, and is named after an objectively tastier bread-based food item.

There's a solid community on Reddit if you'd like to try Crostini out. If it works for you -- great! No hard feelings. If in the end you decide that crouton suits you better, read on!

Note: you can't get the best of both worlds by installing crouton inside of Crostini. The technology (and life itself) just doesn't work that way. Not to mention a crouton Crostini would look ridiculous and be impossible to eat without getting bits everywhere.

参考资料:Chrome 操作系统帮助

设置远程访问

Windows

  • 下载 Chrome 远程桌面应用。
  • 在计算机上打开 Chrome。
  • 在屏幕顶部的地址栏中输入 chrome://apps,然后按 Enter 键。
  • 点击“Chrome 远程桌面”图标。
  • 在“我的计算机”下,点击开始使用。
  • 点击启用远程连接。
  • 输入相应 PIN 码,继而再次输入该 PIN 码,然后点击确定。
  • 点击是,以安装“Chrome 远程桌面”服务。
  • 确认 Google 帐号,然后再次输入相应 PIN 码以继续操作。

您启用了远程连接的计算机会显示在“我的计算机”下方。

Mac

  • 下载 Chrome 远程桌面应用。
  • 在计算机上打开 Chrome。
  • 在屏幕顶部的地址栏中输入 chrome://apps,然后按 Enter 键。
  • 点击“Chrome 远程桌面”图标。
  • 在“我的计算机”下,点击开始使用。
  • 点击启用远程连接。然后按照屏幕上的说明操作。
  • Chrome 会下载一个 .dmg 文件。点击保存。
  • 该文件下载完毕后,将其打开。
  • 按照屏幕上的提示操作,完成安装。然后,返回 Chrome。
  • 要为您的计算机开启远程访问功能,请点击确定。
  • 输入相应 PIN 码,继而再次输入该 PIN 码,然后点击确定。
  • 系统显示相应对话框后,解锁面板并再次确认您的帐号和 PIN 码。
  • 系统会显示“此计算机的远程连接已启用”这一消息。请点击确定关闭该消息。

您启用了远程连接的计算机会显示在“我的计算机”下方。

Linux

第 1 步:下载并安装 Chrome 远程桌面

第 2 步:为主机组件安装 Debian 软件包

  • 点击此处即可下载 64 位 Debian 软件包。

第 3 步:创建虚拟桌面会话

  • 如果您使用的是 Ubuntu 12.04,请跳至第 4 步。

    1. /usr/share/xsessions/ 中查找用作首选桌面环境的 .desktop 文件。

      • 例如,Cinnamon 有一个名为“cinnamon.desktop”的文件,其中包含以下命令:gnome-session --session=cinnamon
    2. 在您的主目录中创建一个名为“.chrome-remote-desktop-session”的文件,其中包含以下内容:

      • exec /usr/sbin/lightdm-session "<YOUR_EXEC_COMMAND>"
    3. 用您 .desktop 文件末尾处的命令替换 <YOUR_EXEC_COMMAND>

      • 在 Cinnamon 示例中,正确的命令是:exec /usr/sbin/lightdm-session 'gnome-session --session=cinnamon'
      • 如果是 Unity 桌面,还需要使用一些额外的代码。完整的命令是:DESKTOP_SESSION=ubuntu XDG_CURRENT_DESKTOP=Unity XDG_RUNTIME_DIR=/run/user/$(id -u) exec /usr/sbin/lightdm-session 'gnome-session --session=ubuntu'
    4. 保存名为“.chrome-remote-desktop-session”的文件。

第 4 步:启用远程连接

  • 在计算机上打开 Chrome。
  • 在屏幕顶部的地址栏中输入 chrome://apps,然后按 Enter 键。
  • 点击“Chrome 远程桌面”图标。
  • 在“我的计算机”下,点击开始使用。
  • 点击启用远程连接。
  • 输入相应 PIN 码,继而再次输入该 PIN 码,然后点击确定。
  • 关闭确认对话框。

Chromebook

  1. 下载 Chrome 远程桌面应用。
  2. 点击添加至 Chrome。
  3. 点击添加应用进行确认。
  4. 在屏幕一角,依次点击“启动器”图标 -> 向上箭头。
  5. 点击“Chrome 远程桌面”图标。

与其他人共用您的计算机

您可以允许他人访问您的计算机。他们将获得对您的应用、文件、电子邮件、文档和历史记录的完整访问权限。

  • 在计算机上打开 Chrome。
  • 在屏幕顶部的地址栏中输入 chrome://apps,然后按 Enter 键。
  • 点击“Chrome 远程桌面”图标 “Chrome 远程桌面”应用。
  • 点击开始使用。
  • 要创建访问代码,请点击共享。
  • 将此代码发送给您想要让其使用您计算机的用户。
  • 对方输入此访问代码后,便会看到您的电子邮件地址并可完全控制您的计算机。
  • 要结束共享会话,请点击停止共享。

远程访问其他计算机

计算机

远程访问计算机

  • 在计算机上打开 Chrome。
  • 在屏幕顶部的地址栏中输入 chrome://apps,然后按 Enter 键。
  • 点击“Chrome 远程桌面”图标 “Chrome 远程桌面”应用。
  • 选择您想要访问的对象。您可能需要先点击开始使用。
  • 如果您要访问自己的计算机,请点击此计算机。
  • 如果您要访问与您共享的其他计算机,请点击访问。
  • 输入登录所需的 PIN 码或访问代码。
  • 点击连接。
  • 出于安全考虑,所有远程桌面会话均会完全加密。

停止远程会话

  • 完成远程会话后,请转到页面中央,然后依次点击“向下箭头”图标 -> “断开连接”。

从列表中移除计算机

  • 在计算机上打开 Chrome。
  • 在屏幕顶部的地址栏中输入 chrome://apps,然后按 Enter 键。
  • 点击“Chrome 远程桌面”图标。
  • 在您要移除的计算机旁边,点击停用远程连接。

Android设备

远程访问计算机

  1. 在 Android 手机或平板电脑上,打开“Chrome 远程桌面”应用 。如果您尚未安装,请从 Google Play 中下载
  2. 从列表中点按您想要访问的计算机。如果某台计算机名称呈暗淡状态,则表示此计算机处于离线状态或无法访问。
  3. 您可以采用两种不同的模式来控制该计算机。只需点按工具栏中对应的图标即可在不同的模式之间切换。

    • 要想通过虚拟鼠标指针来执行操作,请点按“触控板模式”图标 触控板模式。
    • 要想通过点按来执行操作,请点按“触摸模式”图标 触摸模式。

出于安全考虑,所有远程桌面会话均会完全加密。

在远程访问计算机时使用手势

  • 向上或向下滚动:双指滑动。
  • 点击并拖动:用一根手指拖动。
  • 缩放:双指张合。
  • 显示键盘:三指向上滑动。
  • 显示工具栏应用:三指向下滑动。
  • 移动鼠标:在屏幕上的任意位置滑动(仅适用于触控板模式)。
  • 点击鼠标左键:点按屏幕。
  • 点击鼠标右键:双指点按屏幕(仅适用于触控板模式)。
  • 点击鼠标中键:三指点按屏幕(仅适用于触控板模式)。

从列表中移除计算机

  1. 在 Android 手机或平板电脑上,打开“Chrome 远程桌面”应用。
  2. 触摸并按住您想要移除的计算机的名称。
  3. 点按删除。
  4. 点按确定。

问题排查提示

如果遇到问题,请尝试按以下提示操作:

  • 如果无法打开网页,请检查设备的连接。
  • 如果所访问的计算机使用的是单位或学校的网络,则可能会不允许您让其他人访问。如需了解详情,请与您的管理员联系。
  • 确保您使用的是最新版本的“Chrome 远程桌面”应用。

iPhone 或 iPad

远程访问计算机

  1. 在 iPhone 或 iPad 上,打开“Chrome 远程桌面”应用。如果您尚未安装,请从 iTunes 中下载
  2. 从列表中点按您想要访问的计算机。如果某台计算机名称呈暗淡状态,则表示此计算机处于离线状态或无法访问。
  3. 您可以采用两种不同的模式来控制该计算机。只需点按工具栏中对应的图标即可在不同的模式之间切换。

    • 要想通过虚拟鼠标指针来执行操作,请点按“触控板模式”图标。
    • 要想通过点按来执行操作,请点按“触摸模式”图标。

出于安全考虑,所有远程桌面会话均会完全加密。

在远程访问计算机时使用手势

您可以在远程访问计算机时使用手势。

  • 向上或向下滚动:双指滑动。
  • 点击并拖动:用一根手指拖动。
  • 缩放:双指张合。
  • 显示键盘:三指向上滑动。
  • 显示工具栏应用:三指向下滑动。
  • 移动鼠标:在屏幕上的任意位置滑动(仅适用于触控板模式)。
  • 点击鼠标左键:点按屏幕。
  • 点击鼠标右键:双指点按屏幕(仅适用于触控板模式)。
  • 点击鼠标中键:三指点按屏幕(仅适用于触控板模式)。

从列表中移除计算机

如果您想修改计算机列表,请登录此列表中的任一台计算机,然后打开“Chrome 远程桌面”应用。

使用第三方应用程序

推荐使用 Teamviewer ,在Play StoreWeb Store 中均可下载。
提前在要控制的设备上部署即可实现远程访问。

开启开发者模式(关闭操作系统验证) 之后,Chrome OS 允许开启内置的 Shell 包含一些基本的命令。

使用它有三种方式:

  • 在浏览器窗口中打开。

    1. 按组合键 Ctrl+Alt+T 打开一个命令行窗口
    2. 输入 'shell' 并回车进入 shell
  • 通过扩展程序打开

    1. 打开扩展程序Secure Shell App页面
    2. 将其添加到Chrome
    3. 出现提示时,单击添加应用程序并允许安装扩展程序。
    4. 在应用列表中打开
  • 在系统之外打开

    1. 使用快捷键 Ctrl+Alt+刷新键 进入
    2. 登录并使用
    3. 通过快捷键 Ctrl+Alt+后退键 随时返回桌面环境

crouton的代码库及官方详细说明github-crouton,有能力的朋友请直接参考这里。

crouton的下载及使用:

  1. 下载crouton并存放于 Downloads 文件夹中
  2. 参照基本的 Linux 命令工具打开 shell (注意crouton无法通过 在系统之外打开 的方式使用,推荐通过在浏览器窗口中打开的方式)
  3. 输入 cd /home/chronos/user/Downloads 进入 Downloads 文件夹中
  4. 输入 sudo sh -e ./crouton 可以查看 crouton 的帮助信息

当前版本的帮助信息如下所示:

crouton [options] -t targets
crouton [options] -f backup_tarball
crouton [options] -d -f bootstrap_tarball

Constructs a chroot for running a more standard userspace alongside Chromium OS.

If run with -f, where the tarball is a backup previously made using edit-chroot,
the chroot is restored and relevant scripts installed.

If run with -d, a bootstrap tarball is created to speed up chroot creation in
the future. You can use bootstrap tarballs generated this way by passing them
to -f the next time you create a chroot with the same architecture and release.

crouton must be run as root unless -d is specified AND fakeroot is
installed AND /tmp is mounted exec and dev.

It is highly recommended to run this from a crosh shell (Ctrl+Alt+T), not VT2.

Options:
    -a ARCH     The architecture to prepare a new chroot or bootstrap for.
                Default: autodetected for the current chroot or system.
    -b          Restore crouton scripts in PREFIX/bin, as required by the
                chroots currently installed in PREFIX/chroots.
    -d          Downloads the bootstrap tarball but does not prepare the chroot.
    -e          Encrypt the chroot with ecryptfs using a passphrase.
                If specified twice, prompt to change the encryption passphrase.
    -f TARBALL  The bootstrap or backup tarball to use, or to download to (-d).
                When using an existing tarball, -a and -r are ignored.
    -k KEYFILE  File or directory to store the (encrypted) encryption keys in.
                If unspecified, the keys will be stored in the chroot if doing a
                first encryption, or auto-detected on existing chroots.
    -m MIRROR   Mirror to use for bootstrapping and package installation.
                Default depends on the release chosen.
                Can only be specified during chroot creation and forced updates
                (-u -u). After installation, the mirror can be modified using
                the distribution's recommended way.
    -M MIRROR2  A secondary mirror, often used for security updates.
                Can only be specified alongside -m.
    -n NAME     Name of the chroot. Default is the release name.
                Cannot contain any slash (/).
    -p PREFIX   The root directory in which to install the bin and chroot
                subdirectories and data.
                Default: /usr/local, with /usr/local/chroots linked to
                /mnt/stateful_partition/crouton/chroots.
    -P PROXY    Set an HTTP proxy for the chroot; effectively sets http_proxy.
                Specify an empty string to remove a proxy when updating.
    -r RELEASE  Name of the distribution release. Default: xenial,
                or auto-detected if upgrading a chroot and -n is specified.
                Specify 'help' or 'list' to print out recognized releases.
    -t TARGETS  Comma-separated list of environment targets to install.
                Specify 'help' or 'list' to print out potential targets.
    -T TARGETFILE  Path to a custom target definition file that gets applied to
                the chroot as if it were a target in the crouton bundle.
    -u          If the chroot exists, runs the preparation step again.
                You can use this to install new targets or update old ones.
                Passing this parameter twice will force an update even if the
                specified release does not match the one already installed.
    -V          Prints the version of the installer to stdout.

Be aware that dev mode is inherently insecure, even if you have a strong
password in your chroot! Anyone can simply switch VTs and gain root access
unless you've permanently assigned a Chromium OS root password. Encrypted
chroots require you to set a Chromium OS root password, but are still only as
secure as the passphrases you assign to them.

在相关方面有基础知识或者英语还不错的朋友可以直接参照帮助信息完成 Linux 系统的安装。

对于这方面不太了解的小白,在完成上述步骤后直接执行如下命令:

sudo sh -e ./crouton -r xenial -t core

完成 Ubuntu 16.04 (xenial)基本内核的安装,安装完成后会提示输入用户名和密码,按照提示输入即可(注意,输入密码时密码是隐藏的,需要盲打)

完成上述步骤后可以通过

sudo enter-chroot

命令进入 Ubuntu 16.04 (xenial)的终端。

在进入 Ubuntu 16.04 (xenial)之后可以通过输入

logout

来退出 Ubuntu 16.04 (xenial)终端环境。

如果想要使用完整的桌面环境,接下来可以输入

sudo sh -e ./crouton -r xenial -t core,audio,cli-extra,core,touch,,x11,xorg,gtk-extra,keyboard,unity,unity-desktop -u

下载安装完整的 Ubuntu 16.04 (xenial) 桌面环境,其中unity,unity-desktop可以根据需要换成gnome,gnome-desktopkde,kde-desktoplxde,lxde-desktopxfce,xfce-desktop,分别表示不同的桌面环境(推荐使用gnome)

桌面环境安装完成后,根据所安装的桌面环境使用如下命令之一进入桌面环境:

sudo startunity
sudo startgnome
sudo startkde
sudo startlxde
sudo startxfce4

进入以后可以使用Ctrl+Alt+Shift+刷新键随时在 Ubuntu 系统中与 Chrome OS 系统间切换。