
[č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許可。