[Guide] - Crostini Multi Container to Debian ArchLinux Ubuntu ✅

List of available LXC live images

Crostini ArchLinux Penguin :white_check_mark:

For safety first keep the original debian penguin unchanged and just enable the #crostini-multi-container flag and add one more!

🖱️Add a Linux to your penguin sommelier first:🖱️ ## Crostini Vibes Enable and Become an LXC Expert:


Turn on the flag for multiple containers.
Go to Developers and add another container with a random name it will automatically create it with your ip.

🖱️Fix your Emulated Linux Network:🖱️

Start the terminal and grant you have access to the internet by doing sudo ping google.com if no return - then: Shut Down Crostini and start it again.


Repeat the process if needed.

  1. Start Vsh Termina
  • Press Ctrl+Alt+T to open the crosh terminal.
  • Type vsh termina.
  • If you see (termina) chronos@localhost ~ $, it means that Termina has started successfully.

Set Up the Arch Container - This installs archlinux into LXC container

  • Run the command below to install the ArchLinux container:
lxc list
lxc launch images:archlinux/current archlinux
lxc exec archlinux -- bash

#set a root password
passwd

#Install basic requirements
yes y | pacman -Syu base-devel git gtk3 openssh xdg-utils xkeyboard-config base-devel git curl make neovim wl-clipboard fish base-devel pacman-contrib wayland xorg-xwayland devtools dhclient neofetch sudo

Just rename the default user (alarm)

grep 1000:1000 /etc/passwd
groupmod -n archlinux alarm
usermod -d /home/archlinux -l archlinux -m -c archlinux alarm

passwd archlinux #Set user passwd
visudo
# ^ Uncomment the line that says:
# %wheel ALL=(ALL) NOPASSWD ALL
#(Press ESC and type :wq enter to save and exit)
usermod -aG wheel archlinux
exit

#lxc exec container su - your_username
lxc exec archlinux su - archlinux

Install YAY and Crostini Interface

git clone https://aur.archlinux.org/yay.git
cd yay
yes y | makepkg -si

yay -S cros-container-guest-tools-git
exit

Now shutdown Linux on crostini - start penguin (let it establish) then start your Archlinux 3 times.


Optional Stuff:

sudo nano /etc/pacman.conf
# ^ Optional: Update pacman config. I prefer to:
#   - uncomment #Color
#   - uncomment #VerbosePkgLists
#   - uncomment #ParallelDownloads = 5

sudo nano /etc/pacman.d/mirrorlist
# ^ Optional: Use a closer mirror. Eg, change
#   mirror.archlinuxarm.org => au.mirror.archlinuxarm.org
#
#   A full list of mirrors are in this page:
#   https://archlinuxarm.org/about/mirrors
🖱️No Network Fix:🖱️
#Check the network by running (it can't be empty) with:
ip -4 a show dev eth0
#if no connection then:
sudo dhcpcd eth0
sudo pacman -S dhclient
sudo systemctl disable systemd-networkd
sudo systemctl disable systemd-resolved
sudo unlink /etc/resolv.conf
sudo touch /etc/resolv.conf
sudo systemctl enable dhclient@eth0
sudo systemctl start dhclient@eth0

#2nd method
ip -4 a show dev eth0 #if empty type:
dhcpcd eth0
ping 8.8.8.8
pacman -Syu dhclient
systemctl enable --now dhclient@eth0

🖱️Renaming containers (only optional)🖱️
#Crosh vsh termina
lxc stop archlinux
lxc stop penguin
lxc rename penguin debian
lxc rename arch penguin
lxc stop --force archlinux

After creating it just have fun et Voilá Sudo Pacman Treé Jolie.

You can switch it to ArchLinux https://fydeos.io/docs/knowledge-base/linux-subsystem/archlinux/
Debian to Arch: https://shibumi.dev/posts/install-arch-linux-on-chromeos/
Baldrailers Github: https://gist.github.com/baldrailers/09ba52a17219ca1e8fbf233dc8a4b375/

1 Like

List of available LXC live images

Crostini Ubuntu Penguin :white_check_mark:

For safety first keep the original debian penguin unchanged and just enable the #crostini-multi-container flag and add one more!

🖱️Add a Linux to your penguin sommelier first:🖱️ ## Crostini Vibes Enable and Become an LXC Expert:


Turn on the flag for multiple containers.
Go to Developers and add another container with a random name it will automatically create it with your ip.

🖱️Fix your Emulated Linux Network:🖱️

