
[čeština] | [中文] | [ی ارسر]
이 readme를 번역하려면 당신의 도움이 필요합니다. 여기 봐!
이 프로젝트의 목적을 위해 'Pythonic'Way를 준수하는 것은 향후 목표가 아니 었으며, 구현은 Rust, C, C ++ 등으로 변경 될 수 있습니다. 가능한 한 Posix 호환 SANS-BASHISM SHELL에 가까워지고 싶습니다.
당신은 항상 Fedora Rawhide를 시도하고 싶었지만 며칠 후에 그 취약성이 당신의 신경에 빠졌습니다. 그런 다음 Fedora Silverblue Rawhide를 사용해 보았을 수도 있지만 복잡하고 느린 git와 같은 Ostree 작업은 기분이 사라졌습니다! 글쎄, 더 이상! 이제 더 많은 마음의 평화 로이 출혈 가장자리 배포판 (그리고 데비안 SID와 같은 더 많은 배포판)을 시험해 볼 수 있습니다. Ashos는 운영 체제 설치를위한 최고의 유연성을 제공합니다. 예를 들어 불변의 proxmox ve를 쉽게 설정할 수 있습니다!
Ashos는 다음과 같은 독특한 메타 분포입니다.
처음에 Arch Linux에서 영감을 얻은 Ashos는 불변의 (읽기 전용) 루트 파일 시스템을 사용하여 다른 배포판과 차별화됩니다. 소프트웨어는 개별 스냅 샷 트리로 설치 및 구성되어 배포 및 부팅 할 수 있습니다. 또 다른 패키지 형식 또는 패키지 관리자를 발명하지는 않지만 대신 Arch의 Pacman과 같은 기본 패키지 관리자에 의존합니다.
재는 세상에서 가장 오래된 나무 중 하나이며 그들은 이름 지정 아시스에 영감을주었습니다.
Ashos에는 몇 가지 키워드가 있습니다.
여기에는 몇 가지 장점이 있습니다.
보안
안정성과 신뢰성
구성 가능성
신뢰도 및 자동 업그레이드 덕분에 Ashos는 단일 사용 또는 임베디드 장치에 적합합니다.
또한 데스크탑 애플리케이션을위한 개발 컨테이너 및 Flatpak을 사용하여 우수한 워크 스테이션 또는 일반 사용 배포를 만듭니다.
중요 참고 : 먼저 가상 머신에서 ashos를 사용해보고 베어 메탈에 설치하기 전에 편안하게하십시오. Ashos Installer는 * 무자비 하며 사용자는 자신이하고있는 일을 알고 있다고 가정합니다. 디스크를 닦는대로 설치 프로그램을 실행합니다!
Ashos가 최소한의 단단하고 구조와 같은 레고와 같은 레고를 따르기 위해 (소형을 시작하고, 당신이 갈 때 커스터마이징), 우리는 주로 기본에 개발에 중점을 둡니다. 즉, 기본적으로 Desktop 환경 (창 관리자조차 설치되지 않음)이 설치됩니다. 팀이 많은 배포판에서 많은 DES를 지원 해야하는 디자인에 의한 것입니다. 제공되는 것은 profiles 입니다. DES/WMS는 스냅 샷의 전원이있는 패키지 일 뿐이므로 Ash를 사용하여 원하는 DE/WM을 설치할 수 있습니다. 예를 들어 스냅 샷 1에 그놈을 설치하려면 :
`ash clone 0` : create snapshot #1
`ash install 1 -P gnome` : install gnome in snapshot #1
`ash deploy 1`
`reboot`
./src/prep/ 의 스크립트를 실행하는 것이 매우 중요합니다 (실시간 환경 준비 및 파티션/서식) 시간이 동기화되지 않기 때문에 오류가 발생할 수 있습니다. 기본적으로 설치 프로그램은 이러한 스크립트를 호출 할 것이지만 수동으로 수행하려면 각 행에 주석을주십시오.# Fix signature invalid error ./src/prep/arch-live.sh 에서 명령을 실행하십시오. ash branch 0 # This produces node #N
ash install N --profile gnome
ash deploy N
먼저 설치 - 설치 스크립트를 다운로드 할 수 있습니다.
pacman -Sy git
복제 저장소
git clone "https://github.com/ashos/ashos"
cd ashos
파티션 및 형식 드라이브
mkfs.fat -F32 /dev/<part> )을 실행하기 전에 FAT32에 포맷해야합니다../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 실행하십시오.
ash clone 0 사용하여 base 에서 새 스냅 샷을 만들어 시작하십시오.ash chroot <snapshot> ) 내부의 chroot 및 설정 시작useradd usernamepasswd username 설정하십시오passwd root 에 대한 새 비밀번호를 설정하십시오.exit 로 chroot를 종료하십시오ash 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 편집 한 다음 Snapshot을 배포하고 재부팅하십시오. --chroot 로 우회 할 수 있습니다 (권장하지 않음).exit 로 제대로 종료해야합니다. 그렇지 않으면 변경 사항이 저장되지 않습니다.exit 있는 "깨끗한"방법을 chroot하지 않으면 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 에 위치하고 있으며 /.snapshots/var/var-0 및 /.snapshots/etc/etc-0 에 각각 위치한 특정 /var 파일 및 /etc 위치하고 있습니다. 따라서 구성 변경을 만들어야한다면 스냅 샷을 읽을 수 있습니다. 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
STEP 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 /sudoers의 선을 건너 뛸 수는 있지만, 매번 Sudo와 환경 변수를 통과하기 위해 'sudo -e ash edit'을 입력해야합니다!
/etc 에서 구성된 구성 변경을 지속적으로 저장합니다ash 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 먼저 설치하고 다시 배포해야 할 수도 있습니다. ### Review_Later
ash upgrade 사용될 때 Ash는 시스템과 함께 업데이트되지 않습니다. ash upself
파일 시스템의 다양한 부분에 대한 읽기 write 액세스 : /.snapshots/rootfs/snapshot-* : ro /.snapshots/etc/etc/etc/etc/etc/etc-* : ro /var : rw /: ro로 장착되었지만 스냅 샷 자체는 rw /usr : ro /etc : rw입니다.
그놈 및 KDE 프로파일의 경우 사용자가 기본값으로 작동하기를 원하므로 기본 로그인 관리자를 설치한다고 가정합니다. 다른 프로필의 경우 미니멀리즘에 중점을두고 TBSM을 설치합니다. 그들이 선택하면 분명히 이것을 쉽게 수정할 수 있습니다.
이전 ISO 파일을 사용하는 경우 해당 배포판의 준비 스크립트에서 FixDB 라인을 사용하지 마십시오. 그렇지 않으면 설치가 성공적으로 보이더라도 배포판에서 부팅 할 때 SYNC 패키지 관리자 DB 오류가 발생할 수있는 상황이 있습니다. 이 FixDB는 설치 프로세스의 초기 부분을 매우 느리게 만들 수 있지만 그만한 가치가있을 수 있습니다.
이것들은 일부 고급 기능이며 파손 준비, 데이터 백업 및 때때로 수정 사항을 수행 할 수있는 경우에만 사용하는 것이 좋습니다. 그들은 프라임 타임 준비가 아닐 수도 있습니다.
다른 배포판을 멀티 부팅하려면 일반적 으로이 절차를 따릅니다.
luks2를 사용한 전체 디스크 암호화가 구현됩니다. 이것은 또한 v2.06 이후 그루브의 실험적 특징 인 암호화 /부팅을 의미합니다. 현재 주류에서는 기본 Argon2가 아닌 PBKDF2 만 지원합니다. 예를 들어 Cryptomount 암호 해독은 8KB 키 파일에서 약 30 초가되므로 부팅이 크게 느려집니다. 다른 OS와 멀티 부팅을 계획하고 있다면 아직 이 기능을 사용하지 마십시오! 우리는 Grub의 기념비 개발을 면밀히 개발하고 가능한 빨리 업데이트 할 것입니다.
Ashos의 사용자 정의 가능성의 아름다움은 우리가 불변과 상상할 수없는 노드를 혼합 할 수 있다는 것입니다! Ashos의 숲/나무 내에서 스냅 샷 (기본 0 이외의)을 변동시킬 수 있습니다. 예를 들어, Node 9 Mutable Run sudo ash immen 9 만들기 위해. 이것은 노드와 모든 어린이 (나중에 생성 된)를 변동시킵니다.
sed -e 's| >/dev/null 2>&1||g' /usr/bin/ash > ashpk.py
quiet 삭제하십시오.journalctl -b 실행하고 다시보고하십시오. remove ioctl device or resource busy . 그들은 무시할 수 있습니다. 아마도 아마도 Systemd-Journald sudo chmod 666 /var/run/docker.sock
./src/profiles/ 를 살펴보고 누락 된 경우 데스크톱 환경 또는 Windows 관리자를 추가하십시오. 최소한의 바닐라를 최대한 활용하십시오. 패키지가 다른 배포판에 다른 이름을 가진 경우 (Arch의 NetworkManager 및 Debian의 Network-Manager와 같은 경우, Gnome 아래 프로파일의 배포 접미사가있는 파일을 만듭니다 : packages-arch.txt vs. packages-debian.txt# 1. 아치를 설치자에 대한 템플릿 (./src/distros/arch/)으로 사용하는 것입니다 # 6. 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 dhclient 실행하십시오.sudo python3 setup.py /dev/sdXY /dev/sdX /dev/sdXZ proxmox "Proxmox VE"postfix 의 참고 : 필요에 따라 설치시 사용자 입력이 필요한 패키지를 구성하십시오. 네트워크에 메일 서버가있는 경우 Postfix를 위성 시스템으로 구성해야합니다. 기존 메일 서버는 Proxmox VE가 보낸 이메일을 최종 수신자에게 전송하는 릴레이 호스트가됩니다. 여기에 무엇을 입력 해야할지 모르는 경우 로컬 만 선택하고 시스템 이름을 그대로 두십시오. single 전달하고 유지 보수를 위해 Enter를 누를 수 있습니다 (이 설치 프로그램에는 GUI가 필요하지 않으므로 부팅이 훨씬 빠릅니다).이 프로젝트는 AGPLV3에 따라 라이센스가 부여됩니다.