原创:Linux中国 https://linux.cn/article-3104-1.html
原创:LCTT https://linux.cn/article-3104-1.html
译者: shipsw
(译注:本文译自Ubuntu官方维基)
Ubuntu 双系统安装器是作为技术预览版本发布给开发者的,可以使得开发者同时在一台手机上安装 Ubuntu 系统和 Android 系统。该软件现阶段或最终的目标用户并非普通用户。开发者应该熟悉 Ubuntu 和 Android 系统的分区布局并且在出现问题的时候有能力手动刷回分区。
Ubuntu 双系统安装器是一些工程师花了一点时间内做出的一个内部臭鼬项目(译注:管理层不知的研究项目)。由于项目进展良好,所以决定向开发者社区发布预览版以供大家测试、学习或者完善。
双系统启动不是常规 Ubuntu 发布版本中的一部分。
安装双系统启动,你需要:
为了连接手机并刷机,在电脑桌面上依照以下几步操作。
设置Touch开发者预览工具(Touch Developer Preview Tools)的 PPA
这些 PPA 是一个迷你库,其中包含安装过程中需要的一些额外软件。以下描述如何去启用和使用它。
这些 PPA 的包含工具和依赖库支持各个 Ubuntu 发行版,包括 12.04, 12.10, 13.04, 13.10 和 14.04等。 将以下的源地址列表加入 /etc/apt/sources.list 文件中来添加 Ubuntu Touch PPA。
在你的机器上按 Ctrl+Alt+T 开启终端窗口,运行以下命令。
sudo add-apt-repository ppa:phablet-team/tools
在 Ubuntu 12.04系统上,还需要运行以下命令:
sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
然后运行:
sudo apt-get update sudo apt-get install ubuntu-device-flash
在你的电脑上执行(译注:自然这是在Linux下,如Ubuntu里面执行的)
$ adb backup -apk -shared -all
这样就将你的操作系统、应用程序和所有的数据备份为 backup.ab 文件了。以后在重新刷回 android 系统(或root、解锁等)的时候可以使用 $ adb restore backup.ab 命令恢复你所有的数据。
如果手机已经解锁,那么跳过步骤 3。以下几步将擦除手机上所有的个人数据。
恢复手机出厂设置
如果解锁 bootloader 后不断重启的话... 可以使用以下方法解决:
按照以下步骤初始化手机
最新版的 Nexus 10s 开启开发者模式后并没有完全启动。如果是这种情况的话,启动到 bootloader 后运行 "fastboot -w" 然后进入下一步。
双系统新安装和升级在这部分过程实际上是相同的。
注意:如果手机中有一个以前版本的 Ubuntu 双启动,更新前请首先使用 Android 应用程序卸载掉 Ubuntu 系统。推荐保存用户数据,只卸载掉基本的系统。
运行以下命令赋予安装脚本可执行权限。
chmod +x dualboot.sh
保证你的手机
使用 USB 数据线连接手机和电脑
在终端里运行以下命令安装双系统启动:
./dualboot.sh
安装完成后,手机会重启数次。完成后,系统会启动到 Android 系统,你可以在手机的应用程序里面找到双启动应用程序 (“Ubuntu Dual Boot”) 。
或者,可以使用安装脚本的另一个替代方法,可以参考安装手册 >。
现在按照以下说明在 Android 下安装 Ubuntu。
注意:Ubuntu 安装需要手机上具有2.7GB以上的剩余内存空间。
如果需要,也可以在手机和电脑USB连接状态下,终端运行以下命令来释放空间。(接受手机上的授权询问)
adb shell "su sh rm -rf /cache/*"
在手机上,点击 apps 按钮打开 app 列表
查看列表找到 Ubuntu Dual Boot 图标并启动它
应用程序启动后按 Choose channel to install 并选择一个频道下载(推荐 utopic 频道),请确保您勾选了“bootstrap”选项
下载完成后需要授权 SU 权限给应用程序。提示授权的时候,选择 Grant 按钮
按 Reboot to Ubuntu 按钮重启手机进入Ubuntu
标准手机重启过程后会启动到Android系统中
注意:
根据双启动的经验:
这实际上意味着可以有两种不同的方式更新 Ubuntu 镜像(译注:此处与前文不一致,究竟是否可在Ubuntu下更新,译者没有做过实验,可能已经支持了。):
要升级 Ubuntu 到最新版本,在 android 下的 Ubuntu 双启动应用程序中,卸载 Ubuntu 后,可以按照同样的安装步骤去下载新版本的 Ubuntu。
大多数情况下,不带参数运行自动模式安装脚本就足够了。
dualboot.sh
dualboot.sh full
dualboot.sh update
dualboot.sh channel $CHANNEL
dualboot.sh push ubuntu.tar.xz device.tar.xz version.tar.xz
多个手机同时连到电脑上的时候,脚本还提供指定手机ID 的参数。手机ID为脚本的第一个参数。如果不指定手机ID的话,默认为第一个连接的手机。
dualboot.sh <device-id> channel devel-customized
如果你的手机不在官方支持列表中,需要使用第三方移植镜像服务器,你可以将自定义镜像服务器地址作为参数来使用双启动应用程序。这么办的话,打开终端,连接手机到电脑,运行以下命令(替换 $CUSTOM_SERVER_URL 为自定义服务器地址):
adb shell "su sh 'cd /data/data/com.canonical.ubuntu.installer/files/ && echo $CUSTOM_SERVER_URL > custom_server && chmod 777 custom_server'"
下次启动双启动应用程序的时候,默认将使用自定义服务器地址而不是官方地址了。
如果出现问题,安装双启动后无法进入 Android 和 Ubuntu 系统的话,你可以使用原始启动和恢复镜像恢复手机到最初状态。只有 recovery 分区被双启动修改了,当然你可以刷回原有的启动分区。
运行以下命令以重启手机到 bootloader
adb reboot bootloader
进入 bootloader 后,运行以下命令刷回启动分区:
fastboot flash boot boot.img
不要退出 bootloader ,运行以下命令刷回 recovery 分区:
fastboot flash recovery recovery.img
刷机完毕后,重启你的手机应该就可以进入 Android 系统了:
fastboot reboot
双启动项目和其他 Ubuntu 项目一样都是开源的,你可以参与此项目,使得他更加完美!
基于 Android 的手机有一系列不同用途的分区。这些分区包括 /boot, /recovery, /system 和 /data 等。
Ubuntu 以稍微不同的方式使用这些分区
为了保证用户可以返回 Android 原来的系统,Android 系统的启动镜像是不允许修改的,因为原始内核必须保存。所以使用 recovery 分区去启动Ubuntu
双启动通过测试可以运行在以下手机中:
双启动支持的所有手机平板刷机工具(phablet-flash)支持的系统。
用户数据分区也放在 Ubuntu 系统镜像 /data/system.img, 大约有2GB。
Ubuntu swap 文件在用户数据分区 /data/SWAP.img (大约540MB)。
Ubuntu 的用户和系统数据也可以在以下目录找到:
Android 数据分区的使用方式不变。
安装双启动后,recovery 分区被 Ubuntu 启动镜像占用。这意味着启动到 recovery 模式下,就启动了Ubuntu 。
使用 recovery 的功能会在未来发布。不过当卸载掉 Ubuntu 镜像后,Ubuntu Install 应用会恢复原始的 recovery 分区(普通的 Android 或 CWM)。
可以,使用双启动应用程序中的 "准备更新安卓" 选项。这会将原始 Android recovery 分区恢复,为 Android 系统更新做准备。这显然会删除 recovery 分区中安装的 Ubuntu 系统,但是使用双系统应用程序可以在 Android 系统更新后很容易重新安装。
任何情况下,你都可以卸载双启动并恢复原始的 recovery 分区。
可以,使用 Android 版本双启动应用程序卸载 Ubuntu 后,原有的 recovery 分区数据会恢复到安装前的状态。
卸载 Ubuntu 的同时也会删除 Ubuntu 系统镜像和交换文件。如果需要,Ubuntu 用户数据也可以被删除。
当然可以了!提供的 超级用户 应用只是为了那些没有安装它的用户的。
然而,需要注意一点:项目测试中只测试使用了来自 CyanogenMod 版本或者 dualboot.sh 脚本安装的超级用户应用。但是只要你使用和测试中用的类似的应用的话,一般也不会有问题的。
可以,但是有些东西没有测试过,所以有些应用也许无法正常工作。这个问题也存在于切换版本的情况。
目前为止交换默认启动操作系统是不可行的。但是如果有需求的话我们会想办法支持的。
最开始设计双启动的时候原则就是不和某个特定版本和类型的 Android 系统捆绑,留给用户自己选择的权利。所以就没有改动 Android 启动镜像和内核。
最后我们选择利用 recovery 分区启动 Ubuntu,并在需要的时候就恢复到其原始状态。
绝对可以,我们提供的 dualboot.sh 是为了使得安装应用和 recovery 更容易。如果你想手动安装recovery 也是可以的。参看 dualboot.sh 脚本的源码来操作。
Ubuntu 安装器需要安装为 Android (预置的)系统应用。 和用户安装在用户分区的应用不一样,系统应用始终活动在系统分区中,保证可以获取第三方软件可以获取的的最高的权限。
其实 Ubuntu 安装器需要获取的权限只有两个:缓存分区写入权限,用来下载 Ubuntu 安装文件;和电源管理,用来重启系统。