Start the terminal and grant you have access to the internet by doing sudo ping google.com if no return - then: Shut Down Crostini and start it again.


Repeat the process if needed.

Open Crosh and lets make the LXC Ubuntu Container:

  1. Start Vsh Termina
  • Press Ctrl+Alt+T to open the crosh terminal.
  • Type vsh termina.
  • If you see (termina) chronos@localhost ~ $, it means that Termina has started successfully.

vsh termina # vmc stop termina / vmc launch termina
lxc list
# Clone your ubuntu container 
lxc launch images:ubuntu/jammy 'your_container'
lxc exec 'your_container' -- bash
#exit
#Container created! Ubuntu ready.

Install some basic stuff - Optional but I do recommend it :smiling_imp:

sudo apt update && sudo apt install git aptitude nano zenity make python3-pip python3-apt python3-debian pandoc neofetch adwaita-icon-theme-full -y 
git clone https://gitlab.com/volian/nala.git
cd nala
sudo make install
sudo nala update && sudo nala upgrade -y
cd
neofetch

#For Chrome OS use google packages instead: 
# echo "deb https://storage.googleapis.com/cros-packages bullseye main" > /etc/apt/sources.list.d/cros.list && if [ -f /dev/.cros_milestone ]; then sudo sed -i "s?packages?packages/$(cat /dev/.cros_milestone)?" /etc/apt/sources.list.d/cros.list; fi
echo "deb https://deb-mirror.fydeos.com/cros-packages bullseye main" > /etc/apt/sources.list.d/cros.list && if [ -f /dev/.cros_milestone ]; then sudo sed -i "s?packages?packages/$(cat /dev/.cros_milestone)?" /etc/apt/sources.list.d/cros.list; fi
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1397BC53640DB551
sudo apt update && sudo nala install cros-garcon cros-host-fonts cros-notificationd cros-sftp cros-sommelier bash-completion bzip2 cros-sommelier-config curl dbus-user-session dbus-x11 file fuse git gnupg iputils-ping iptables less libxss1 man-db pulseaudio udev unzip usbutils vim wget xz-utils cros-apt-config cros-logging cros-sommelier-config cros-sudo-config cros-systemd-overrides cros-wayland gtk2-engines-pixbuf libgtk2.0-0 libgtk-3-0 gtk2-engines-murrine -y && sudo nala upgrade -y
#All done here! Lets start Crostini now.

#sudo rm /etc/apt/sources.list.d/cros.list to clear anything not google/fydeos/etc.
#sudo nano /etc/apt/sources.list to clear things out.
#This is only needed if you want to replace the terminal other then add more.
#you gotta use your brain here a bit.. 
lxc list
lxc stop 'your_container'
lxc rename penguin 'something_else' #to switch by the actual one
lxc rename ubuntu penguin #that is if you only want 1 crostini penguin container instead of the debian.
#lxc stop ubuntu that is if u only created an named ubuntu lxc container and crostini
exit
exit

🖱️Quick Start of the Penguin (SEEEE THIS):🖱️

Go to your Crostini Terminal open Ubuntu it wil likely fail the first time so force its opening a few times and remember to check if it has connection once open. (What it does… it tries to establish the sommelier connections to the lxc container and it kinda… fails easily).

Also: Starting the Debian penguin first kinda fixes the connections so then you can open this new changed linux

The third time is a win.


Google Tools required: https://chromium.googlesource.com/chromiumos/containers/cros-container-guest-tools/+/master/cros-guest-tools/BUILD

🖱️cros-guest-tools:🖱️

cros-guest-tools is the main thing here (just for reference)
sudo aptitude install bash-completion bzip2 cros-apt-config cros-gpu cros-logging cros-pulse-config cros-sommelier-config cros-sudo-config cros-systemd-overrides cros-wayland curl dbus-user-session dbus-x11 file fuse git gnupg iputils-ping iptables ess libxss1 man-db pulseaudio udev unzip usbutils vim wget xz-utils -y

More info: https://linuxiumcomau.blogspot.com/2018/08/introduction-to-crostini-part-3-using.html
Alternative solution: https://github.com/jcdang/chromeos-ubuntu-sommelier
Extra info: https://blog.csdn.net/qq_37401091/article/details/127460700
Debian to Ubuntu Crostini: https://www.reddit.com/r/Crostini/wiki/howto/run-ubuntu/#wiki_install_crostini_packages
Very Good info: http://intertwingly.net/blog/2020/07/21/Ubuntu-20-04-on-Chromebook

1 Like