如何在2023年将fydeOS/ChromeOS自带linux子系统更改为arch?_fyde os root-程序员宅基地

技术标签: 运维  linux  

之前的教程有些已经跟不上时代了,摸索了两天,今天居然跑通了...
整理下教程和遇到的问题总结吧

文章首发于如何在2023年将fydeOS/ChromeOS自带linux子系统更改为arch? - 92的博客

前言

之前已经有人写过类似教程了。但是,随着chromeos的版本更新,过去的操作变得不再适用。目前,我们失去了一个很好的安装arch的方法。
fydeOS/ChromeOS官方提供的都是Debian,arch粉丝觉得这是某种垄断!
arch的社区安装确实是个人很喜欢的部分...从前debian系转arch系的时候觉得pacman很逆天,现在觉得ubuntu不人性...
不过说到底,初衷其实不过是在fydeOS上跑我个人认为的满血WPS...All in one真的是一个超级天才的想法

截止发稿日期,对于某些问题的解决可能算是全世界首发?也可能是我信息搜索能力有所欠缺。但这个领域也确实比较小众。

安装过程

0

我的fydeOS一休眠就会导致我打不开电脑,重启完就进不去lxc了
我当时挂着yay下载出去刷了个碗的功夫就寄了...甚至还连着电源
所以大家可以先确认自己的电脑不会自动休眠

在fydeOS上的操作还有开启linux,并且分配适当空间。

1.启动termina

按照我的理解,fydeOS/ChromeOS使用的是Crostini结构。其中,linux虚拟机、安卓与ChromeOS分属三个不同且独立的模块。对于linux,我们需要通过termina进行控制。而在crosh中打开termina就是我们需要克服的第一个难关。
关于Crostini结构的详细介绍,您可以参考在FydeOS上安装ArchLinux官方文档获得更多信息

首先,我们可以按Ctrl+Alt+T打开crosh终端。但是,在过去的教程中,如果您运行了

vmc start termina

那么您大概率会遇到vm_start问题,获得一个报错。我认为,这是ChromeOS的更新问题导致某些命令不再适用,尽管也并不能排除fydeOS官方做了什么改动。这也体现在我们无法按照archwiki上的操作直接通过vmc container添加容器。
针对前一问题,我发现可以通过运行

vmc launch termina

这时,您应该可以在终端中看到:
(termina) chronos@localhost ~ $
即termina启动成功

2.安装Arch容器

我们前面提到过,vmc container无法添加容器。这时,我们可以在termina中进行容器添加。
这里采用了12101111佬的方法,不过目前我们已经不用修改run_container.sh文件了,这位我们的安装工作省下了不小力气
不过,请您注意,您需要将“你的用户名”替换为在fydeOS系统中使用的用户名,两者必须保持一致

bash /usr/bin/run_container.sh --container_name arch --user 你的用户名 --lxd_image archlinux/current --lxd_remote https://mirrors.tuna.tsinghua.edu.cn/lxc-images/

这里,我们推荐将这一命令重复执行两遍,以应对处理先后问题产生的bug
第二次仍然会有几行报错,提示我们将用户加入wheel。这是正常现象,我们将在后面进行这一过程

3.进入arch的shell

lxc exec arch -- bash

这里的shell其实并不是用户身份登陆的,而是一个root管理

#设置密码.千万不要给root设置密码,否则ChromiumOS集成服务将无法运行,并且,这里的密码应与fydeOS保持一致
passwd 你的用户名
#把用户加入wheel组
usermod -aG wheel 你的用户名

如果添加密码时提示用户不存在,那么您需要重新执行

bash /usr/bin/run_container.sh --container_name arch --user 你的用户名 --lxd_image archlinux/current --lxd_remote https://mirrors.tuna.tsinghua.edu.cn/lxc-images/

4.基础设置与依赖安装

首先,因为众所周知的原因,在国内用arch需要设置国内源...

# 清华大学
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
## 163
Server = http://mirrors.163.com/archlinux/$repo/os/$arch
## aliyun
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch

起初我们只能用vi...个人觉得vi挺反人类的。

vi /etc/pacman.d/mirrorlist

复制上面的部分后,可以按i键选择插入,Crtl+Shift+V选择粘贴,以上部分应在官方源之前。
之后,您可以按esc键退出插入模式,再按:键输入wq保存退出

