[Guide] OpenFydeOS - Crostini Multi Container to Debian ArchLinux Ubuntu 🐧

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.

🖱️Grant connection to your Linux container:🖱️

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.
6ab4158e696fc7a2a96f245bee273dc8a9d39091_2_690x227
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 ubuntu:jammy ubuntu -c security.privileged=true
lxc exec ubuntu -- bash
# lxc stop / lxc delete / lxc start / lxc console
passwd #set a root password
🖱️User Optional:🖱️
sudo su root
sudo passwd root #set user root password

sudo adduser #newuser
sudo usermod -aG sudo #newuser
#sudo apt install nano
sudo visudo
#newuser ALL=(ALL:ALL) ALL
su #newuser

sudo sed -i 's/^# \(%wheel ALL=(ALL:ALL) ALL\)/\1/; s/^# \(%wheel ALL=(ALL:ALL) NOPASSWD: ALL\)/\1/' /etc/sudoers

Install Google Cros-Packages.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1397BC53640DB551
sudo apt update && sudo apt install nala git cabextract aptitude nano zenity screenfetch make python3-pip python3-apt python3-debian pandoc neofetch network-manager isc-dhcp-client isc-dhcp-server adwaita-icon-theme-full -y && screenfetch && lsb_release -a

#For ChromeOS use google packages instead: 
echo "deb https://storage.googleapis.com/cros-packages bookworm 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
#I think both can co-exist
#For FydeOS use fyde packages instead:
echo "deb https://deb-mirror.fydeos.com/cros-packages bookworm 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 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.
🖱️Repo's bandage solution:🖱️
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.
cd /etc/apt/sources.list.d/ to see whats going on.

#Crosh - Browser Ctrl Alt T, type: shell
vmc container termina ubuntu --privileged true


🖱️Quick Start of the Penguin (Understand 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.


🖱️Network Fix (Most likely needed):🖱️
systemctl --user restart cros-garcon.service
systemctl --user restart sommelier{,-x}@{0,1}.service
#sudo apt install dhcpcd -y # or dhcpcd5
#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 dhclient
sudo systemctl disable systemd-resolved
sudo unlink /etc/resolv.conf
sudo touch /etc/resolv.conf
sudo systemctl restart networking
sudo /etc/init.d/networking restart
sudo ping 8.8.8.8
sudo sysctl -p
systemctl --user daemon-reload

🖱️Renaming containers (only optional)🖱️
#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_containers'
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 restart penguin
#lxc stop ubuntu that is if u only created an named ubuntu lxc container and crostini
exit
exit

🖱️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


🖱️Links for reference:🖱️

More info: linuxium.com.au: Introduction to Crostini - Part 3: Using Ubuntu by default
Alternative solution: GitHub - jcdang/chromeos-ubuntu-sommelier: Short and simple guide to get X11 apps on ChromeOS
Extra info: chromeOS创建多个Crostini容器_chromeos crosh-CSDN博客
Debian to Ubuntu Crostini: https://www.reddit.com/r/Crostini/wiki/howto/run-ubuntu/#wiki_install_crostini_packages
Very Good info: Ubuntu 20.04 on Chromebook
Container privilege options: LXC 1.0: Unprivileged containers [7/10] | Stéphane Graber's website


1 Like