Installation of AOSC OS on x86-64 systems/environments are generally universal for all systems of this architectures. But for some specific device configurations and virtualized environments, here below are some extra notes:
- Any commands listed below starting with a
#means that the commands are run as the
Choosing a Tarball§
All AMD64/x86-64 tarballs are generic (universal for all supported devices), the only thing you would have to do here is choosing your favourite one - appropriate for your taste and your use case.
Preparing an Installation Environment§
It is impossible to install AOSC OS without a working Live environment or an installed copy of Linux distribution on your local storage. Live disc images are not yet available for AOSC OS
For installing AOSC OS, we recommend that you use GParted Live, dumped to your USB flash drive - and our guide will assume that you are using GParted Live.
Warning: Be sure that you downloaded the amd64 version, or else you won't be able to enter AOSC OS chroot environment!
Note: You may not be able to connect to network when using VMware.
# dd if=nameofimage.iso of=/dev/sdX bs=4M
nameofimage.isois the filename of your downloaded GParted Live ISO file.
/dev/sdXis the device file for your USB flash disk.
After you are done, boot to GParted Live.
On AMD64/x86-64, AOSC OS supports GUID (EFI) or MBR (traditional BIOS) partition tables - if you plan on multi-booting AOSC OS with other Linux distributions, Microsoft Windows, or Apple macOS, they generally uses GUID on newer machines, and MBR on older ones.
It is relatively easy to use GParted, provided with GParted Live to configure your partitions. For more details on how to configure your partition with GParted, please refer to the GParted Manual.
- If you plan on installing AOSC OS across multiple partitions, please make sure you created a
/etc/fstabfile before you reboot to AOSC OS - details discussed later.
- If you plan on using the ESP (EFI System Partition) as your
/bootpartition, extra actions may be needed when updating the Linux Kernel - details discussed later.
WARNING：please check the file permisson after untarring the tarball，if not, the following installation may fail. Right permission should be something like this：(the owner in the list should be root:root）
# ls -l total 60K lrwxrwxrwx 1 root root 7 Apr 5 05:31 bin -> usr/bin/ drwxr-xr-x 4 root root 4.0K Apr 5 05:38 boot/ drwxr-xr-x 3 root root 4.0K Apr 5 05:31 dev/ drwxr-xr-x 74 root root 4.0K Apr 5 05:35 etc/ drwxr-xr-x 2 root root 4.0K Apr 5 05:31 home/ lrwxrwxrwx 1 root root 7 Apr 5 05:31 lib -> usr/lib/ lrwxrwxrwx 1 root root 7 Apr 5 05:31 lib64 -> usr/lib/ drwxr-xr-x 4 root root 4.0K Apr 5 05:31 media/ drwxr-xr-x 2 root root 4.0K Apr 5 05:31 mnt/ drwxr-xr-x 2 root root 4.0K Apr 5 05:31 opt/ drwxr-xr-x 2 root root 4.0K Apr 5 05:31 proc/ drwxr-x--- 2 root root 4.0K Apr 5 05:38 root/ drwxr-xr-x 7 root root 4.0K Apr 5 05:32 run/ lrwxrwxrwx 1 root root 7 Apr 5 05:31 sbin -> usr/bin/ drwxr-xr-x 2 root root 4.0K Apr 5 05:31 srv/ drwxr-xr-x 2 root root 4.0K Apr 5 05:31 sys/ drwxrwxrwt 2 root root 4.0K Apr 5 05:31 tmp/ drwxr-xr-x 9 root root 4.0K Apr 5 05:31 usr/ drwxr-xr-x 13 root root 4.0K Apr 5 05:35 var/
With partitions configured, you are now ready to unpack the AOSC OS system tarball you have downloaded. Before you start un-tar-ing your tarball, mount your system partition(s) first. Say, if you wanted to install AOSC OS on partition
# mount -v /dev/sda2 /mnt
Additionally, say, if you have
# mkdir -v /mnt/home # mount -b /dev/sda3 /mnt/home
And now, un-tar the tarball:
# cd /mnt # tar --numeric-owner -pxvf /path/to/tarball/tarball.tar.xz
- When executing un-tar, be sure to use the root user to execute.
- If you want to have full-disk encryption with
LUKSbefore installation, configure it here. Refer to this article for details. Mount the mapped
luks-*virtual partition instead of bare
Here below are some extra steps before you configure your bootloader - strongly recommended to avoid potential issues later.
If you have chosen to use multi-partition layout for your AOSC OS installation, you will need to configure your
/etc/fstab file, one fast way to achieve this is
# /mnt/usr/bin/genfstab -U -p /mnt >> /mnt/etc/fstab
Bind mount system/pseudo directories and Chroot§
Enter AOSC OS chroot environment:
# /mnt/usr/bin/arch-chroot /mnt /bin/bash
If you failed to enter chroot, you have probably not downloaded the amd64 version (gosh, we got it in bold as well...).
Note: Commands in all sections below are executed from chroot.
Update, Your, System!§
New tarball releases comes out roughly each season (or longer depending on developers' availability), and it is generally a wise choice to update your system first - just to get rid of some old bugs since the tarball's release:
# apt update # apt full-upgrade
Initialization RAM Disk§
Use the following command to create initialization RAM disk for AOSC OS.
Now you should be able to configure your bootloader, we will use GRUB for the purpose of this installation guide. Installation of GRUB differs for EFI and BIOS systems, and thus they will be separated to two sections.
Note: You would need GRUB 2.02 (
2:2.0.2) to support NVMe-based storage devices as boot drives.
Note: All commands below are run from within chroot.
To install GRUB for EFI systems, mount your ESP partition, generally
/efi (change device name if appropriate):
# mount /dev/sda1 /efi
Then, install GRUB to the partition, and generate a GRUB configuration:
# grub-install --target=x86_64-efi --bootloader-id="AOSC OS" --efi-directory=/efi # grub-mkconfig -o /boot/grub/grub.cfg
For some Bay Trail devices, you might need to install for
i386-efi target instead - do not use the following command unless you are sure about what you are doing:
# grub-install --target=i386-efi --bootloader-id="AOSC OS" --efi-directory=/efi # grub-mkconfig -o /boot/grub/grub.cfg
Installation and configuration of GRUB is straight forward on BIOS systems, only thing to look out for is where the MBR for your hard drive(s) are. In our example, we assume that your MBR is located on
/dev/sda, but it may vary, but in most cases, MBR is located on the hard drive, but not on a partition.
# grub-install --target=i386-pc /dev/sda # grub-mkconfig -o /boot/grub/grub.cfg
User, and Post-installation Configuration§
All tarballs do not come with a default user and
root user is disabled, you would have to create your own account before you reboot into AOSC OS - while leaving the password empty for the
root user - you can always use
sudo for your superuser needs.
Add a user§
To add a new user, (
aosc as an example), use the
# useradd -m -s /bin/bash aosc
Make sure that your username contains only lower-cased letters and numbers.
And add additional groups to the user (audio, cdrom, video, wheel should get you started just fine):
# usermod -a -G audio,cdrom,video,wheel aosc
Setting full name for your user§
To set a full name for your user (also using
aosc as an example, replace "AOSC User" with your desired name:
# chfn -f "AOSC User" aosc
Although it is not required to protect the newly created user
aosc with a password, it is highly recommend to do so:
# passwd aosc
Although strongly discouraged, you can enable the
root user by setting a password for
# passwd root
Note: Decent Linux users need not the root user.
Setting System Timezone§
Timezone info are stored in
# ln -svf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Setting System Language§
AOSC OS enables all languages with UTF-8 encoding by default. In rare cases where you (really) want to disable some languages or enable non UTF-8 encodings, edit
/etc/locale.gen as needed and execute
locale-gen as root (which might take a long time).
To set default language for all users, edit
/etc/locale.conf. For example, to set system lanaguage to Chinese Simplified (China):
Notes: After you rebooted the computer into the new system, you may use the
localectlcommand to do this:
# localectl set-locale "LANG=zh_CN.UTF-8"
Setting System Hostname§
To set a hostname for the system, edit
/etc/hostname. For example, to set the hostname to be MyNewComputer:
Notes: After you rebooted the computer into the new system, you may use the
hostnamectlcommand to do this:
# hostnamectl set-hostname yourhostname