完成上面的设置后就可以pacman -Sy vim了(
之后,设置archlinuxcn源

vim /etc/pacman.conf

在最后面插入

[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

安装一些依赖

pacman -Syu archlinuxcn-keyring base-devel git gtk3 openssh xdg-utils xkeyboard-config

因为我们期望能够在fydeOS的终端应用中启动arch。因此,我们需要开启无密码sudo

visudo

删除以下行前的注释,即删除#这一字符

%wheel   ALL=(ALL:ALL) NOPASSWD: ALL

之后,我们需要退出到termina

exit

5.登陆到容器

目前,我们应该已经退回到了termina中

lxc console arch

这时arch并不会提示输入用户名,但是需要直接输入...并且输入密码不可见

然后我们可以先验证一下网络

ip -4 a show dev eth0

输出不为空则证明网络正常。否则,请执行

sudo dhcpcd eth0
sudo pacman -S dhclient
sudo systemctl disable systemd-networkd
sudo systemctl disable systemd-resolved
sudo unlink /etc/resolv.conf
sudo touch /etc/resolv.conf
sudo systemctl enable dhclient@eth0
sudo systemctl start dhclient@eth0

“登录成功后安装aur上的cros-container-guest-tools-git。由于需要从chromium.googlesource.com下载文件,因此请自行解决网络问题。注意,Android或者Chromium OS里的代理设置不会应用到虚拟机。”
这里,我们可以使用手机开启代理,并通过v*n hostpot热点分享代理网络进行下载
btw,数字佬是用了git clone的方法下载...但既然都arch了,那不妨直接yay

pacman -Sy yay
yay -Sy cros-container-guest-tools-git

wayland包和xorg-xwayland也要装一下,否则没有gui

pacman -S wayland
pacman -S xorg-xwayland

安装中的提示全部默认即可

开启对应服务

sudo systemctl enable cros-sftp
systemctl --user enable [email protected]
systemctl --user enable [email protected]
systemctl --user enable [email protected]
systemctl --user enable [email protected]
systemctl --user enable cros-garcon.service
systemctl --user start sommelier@0
systemctl --user start sommelier-x@0
systemctl --user start sommelier@1
systemctl --user start sommelier-x@1

6.替换默认容器

首先按下Ctrl+A,然后按下Q退出到termina。
为了更好的本地化运行,我们需要将arch改名为penguin

lxc stop --force arch
lxc stop --force penguin
lxc rename penguin debian
lxc rename arch penguin
lxc start penguin

然后,我们需要重新启动子系统进行更改

lxc console penguin
reboot

之后,再进入penguin

lxc console penguin
systemctl --failed
systemctl --user --failed

已检查是否系统服务均正常运行

也可以再检查一下网络

ip -4 a show dev eth0

如果返回为空,请执行

sudo dhcpcd eth0
sudo pacman -S dhclient
sudo systemctl disable systemd-networkd
sudo systemctl disable systemd-resolved
sudo unlink /etc/resolv.conf
sudo touch /etc/resolv.conf
sudo systemctl enable dhclient@eth0
sudo systemctl start dhclient@eth0

最后,如果一切正常,重启下fydeOS的系统再进终端就可以直接用arch了!

后记

Archwiki会推荐一上来先干掉自带的debian,不过这样的话就会无法通过lxc安装容器...
同时,他也提到lxc删除的容器并不彻底。而关于这个,我还没有什么太好的办法

有时会出现其他奇奇怪怪的问题...我的解决方法是remake子系统,关闭再重开那种...
有些操作可能也并非那么必要?比如用户名或者密码?不过我也没试过...懒得再折腾了

另外,之前的架构可能也并不绝对?或者说,至少在网络层面上,安卓v2rayng的代理可以作用于满血的google chrome...
这还挺反直觉的

最后,我不知道你会不会记得我最开始的初衷是在fydeOS上跑满血WPS,就是能用wps云的国内版本
但是,我在尝试将这个版本部署到fydeOS上时遇到了一些问题...在这个系统上遇到谁也没见过的问题再正常不过了,继续对自己的操作debug更是一种痛苦
不过,yay安装的方式相较sudo本质上或许更加温和,似乎可以规避wps的登录黑洞
因此,我真的安装了一个满血的arch,不是manjaro...但是,wps确实跑通了,赞美arch,赞美金山
除此之外,fydeOS的启动选择界面支持读取了我安装的所有系统,并且有很漂亮的图标,包括后面安装的arch...
这一点狠狠的赞美

但是:
我一开始只是想用一个简洁省电的系统来着...之前不知道在哪看到有人现身说法arch比win省电,装了“臃肿的”manjaro一个多小时电池就寄了,但win能跑一天,不知道arch会怎么样
所以fydeOS可能没用了?或许吧(
本质上我还是非常喜欢这个系统的来着...但是,当arch子系统的安装失去必要性(没法装wps满血),那么我或许会用回省心省事的debian?
不过这样一来主流linux发行版似乎都尝试过了...
目前在日常使用方面,个人感觉还是arch+gnome的观感更好
不过,或许用于服务器的系统不会这样?arch感觉更受发烧友的喜爱,但还是难以撼动老大哥们的江湖地位(
以后,如果win寄了,我大概还是会更倾向于arch而不是fydeOS。毕竟fydeOS相较完整成熟的系统还有很长的路要走,希望“国产系统”不会成为一个营销或者骗经费的幌子
不过如果那一天真的来了,或许我这种电脑水平仅限于装系统的乐色就业就解决了?

参考资料

在FydeOS上安装ArchLinux
Chrome OS devices/Crostini-wiki.archlinuxcn
arch添加国内源以及社区源

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Dr39276/article/details/134679403

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文