想来好久都没法博客了。我发现我潜意识里有个误区:总是感觉没什么可写,那些google上就能搜索到。
上周在写一个备份脚本,写着写着中途去捣鼓研究折腾qcow2镜像格式,结果把我的chromebook折腾的开不了机了 无奈,重置了chromeOS,装的debian也没了。趁着这次事故我升级了下我的debian,并且趁着还热呼,整理了下笔记,赶紧发篇博文。
去年暑假花了点小钱买了个三星的 chromebook 作为第二笔记本。本子是 arm 的 CPU 架构,chromeOS 系统。 当然,chromeOS对我没什么用,我就是想搞个续航长便宜的本子玩linux,随身携带。
1. crouton安装linux
1.1. crouton是什么
crouton其实就是个脚本,用于在chromebook上安装linux系统。 和普通的安装linux不同,crouton的机理有些独特,这会引起一些后果。 这些待会放到后面去说,先来看如何使用crouton安装linux。
这里是crouton项目的github,在这里你能找到crouton的下载地址: https://github.com/dnschneid/crouton
注意下载需要梯子。你可以在其它电脑下载好然后用u盘拷过去,也可以直接在chromeOS里面配置代理。
1.2. 打开开发者模式
想要运行crouton安装linux必须先打开chromeOS的开发者模式。
首先,同时按下 Refresh(最上面一排第四个)和 Esc 键,然后按电源键键,重启 Chromebook 到 Recovery 模式。
之后,当你看到屏幕上出现一个黄色的感叹号时,按 Ctrl 与 D 键,然后按 Enter(回车)键。 之后要得等一会儿,大概10分钟的时间, 你的 Chromebook 会再次重启,Developer 开发者模式就开启了。
开启后,你以后开机的时候,屏幕会出现一个红色感叹号。按 Ctrl 与 D 键就能启动至chromeOS系统了。
1.3. 打开chromeOS的shell
打开chromeOS的浏览器,同时按住ctrl和alt和t,会打开个新的页签,你会看到是个命令行窗口。 不过这还不是linux的shell。你得输入命令 shell
,回车,之后会出现:
|
|
如果你是会用linux的话,是不是感觉很熟悉? 实际上,chromeOS是基于linux的系统,系统里面运行的是linux的内核。 现在打开了这个linux的shell,当然是没有什么奇怪的了。
1.4. 安装linux
如果你是用chromeOS下载的crouton,那么这个文件应该就在~/Downloads目录下。 如果不是,是在u盘上,你也可以用文件管理器给拷到下载里面,也会出现在这个目录下。
执行命令:
|
|
这会列出所有可以用的发行版版本。像ubuntu的几个版本,debian的几个版本,kali的几个版本都是支持的。 比如我,习惯用debian,这次我安装当然是快要成为stable版本的stretch。
crouton需要用到网络,几乎肯定要涉及到梯子。 -P
参数指定代理,像这样:
|
|
这个命令会列出所有可以选择安装的组件:
|
|
这其中就包括各种桌面环境,gnome,kde,xface,lxde啥的。 像我这种GUI轻度用户,这个本子性能又很差,当然是选择最轻量级的lxde了。
最终,选择好发行版和桌面环境,配置好代理,像这样安装linux:
|
|
只见终端输入一堆提示信息显示出它正在工作,稍等一会儿,待它就绪后会让你设置一些东西,像用户名,密码什么的。 之后,你的debian stretch就安装好了!
1.5. 启动linux
像上面安装了lxde桌面环境,你在chromeOS的linux shell里面输入命令:
|
|
就能启动了,你会发现屏幕一黑,之后一个热腾腾的linux就展现在你面前啦!
当然,如果安装了其它的桌面环境,也有对应的相应命令。
如果你不想启动桌面环境,只是启动安装的linux的shell,也可以使用命令:
|
|
2. crouton备份和恢复linux
乍一看是不是觉得暂时用不到?但是请相信我,你绝对会用到它。
哈哈,折腾linux的人,总会有那么些情况把玩脱了把电脑搞挂掉
之前我在重新安装好了这个debian stretch后,玩心跳更新了个东西,结果我的debian启动不了了。。。 多亏我在把我的debian配置好后去做了备份,谈笑间,debian strech又出现在我的chromebook中了。
2.1. 备份
想备份你的系统,其实不难。一条命令就能搞定。比如我的发行版是stretch,就执行命令:
|
|
对了!你没猜错, /media/removable/SD Card/
是你储存卡的路径。 要注意空格前面的 \
,是用来转义的,不能漏掉了。
如果是用U盘的话:
|
|
其实外部的储存设备都挂载到了目录 /media/removable/
下, ls
下就知道了。
这样,你的SD卡或U盘就会出现一个很大的 stretch-backup.bak 文件,好好保存,将来恢复有用。
2.2. 恢复
恢复也很简单,也是一条命令的事。恢复需要用到 crouton
,执行命令:
|
|
指定的恢复文件是U盘里面的stretch-backup.bak。
3. crouton的原理和缺点
前面提到过,和一般的linux安装不同,crouton的机理有些独特。
相信安装之后也体验到了,电脑启动后还是chromeOS,需要通过chromeOS才能启动安装的linux。 这给人一种好像是跑在chromeOS里的系统的感觉。
实际上,crouton的原理,是基于linux下的一个软件, chroot
。
chroot,在linux系统中,它可以把linux系统的根目录(也就是 /
),切换到其它的目录。 crouton利用这一点,将chromeOS这个linux系统(chromeOS基于linux),通过chroot,将其根目录切换到指定的位置。 这个位置安装了另外一套系统的文件,像模像样,和另一个独立的linux系统似乎没什么区别了。
但是这带来了两个重要的特点,分别是:
- 安装的linux可以享受到chromeOS的驱动支持,不用担心驱动问题
- 安装的linux使用的是chromeOS的系统内核
后面一个特点意味着,有天你要在安装的linux跑个软件,但是内核又不支持相应的模块。 这种情况很有可能发生,因为chromeOS的内核裁掉了很多认为用不到的模块。 这就很尴尬了,需要你重新编译chromeOS的内核,麻烦又危险。
3.1. 不要强行更新系统不原因更新的软件包
昨天,我在安装的debian理操作,使用 apt-get upgrade
命令更新系统的软件包: 出现提示:
|
|
从提示可以看到,xorg这个包其实是有新版本的,但是呢debian却不更新它。
我就手贱了一把,强行更新 :
|
|
结果,GG,重启后,图形界面进不去了。。。 最终我还是进去命令行把资料备份出来,然后拿之前的crouton备份恢复了。哎。
4. chromeOS的重置
如果你和我一样,有天折腾的连chromeOS都开不了机了,比如,把chromeOS的内核给删了。
这种情况,chromeOS 的核都没了,还能怎么办?只能按照 google 的教程拿镜像重置了(墙外): https://support.google.com/chromebook/answer/1080595?hl=zh-Hans
步骤是这样的:
- 找一台正常的电脑,安装一个 chrome 的扩展(google 这个程序是 chrome 的一个扩展)
- 启动程序
- 选择你 chromebook 机器的型号(在 chromebook 无法启动时,会显示一个提示页面,下面有一串字符输进去就是)
- 插入一个 U 盘并选择(注意:u 盘里面的资料等会会被开启)
- 之后,这个扩展会下载相应的恢复镜像,并且将其刻到 U 盘里
- 完成后,在 chromebook 上插入 U 盘,按提示操作重置 chromeOS
注意:
- 国内的网络环境你懂的,1000%连不上 google。由于这个软件是 chrome 的扩展,因此设置 chrome 的代理即可
- 第二次使用这个软件时可能会出现(提示not unzip),这个时候卸掉扩展再装(感觉像是软件的 bug)
5. 结尾
总的来说,chromebook算是一个可玩性和实用性比较大的电脑了。 像我400多买的二手,折腾着安装了个debian, 靠着它的续航,带着它去教室里面写代码,看电子书,做笔记,这些都是非常实用的。