Arch linux下把chromeOS安装至btrfs子卷

news/2024/11/27 15:39:19/文章来源:https://www.cnblogs.com/yangchangan/p/18572448

旧的ChromeOS单独划分一个ext4分区安装,划分的是ChromeOS可用的最大空间,当存储未用满时,这个ChromeOS独占的分区就有很大的浪费。最近Brunch的作者发布了linux安装工具Linuxloops,可以把ChromeOS安装到Btrfs子卷。Linuxloops采用了图形安装界面,不需要提前下载Brunch及ChromeOS镜像。以下为结合官方教程整理的实操安装过程。

0,软硬件要求

  • 基于 x86_64 的计算机,支持 UEFI 引导。
  • 拥有 root 权限。
  • home 目录中至少有 8 GB 的可用空间。
  • 未加密的btrfs分区,具有 14 GB 的可用空间。
  • 使用 GRUB 引导。

1,安装前准备

a,在Btrfs分区中创建@chromeos子卷,并挂载

  • 列出各分区确认:
    # lsblk-e7
  • 挂载需要安装的Btrfs分区(我的Btrfs分区是/dev/nvme0n1p2,各位按实际修改):
    # sudo mount -t btrfs -o compress=lzo /dev/nvme0n1p2 /mnt
  • 创建子卷,命名为@chromeos
    # sudo btrfs subvol create /mnt/@chromeos
  • 取消子卷写时复制属性(结合自己情况修改):
    # sudo chattr +C /mnt/@chromeos
  • 检查子卷,确认没问题,然后umount
    # sudo btrfs subvolume list / -t
    # sudo umount /mnt
  • 在用户文件夹下创建chromeos文件夹, 我放在/home/用户名/chromeos下,安装后可卸载,路径可随意。并挂载@chromeos子卷(我的Btrfs分区是/dev/nvme0n1p2,各位按实际修改):
    # sudo mount -o noatime,nodiratime,ssd,compress=lzo,subvol=@chromeos /dev/nvme0n1p2 /home/用户名/chromeos
  • 完成子卷准备后往下继续。

b,根据 CPU 类型选择合适的ChromeOS恢复镜像:(只需确认代号,不用下载)

  • AMD CPU
    Ryzen 系列:选择 "gumboz"。
  • Intel CPU
    第 8 代 & 第 9 代:选择 "shyvana"(适用于 Intel Core 系列)或 "bobba"(适用于 Celeron)。
    第 10 代:选择 "jinlon"。
    第 11 代及以上:选择 "voxel"。

c,安装 PyQtWebEngine 包

# sudo pacman -Syu python-pyqt6-webengine

d,下载linuxloops

# curl -L https://raw.githubusercontent.com/sebanc/linuxloops/main/linuxloops -O --create-dirs --output-dir ~/bin

e,运行linuxloops,启动图形安装界面:

# bash /home/用户名/bin/linuxloops

2,以下就是图形界面安装:

a,选择Brunch, 然后点next. (linuxloops还可以安装其他的linux发行版。不用提前下载,可直接安装过程下载最新版本,可以用来尝鲜各大发行版。)

image
image

b,这里选择第1步中的ChromeOS版本代号,我的电脑是AMD的U,选择Gumboz。

image

c,我是安装成一个img,然后放在Btrfs子卷中,所以选择image,如果安装到整个硬盘的选disk。然后下一步。

image

d,点选Create image file,然后在弹出窗口找到上面创建的子卷挂载的目录/home/用户名/chromeos,保存就行,img名字可以改成你喜欢的。

image

e,这一步选择img镜像大小,可以根据自己硬盘情况选择,不必像单独分一个ext4分区还要权衡跟其他盘的容量。img镜像文件按实际占用空间的,也就是即便选择分了150G的空间给chromeos,安装后也是按实际已使用的容量显示在整个硬盘。充分利用Btrfs的特性。这也是本次重装ChromeOS的主要原因。

image

f,按下一步就会下载镜像和安装一步到位,安装完后会弹出的对话框不要着急关闭,上面给了一行代码,直接修改grub启动文件并更新grub,不用再去自己敲代码。

sudo cat /etc/grub.d/40_custom /home/用户名/chromeos/Brunch.img.grub.txt | sudo tee /etc/grub.d/99_linuxloops_brunch; sudo chmod 0755 /etc/grub.d/99_linuxloops_brunch; sudo grub-mkconfig -o /boot/grub/grub.cfg
image

3,大功告成,可以重启进去grub菜单中选择Brunch或者ChromeOS启动了,本文完毕。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/842322.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ZW3DC++调用C#的DLL

