
[čeština] | [中文] | [پپا娘]
我们需要您的帮助来翻译此读数。在这里看!
请注意,出于该项目的目的,符合“ Pythonic”方式并不是一个目标,因为将来,实施可能会变成Rust,C,C ++等。我们希望尽可能接近Posix commiant-sans-bashism shell。
您一直想尝试Fedora Rawhide,但是几天后,它的脆弱性引起了您的紧张感。然后,也许您尝试了Fedora Silverblue Rawhide,但随后其复杂且缓慢的git般的Ostree操作却杀死了您的心情!好吧,不再!现在,您可以更加安心地尝试这种出血的边缘发行版(以及更多的Debian Sid等发行版)。 Ashos为安装操作系统提供了最终的灵活性,例如,您可以轻松设置不可变的proxmox ve!
Ashos是一个独特的元分布:
最初受到Arch Linux的启发,Ashos使用了一个不变的(仅读取)根文件系统将自己与其他任何发行版区分开来。软件已安装并配置到单个快照树中,然后可以将其部署并启动到。它不会发明另一种包装格式或软件包管理器,而是依靠本机软件包管理器,例如来自Arch的PACMAN。
灰烬是世界上最古老的树木之一,它们启发了命名灰烬。
在Ashos中,有几个关键字:
这有几个优势:
安全
稳定性和可靠性
可配置性
多亏了其可靠和自动升级,Ashos非常适合一次使用或嵌入式设备
它还可以利用开发容器和flatpak进行桌面应用程序良好的工作站或一般使用分配
重要说明:首先在虚拟机中尝试Ashos,并在将其安装在裸金属上之前对其进行舒适。 Ashos安装程序 *无情,它假设用户知道他们在做什么。运行安装程序按擦磁盘!
由于Ashos致力于最小的固体,并遵循乐高的结构(启动小,自定义),我们主要将开发重点放在基础上,默认情况下,没有安装没有台式机环境(甚至都不是窗口管理器)。这是通过设计,否则团队必须支持许多DES上的许多发行版。提供的是配置profiles 。由于DES/WMS只是包装,并具有快照的力量,因此可以使用ASH安装所需的DE/WM。例如,在快照1中安装侏儒1:
`ash clone 0` : create snapshot #1
`ash install 1 -P gnome` : install gnome in snapshot #1
`ash deploy 1`
`reboot`
./src/prep/中的脚本非常重要(准备实时环境以及分区/格式),否则会出现错误,因为时间不在同步等。./src/prep/arch-live.sh中的# Fix signature invalid error部分中运行命令 ash branch 0 # This produces node #N
ash install N --profile gnome
ash deploy N
首先安装git-这将允许我们下载安装脚本
pacman -Sy git
克隆存储库
git clone "https://github.com/ashos/ashos"
cd ashos
分区和格式驱动器
mkfs.fat -F32 /dev/<part> )./src/prep/ lsblk # Find your drive name
cfdisk /dev/*** # Format drive, make sure to add an EFI partition, if using BIOS leave 2M free space before first partition
mkfs.btrfs /dev/*** # Create a btrfs filesystem, don't skip this step!
运行安装程序
python3 setup.py /dev/<root_partition> /dev/<drive> [/dev/<efi part>] [distro_id] ["distro_name"]# Skip the EFI partition if installing in BIOS mode
Here are 3 example scenarios:
example 1 (BIOS): python3 setup.py /dev/vda1 /dev/vda
This is a simple case when iso from the `same distro` is used
example 2 (UEFI): python3 setup.py /dev/nvm0p2 /dev/nvm0 /dev/nvm0p1 fedora "Fedora Linux"
When installing a distro using another distro's iso, the last two arguments are necessary
example 3 (UEFI): python3 setup.py /dev/sda2 /dev/sda /dev/sda1 cachyos "CachyOS Linux"
If for any reason, there is a mismatch between what distro actually is and its /etc/os-release file, it is [usually] mandatory to pass two additional arguments. Here even though we are using CachyOS iso file (which is based on Arch Linux), by investigating in /etc/os-release file, you would see ID and NAME are same as Arch Linux. In a single boot install, it is okay to not pass the last two arguments, but if you want a multiboot system (say dual boot with Arch Linux), they are required.
方括号内的参数是可选的。关于第四个参数:说如果要使用Arch Linux ISO安装Alpine Linux,请运行python3 setup.py /dev/vda2 /dev/vda /dev/vda1 alpine 。
base使用ash clone 0ash chroot <snapshot> )内的Chroot并开始设置useradd usernamepasswd usernamepasswd root设置新密码exit退出Chrootash deploy <snapshot>部署它ash --help来获取所有可用命令的快速备忘单0是为基本系统快照保留的,无法更改,只能使用ash base-update进行更新 ash tree
root - root
├── 0 - base snapshot
└── 1 - multi-user system
└── 4 - applications
├── 6 - MATE full desktop
└── 2*- Plasma full desktop
星号显示当前选择哪些快照为默认
您也只能获得当前启动快照的数量
ash current
ash desc <snapshot> <description>
ash del <tree>
/etc/default/grub ,然后部署快照并重新启动--chrootexit中正确退出,否则不会保存所做的更改exit的方式退出“清洁”方式,建议运行ash tmp清除留下的临时文件 ash chroot <snapshot>
ash live-chroot
ash run <snapshot> <command>
ash tree-run <tree> <command>
ash clone <snapshot>
ash clone-tree <snapshot>
ash branch <snapshot-to-branch-from>
ash cbranch <snapshot>
ash ubranch <parent> <snapshot>
ash new
ash deploy <snapshot>
ash base-update
/.snapshots/rootfs/snapshot-0 with it's specific /var files and /etc being located at /.snapshots/var/var-0 and /.snapshots/etc/etc-0 respectively, therefore if you really need to make a configuration change, you can mount snapshot these as read-write and then snapshot back as read only ash deploy <snapshot>并重新启动(除非使用实时安装,以下更多信息)默认情况下不再需要。 ash install <snapshot> <package>
ash sync <tree>
ash sync <tree> -f
ash install <snapshot> -p <package> --live
ash remove <snapshot> <package or packages>
ash tree-rmpkg <tree> <pacakge or packages>
建议在更新之前克隆快照,这样您就可以在失败的情况下回滚
此更新仅更新系统软件包,以便更新ASH本身,请参阅本节
更新单个快照
ash upgrade <snapshot>
ash tree-upgrade <tree>
可以在脚本(即crontab脚本)中配置这一点,以实现简单安全的自动更新
如果系统在更新后无法引导,则可以启动最后一个工作部署(在grub菜单中选择),然后执行回滚
ash rollback
步骤0:
set $EDITOR environment variable (i.e. add 'EDITOR=nvim' line in ~/.bashrc)
reload it (i.e. source ~/.bashrc)
Add 'Defaults env_keep = "EDITOR PROMPT"' line to /etc/sudoers
ash edit <snapshot>
请注意,您可以跳过 /etc /sudoer的行,但是每次您都应该键入“ sudo -e ash edit”以通过sudo传递环境变量!
/etcash chroot进行配置,但有时您可能需要持续将更改应用于启动系统 ash etc-update
/etc来配置系统,然后保存这些更改。 os-prober软件包: ash install <snapshot> os-prober
ash chroot <snapshot>
echo 'GRUB_DISABLE_OS_PROBER=false' >> /etc/default/grub
exit
ash deploy <snapshot>
如果检测到Windows,ASH应沿着Found Windows Boot Manager on...的线路返回输出。如果您看不到Windows条目,则可能需要先安装ntfs-3g ,并重新发送。 ###评论_later
ash upgrade时,Ash不会与系统一起更新 ash upself
读取文件系统的各个部分:/.snapshots/rootfs/snapshot-by:ro /.snapshots/etc/etc/etc-gy:ro /var /var /:rw /:安装为ro,但是快照本身是rw /usr:ro /et eet:rw:rw:rw:rw
对于GNOME和KDE配置文件,我们假设用户只希望事情可以默认工作,因此我们安装了默认的登录管理器。对于任何其他个人资料,我们专注于极简主义,只需安装TBSM即可。显然,如果他们选择的话,可以很容易地修改它。
使用较旧的ISO文件时,请确保在相应的发行版的准备脚本中删除FIXDB行。否则,在某些情况下,即使安装似乎成功,您也可能会在发行版中启动时会得到同步软件包管理器DB错误。此FIXDB可以使安装过程的初始部分非常缓慢,但可能值得。
这些是一些高级功能,我们建议您仅当您准备好折断,进行数据备份和偶尔修复时才使用它们。他们可能还没有准备好。
对于多启动不同的发行版,通常遵循此过程:
实现了使用LUKS2的全盘加密。这也意味着加密 /启动,这是自v2.06以来GRUB的实验特征。现在,在主流中,它仅支持PBKDF2,而不支持默认的argon2。这将大大减慢启动,例如,在8KB钥匙文件上加密解密约为30秒。如果您打算与其他操作系统进行多启动,请不要使用此功能!我们紧密地开发了grub,并将尽快更新。
Ashos的可定制性的优点在于,我们可以混合不变和不可变的节点!在Ashos的森林/树中,可以使任何快照(基数0 )可变。例如,使节点9可变运行sudo ash immen 9 。这使一个节点和任何儿童(后来创建)可变。
sed -e 's| >/dev/null 2>&1||g' /usr/bin/ash > ashpk.py
quietjournalctl -b可能remove ioctl device or resource busy 。他们可以被忽略。最有可能的原因:Systemd-Journald sudo chmod 666 /var/run/docker.sock
./src/profiles/ ,如果缺少桌面环境或Windows Manager。请尝试尽可能最小和香草。如果包裹在不同的发行版中具有不同的名称(例如Arch中的NetworkManager和Debian的Network-Manager,请在gnome下使用profile IE创建一个文件:packages-ark.txt vs. packages-debian.txt# 1. # 6.表示),需要适应新的OS。对于Ashpk.py,将命令转换为新的软件包管理器。### YOUR_COMMENT表示ash remove <snapshot> paru ,然后继续进行其他步骤 EDITOR=nano ash edit-conf <snapshot> # set the EDITOR variable
aur::True
ash install和ash upgrade ash install <snapshots> archlinux-keyring
如果这没有解决问题,请运行:
ash refresh <snapshots>
作为最后的手段,请运行:(注意:这可能具有不希望的效果)
ash fixdb <snapshots>
ash in也会失败。要解决此问题,请运行: ash un -p grub-efi grub -s <snapshot-number>
ash in -p grub-efi -s <snapshot-number>
sudo python3 setup.py /dev/sdXY /dev/sdX /dev/sdXZ时。请耐心等待,您将在大约30秒内提示启动安装!由于某种原因,它并没有以一种很好的方式显示发生的事情,因此我放下了一个set echo off 。sudo dhclientsudo python3 setup.py /dev/sdXY /dev/sdX /dev/sdXZ proxmox "Proxmox VE"postfix :配置软件包,这些软件包需要根据您的需求输入用户输入。如果您的网络中有邮件服务器,则应将Postfix配置为卫星系统。然后,您现有的邮件服务器将成为继电器主机,将将Proxmox VE发送给最终收件人发送的电子邮件路由。如果您不知道要在此处输入什么,请仅选择本地并将系统名称保留。 single作为参数传递给Linux内核以单个模式启动,然后按Enter进行维护(由于此安装程序不需要GUI,因此启动速度要快得多)该项目已根据AGPLV3许可。