C#: using System;using System.Collections.Generic;using System.Text; namespace TestWinform{ public class Class1 {public void openForm() { Form1 form = new Form1(); form.ShowDialog(); }}}C++: #using "C:\\Test…

Windows 10应用商店找回方法

应用商店(Microsoft Store)作为Windows 10系统的重要的组成部分,为用户提供了一个便捷的平台来浏览、下载和安装各类应用程序。 通过Windows PowerShell重新安装应用商店 1:以管理员身份运行Windows PowerShell在Windows 10的任务栏搜索框中输入“Windows PowerShell”。 右…

超详细!Apache Maven下载安装使用教程

前言 在当今的软件开发领域,尤其是基于 Java 平台的项目开发过程中,拥有一款高效、便捷的项目管理工具至关重要。本篇文章将聚焦于在 Windows 10 系统下,为大家详细介绍 Apache Maven 的下载与安装教程,帮助大家轻松上手这款功能强大的工具,更好地管理和构建 Java 项目。 …

新兴数据仓库设计与实践手册:从分层架构到实际应用(三)

本手册将分为三部分发布,以帮助读者逐步深入理解数据仓库的设计与实践。第一部分介绍数据仓库的整体架构概述; 第二部分深入讨论ETL在数仓中的应用理论,ODS层的具体实现与应用; 第三部分将围绕DW数据仓库层、ADS层和数据仓库的整体趋势展开;通过这样的结构,您可以系统地学…

电平标准

一.常见的电平标准有TTL电平标准,RS485电平标准,RS232电平标准 一.TTL电平标准: 逻辑高(1):通常在2.7V以上,典型值为3.3V或5V. 逻辑低(0):通常在0.8V以下,典型值为0V. 二.RS232电平标准: 逻辑高(1):+3V到+15V. 逻辑低(0):-3V到-15V. 三.RS485电平标准: 逻辑高(1…

BUCK变换器功率级分析

1.BUCK变换器 1.1 概述 BUCK变换器(以下简称“BUCK”),其中文名为“非隔离降压式变换器”,它是“三大基本开关拓扑结构”之一,总体来说,正激、推挽、半桥、全桥拓扑都是BUCK的衍生拓扑“相当于BUCK的隔离版本”,BUCK变换器在非隔离功率变换、级联式开关变换器中具有广泛…

synctv在线一起看电影的web应用

可实现多人观看电影,直播 ​​拉取镜像:docker pull synctvorg/synctv:latest一键运行命令:docker run -d --name synctv -p 8080:8080-e PGID=0-e PUID=0-e TZ=Asia/Shanghai-v /vol1/1000/docker/Configs/synctv:/root/.synctv synctvorg/synctv:latest用户名 root 密码 r…

SQLSERVER——XML转数据表输出(E10的PickList转成数据表)

-- 声明 XML 变量并加载 XML 数据 DECLARE @XML AS XML; SET @XML= N<PickListType> <Name>UDF_COLLECTION_TJ</Name> <DisplayName>收款条件</DisplayName> <Items> <PickListItem> <Id>合同签订</I…

真正的高效神器!这款工具让办公不再受限于时间和空间!

碎片化时代的办公难题:你的工作为什么越来越难? 在信息高度碎片化的今天,办公场景已经发生了巨大的变化: 多设备切换频繁:你可能上午在电脑上处理报告,下午在会议室用平板展示方案,晚上回家用手机跟进工作进度。 随时随地的协作需求:远程会议、跨部门沟通、即时反馈,让…

Nuxt.js 应用中的 webpack:progress 事件钩子

title: Nuxt.js 应用中的 webpack:progress 事件钩子 date: 2024/11/27 updated: 2024/11/27 author: cmdragon excerpt: webpack:progress 钩子用于监听 Webpack 在构建过程中的进度更新。这是一个非常有用的特性,特别是在构建大型应用时,可以给开发者实时反馈,以便他们…

从行为到效果:医药营销数字化的关键转型之路

随着医药行业竞争的加剧和监管政策的日趋严格,数字化转型已成为企业谋求突破的重要方式。特别是在医药营销中,如何通过数字化手段提升销售行为的规范性和营销效果的精准性,成为行业关注的焦点。 聚焦医药营销数字化转型的核心问题,从销售行为优化到效果管理,探讨企业在转型…

为什么Profiler中看到的纹理内存比实际占用大

1)为什么Profiler中看到的纹理内存比实际占用大2)为什么Hidden Shader占用两份内存开销3)在Destroy前,需要把所有Texture引用都释放掉吗4)ManagedHeap.UsedSize占用内存过大问题这是第411篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术…