r/Crostini 3h ago

News How to create a bootable USB on an old Chromebook (ChromeOS 93 or older)

1 Upvotes

If you have an older Chromebook and can’t use Chrome extensions like **Chromebook Recovery Utility** to create a bootable USB (for example, to install **MrChromebox**), you can use **Crosh** instead, as long as you have access to shell (such as in Developer Mode).

**Steps**
Press **Ctrl + Alt + T** to open Crosh.
2. Type:

shell

Plug in your USB drive.
Find your USB device:

lsblk

Write the ISO to the USB drive:

sudo dd if=/path/to/your.iso of=/dev/sdX bs=4M status=progress oflag=sync

Replace **/dev/sdX** with your USB device (for example, **/dev/sdb**).

**Important:** Do **not** use a partition such as **/dev/sdb1**. Use the entire device (/dev/sdb), as this command will erase everything on the USB drive.
I hope this helps! If you have any questions, problems, or suggestions, feel free to leave a comment.


r/Crostini 1d ago

Steam Library on Android SMB Share in Crostini – Research Summary !!! (store steam library on another device : phone/nas/pc)

Thumbnail
gallery
1 Upvotes

Device

  • ASUS Chromebook C223 (Coral/BABYMEGA)
  • ChromeOS 144 LTS
  • Crostini (Debian 12)
  • Intel Celeron N3350
  • 4 GB RAM
  • 32 GB eMMC

Goal

Use a rooted Android phone running Samba (SMB) as a Steam library to avoid storing games on the Chromebook's limited internal storage.

What Worked ✅

Android Samba

  • Installed Samba in Termux.
  • Ran smbd successfully as root.
  • SMB share accessible over Wi-Fi.

Network

  • smbclient works.
  • Can browse shares.
  • Can read/write/delete files.

Mount Methods Tested

Method 1

Android SMB → smbnetfs → Crostini → Steam

  • Mount successful.
  • Steam can browse folders.

Method 2

Android SMB → ChromeOS native SMB mount (/mnt/chromeos/SMB) → Crostini → Steam

  • Mount successful.
  • Steam can browse folders.

Both methods expose the files correctly.

What Failed ❌

Steam refuses to create or use a library on either mount.

Permission tests show:

chmod +x file

returns either:

Input/output error

or

Operation not supported

Filesystem reports as:

fuseblk

instead of a native Linux filesystem (ext4/cifs).

Important Findings

  • Android Samba is not the problem.
  • Network connectivity is not the problem.
  • Steam can browse, read, write, and delete files.
  • Both smbnetfs and ChromeOS native SMB produce the same result.
  • Crostini lacks kernel CIFS support (mount -t cifs unavailable).
  • Steam appears to require POSIX filesystem semantics (especially executable permissions), which these mounts do not provide.

Current Conclusion

The limitation appears to be ChromeOS/Crostini's handling of SMB/FUSE mounts, not Android, Samba, or Steam itself.

Questions for Further Research

  1. Has anyone successfully used an SMB share as a Steam Library inside Crostini?
  2. Is there any way to get a true kernel cifs mount in Crostini?
  3. Is there another network filesystem (NFS, SSHFS, WebDAV, VirtioFS, etc.) that preserves POSIX permissions well enough for Steam?
  4. Is this a Steam limitation, a FUSE limitation, or a Crostini virtualization limitation?
  5. Would replacing ChromeOS with native Linux (Mint/Debian) completely solve this issue?

TL;DR: We verified that Android Samba, networking, and file I/O all work correctly. The only consistent failure is the inability to preserve executable/POSIX permissions on SMB mounts inside Crostini, causing Steam to reject the location as a library. This points to a Crostini filesystem limitation rather than a Samba or Steam configuration issue.


r/Crostini 3d ago

Running Windows Apps

0 Upvotes

I have tried to run Windows apps on my Chromebook but some apps run into errors


r/Crostini 4d ago

Solved! removed linux / rebooted / reinstalled linux and went from Bookworm to... Bullseye !?!

2 Upvotes

I had the intention to upgrade from Bookworm (12) to Trixie (13) by disabling/removing linux using chromeOS settings, rebooting, and then reenabling linux using chromeOS settings.

Upon reenabling, I was shocked to see Bullseye (11)

me@penguin:~$ uname -a

  • Linux penguin 6.6.119-09283-g9c138e0af8c3 #1 SMP PREEMPT_DYNAMIC Sat, 30 May 2026 01:16:16 -0700 x86_64 GNU/Linux

me@penguin:~$ cat /etc/os-release

me@penguin:~$ stat -fc %T /sys/fs/cgroup/

  • tmpfs

My chromebook is on ChromeOS version 150.0.7871.150 (Official BUild) (64-bit).

This is not what I expected would happen.

Was I supposed to change a flag or something?

What am I missing?

SOLVED - HAD TO RESET FLAGS


r/Crostini 4d ago

I found a pretty cool way to use unsupported monospace fonts in the ChromeOS Terminal app!!!!

2 Upvotes

basically, you need to have a folder for all your .otf files are (this method was only tested with .otf files), and then you need to add a python file to that folder that looks like this:

from http.server import HTTPServer, SimpleHTTPRequestHandler
import os

class CORSRequestHandler(SimpleHTTPRequestHandler):
    def end_headers(self):
        self.send_header("Access-Control-Allow-Origin", "*")
        super().end_headers()

os.chdir(os.path.dirname(os.path.abspath(__file__)))
HTTPServer(("127.0.0.1", 8887), CORSRequestHandler).serve_forever()

(ChromeOS needs the "Access-Control-Allow-Origin" thing or else it'll error)

and then you need to add these lines to your .bashrc:

if ! nc -z 127.0.0.1 8887 2>/dev/null; then
    python3 <font dir here>/font_server.py >/dev/null 2>&1 &
fi

(replace <font dir here> with your font dir)

then you need to press Ctrl + Shift + J to get a different console that you need to paste this into (it may not allow pasting at first idk):

var CHOSEN_FONT_NAME = "SMWMonospace";
var CHOSEN_FILE_NAME = "SMW.Monospace.otf";

// Build the localized connection strings dynamically
var fullFontUrl = "http://127.0.0.1:8887/" + CHOSEN_FILE_NAME;

// Construct the clean CSS payload using your variables
var dynamicCss = '@font-face { font-family: "' + CHOSEN_FONT_NAME + '"; src: url("' + fullFontUrl + '") format("opentype"); font-weight: normal; font-style: normal; font-display: swap; } x-screen, x-row, body, pre { font-family: "' + CHOSEN_FONT_NAME + '", "Courier New", monospace !important; }';

// Reset the storage blocks and apply configuration layers
term_.prefs_.reset('user-css-text');
term_.prefs_.set('user-css-text', dynamicCss);
term_.prefs_.set('font-family', '"' + CHOSEN_FONT_NAME + '", monospace');

console.log("SUCCESS: Configuration locked for font family: " + CHOSEN_FONT_NAME);
console.log("  Of course, that is only true if you don't see an error after this message.");

(this is what my config was, if you have a different font name and file, use that)

... and then you should have your monospace font in your terminal! cool right?
(edit: also if the font doesn't load correctly after you restart your chromebook, pressing ctrl+shift+j again should correct it or else comment here)


r/Crostini 7d ago

Help? Is it possible to change the distro in baguette? Here's what I've tried so far.

2 Upvotes

Before baguette I used a custom arch linux container, but decided today to try get it to work with baguette. I prefer arch simply as I'm more used too it, and I'm on a very underpowered chromebook and it might be a little less memory intensive.

I'm aware that a baguette image is a zstd-compressed btrfs image, so what I've tried to do so far is download an arch bootstrap ISO tarball, (the files of a very basic preinstalled system), and extract the files from it onto a small mounted btrfs image, and then unmount and compress with zstd.

Using the image I created I ran vmc create --vm-type baguette --source /home/chronos/user/MyFiles/arch_compressed.img.zst test, yet for whatever reason this stalls for a good minute or so before erroring with this error:

Error: operation `vm_create` failed: Did not recieve a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.

Despite the error, running vmc list afterwards actually does show "test", as a baguette vm, looking promising. Yet on running vmc start --vm-type baguette test, it once again stalls for a bit before I get this:

Error: operation `vm_start` failed: bad VM status: `VM_STATUS_FAILURE`: Error starting VM. VmStartCheckerStatus=3

Am I at least close, or am I just way off and completely misguided?


r/Crostini 9d ago

Is r/crostini going to be the place for "baguette" q&a / discussion?

6 Upvotes

I've been playing with antigravity on crostini Bookworm and when researching moving to Trixie, Gemini suggested I go straight to Baguette, which I did yesterday. So far so good.

Are folks planning on staying in this sub or is there already somewhere else to go for baguette discussions?

Thanks


r/Crostini 10d ago

i coded a 3d rpg combat system using a $40 chromebook for a game jam

0 Upvotes

i finally got the game working in web but it doesnt look right butler status rawptr/hexbound:html5 i had to use butler and port from odin to c https://rawptr.itch.io/hexbound go vote for me


r/Crostini 13d ago

is anyone fammiliar with the problem that everytime u double click a file on linux it opens ur files app again

2 Upvotes

this is the reason it wont let me install minecraft launcher


r/Crostini 13d ago

Crostini Debian 13 virtio-gpu detected but Mesa falls back to llvmpipe

2 Upvotes

Device:
ASUS Chromebook Plus CX34 i5-1335U

Linux container:
Debian 13 Trixie

lspci shows:

Virtio 1.0 GPU
Kernel driver: virtio-pci

dmesg:

[drm] features: +virgl +resource_blob

/dev/dri/renderD128 exists.

But:

glxinfo -B
Renderer: llvmpipe
Accelerated: no

vulkaninfo:

Failed to detect any valid GPUs

No virgl/gfxstream socket exists:

find /run -type s | grep -E "gpu|virgl|gfx"

returns nothing.

Is the ChromeOS host GPU service not exposing virgl/gfxstream, or is there a missing package/config?


r/Crostini 15d ago

Baguette MOTD spelling error

Post image
3 Upvotes

r/Crostini 16d ago

I switched to Baguette (ChromeOS Containerless Linux)

Thumbnail
9 Upvotes

r/Crostini 19d ago

wl-copy no longer works on chromebooks

1 Upvotes

wl-copy no longer works on Chromebook. Any replacements? xclip doesn't work either.


r/Crostini 19d ago

Help? Sober not launching despite GPU support being enabled.

0 Upvotes

I can't run Sober. I've tried a bunch of stuff but they all didn't work. I turned on my GPU support for Crostini, I've forced Sober to use OpenGL instead of Vulkan, I've switched to x11 instead of Wayland, I've run flatpak update multiple times, and I've even uninstalled and reinstalled Sober, but nothing works. Can anyone please help?


r/Crostini 22d ago

Is Manjaro/Arch still possible on crostini?

2 Upvotes

I'm a long time Manjaro user and I'm also a long-time Chromebook user too. When I travel, I love having a simple, stable, fast booting and secure Linuxy laptop as my carry.

After years of using Debian as my Linux flavour (given that it's what you get by default), I got curious to see if I could run an arch-based distro as my Linux container (or not container, as I think those are going away?).

I looked at the Arch Wiki's ChromeOS devices/Crostini page for instructions and it looks like it used to be possible to create a linux environment with Arch; but it looks like a lot of things have changed and it's no longer possible.

I'd just like to confirm, is there still a way to move my Linux environment over to another distro? Is Crotini no longer a thing? Are we all containerless now?

I'm running ChromeOS version 149 on an ASUS CX54. When I invoke crosh, I do not seem to have lxc available so I think I'm containerless.


r/Crostini 23d ago

Help? preparing for multi-container support to "go away"

5 Upvotes

I am using 3 containers. I have been aware that multi-container support is going away.

I have started receiving the following message upon starting up any linux container.

NOTICE: multi-container support is going away

Recently it has become necessary to deprecate some features of crostini,including:

  • UI-based installation of .deb packages. Installation via aptitude is the default path, but there are also visual package managers which may be used.

  • UI-based Debian release upgrade. Please refer to release notes for the release in question for upgrade instructions.

  • Multi-container support.

info

(this message will be repeated 2 more times).

My preparations:

  • I have moved my files and applications from my secondary containers into my penguin container

My questions

  1. is there anything else I should be doing to prepare? (I have no ability to remove the abandoned containers through the settings, because container management was removed from settings)
  2. will my penguin container remain intact?
  3. when will this change occur?

r/Crostini 26d ago

Solved! Lost Internet Connection

2 Upvotes

Today I went to update Debian with "sudo apt update && sudo apt full-upgrade -y" and I get "Temporary failure resolving 'deb.debian.org'". I then run Firefox and it cannot connect to any site. The chrome side works fine. My Chromeos is Version 144.0.7559.256 (Official Build) (64-bit). If there is any other information you need to help me trouble shoot this please ask.


r/Crostini 26d ago

Message in terminal

2 Upvotes

NOTICE: Recently it has become necessary to deprecate some features of crostini, including:

  • UI-based installation of .deb packages. Installation via aptitude is the default path, but there are also visual package managers which may be used.
  • UI-based Debian release upgrade. Please refer to release notes for the release in question for upgrade instructions.
  • Multi-container support.

For the most up-to-date news, please visit https://developers.google.com/chromeos/app-development/develop/news


r/Crostini Jun 22 '26

Any Crostini Android Studio users here?

3 Upvotes

Hello all Android app coders,

Have you experienced an issue in Android Studio Quail 1 (all patch levels up to Patch 2) where the Android Studio window is almost fully covered with dark gray shading whenever the window has focus? But when another window has focus, the shading covering the Android Studio window becomes much lighter. And if the Android Studio window is maximized there is no shading covering the window. "Almost fully" above means that the shading is a few pixels smaller than the window from every side.

Due to that issue I have downgraded my Android Studio back to the latest Panda version (2025.3.4). Has anyone come up with any other workarounds for this issue than maximizing the Android Studio window?

I have already reported this issue to JetBrains through the "Help > Submit a Bug Report..." menu item, but it has been auto-assigned priority category 3 which usually means that it will never get fixed ☹.


r/Crostini Jun 22 '26

Help? How do I boost performance/FPS on Windows 10 VM?

1 Upvotes

Ok, so here is the video: https://youtu.be/GHyi7CPIBq4

I recently tried using QEMU KVM to emulate Windows 10 on my Asus Chromebook Plus CM34 Flip (CM3401). It worked out smoothly with 4096 RAM, 2 CPUS, and 40 GB, but my problem is that the performance is poor and laggy, as seen in the video. I read that you could use Virtio Drivers to help with performance, but I need a step-by-step tutorial on that. Can you anyone help me please? Thank you, and have a good day.


r/Crostini Jun 20 '26

VPN with Killswitch not working in Crostini environment

1 Upvotes

I have had Chromebooks for the last 5 years, several higher end ones running Debian vis Crostini.

I currently have the Asus Expertbook CX54 Intel Core Ultra 5. DDR5 16GB and a 256gb SDD.

I have both Opera and Edge installed in the Linix environment. Both operate fine in normal mode and they also operate fine when I turn on the Android VPN (Proton) but as soon as I enable the killswitch in the VPN, boh Opera and Edge no longer work. Just says page cannot be displayed.

I am not sure why just turning on the killswitch in the Android app would cause this behavior.


r/Crostini Jun 19 '26

PDFarranger available in File Explorer

3 Upvotes

Just discovered this by sheer chance, very interesting "magic".

After running sudo apt install pdfarranger once (tested with Bookworm), if you select (several) PDFs and right-click, then a shortcut to PDF Arranger appears in the File Explorer! See screenshot. Neat.

This works even after rebooting and NOT starting the Linux container. So you can install this only once on someone else's Chromebook and then they can keep using it with zero command-line involvement.

They can keep using it as long as... some upgrade mysteriously breaks it :-/

There are many other "PDF arrangers" solutions but this is probably the only one that does not require any cloud service, nor granting access to your entire digital life to some obscure Chrome plugin maintained by some random guy who doesn't know his credentials have already been hacked.

Of course it does require trusting Debian people instead - there is no free lunch...

<img src="blob:chrome-untrusted://media-app/5942c0c3-b8aa-4272-9eaa-2739f1012f3f" alt="Screenshot 2026-06-19 18.20.48.png"/>


r/Crostini Jun 19 '26

Lenovo Chromebook (Blipper) Full UEFI - Tablet Mode Not Disabling Keyboard/Touchpad on Fedora (GNOME/Wayland)

0 Upvotes

Hi everyone,

​I'm having a frustrating issue with a Lenovo Chromebook (board: Blipper) running Fedora 44 (currently on GNOME / Wayland, but previously tested on KDE Plasma).

​The device has been flashed with MrChromebox Full UEFI (replaces the stock Google FW).

​The Problem:

​Display Auto-Rotation Works Perfectly: When I flip the laptop into tent or tablet mode (360 degrees), the accelerometer registers the change instantly and the screen rotates seamlessly via iio-sensor-proxy.

​Keyboard & Touchpad REMAIN ACTIVE: When completely folded into a tablet, neither the keyboard nor the touchpad gets disabled. I end up accidentally typing on my lap.

​It feels like the kernel or the Desktop Environment doesn't receive the hardware SW_TABLET_MODE switch signal at all. From what I've gathered, on Full UEFI, the firmware doesn't expose the original ChromeOS hinge switch ACPI tables correctly to Linux.

​Hardware Details:

​Device: Lenovo Chromebook (Blipper platform - Elan/Intel based)

​Keyboard: AT Translated Set 2 keyboard (detected on /dev/input/event2)

​Touchpad: Elan Touchpad (detected on /dev/input/event6)

​OS: Fedora 44 (Workstation Edition)

​Kernel: Latest stable 6.x kernel

​What we have already tried (and failed):

​Kernel Parameters via Grubby: Added chromeos_tbmc.force=1 intel_vbtn.allow_bindings=1 soc_button_array.force_tablet_mode=1 as well as i8042.nopnp=1. None of these forced the kernel to register the tablet mode state change.

​GNOME / KDE DBus Emulation Scripts: Attempted to use Python/Bash scripts reading monitor-sensor stdout to trigger global.display.set_tablet_mode(true) via DBus. The environment rejects/ignores this under Wayland due to security locks on input emulation.

​Driver Unbinding via /sys/bus/: Tried writing a script to physically unbind the serio2 slot for the keyboard and the i2c-ELAN components when the sensor reports a bottom-up orientation. The drivers didn't drop the input feed properly.

​libinput / udevadm Triggers: Tried forcing udevadm trigger --action=remove specifically for the keyboard's device name when orientation changes. The device remained active.

​Summary:

​The OS knows exactly when the device is flipped upside down (because monitor-sensor correctly switches from normal to bottom-up and rotates the image), but GNOME/KDE refuses to lock the input devices because they are waiting for a hardware-level ACPI switch signal that the custom UEFI doesn't seem to provide.

​Is there a known udev rule, a specific kernel quirk, or a modern Wayland-compliant utility that can forcefully map the accelerometer's bottom-up state to disable /dev/input/event2 and /dev/input/event6?

​Any help from fellow Chrultrabook users would be highly appreciated!


r/Crostini Jun 17 '26

Built a voice dictation Chrome extension that works systemwide on ChromeOS

3 Upvotes

I just launched Tapfree for Chrome, and I wanted to share it here because it may be useful for people running Crostini workflows.

Tapfree is a Chrome extension that helps with dictation, and one of the main things I built it for was making it work systemwide on ChromeOS.

I've been using ChromeOS a lot and wanted something that works between browser apps, web tools, and Linux/container-based workflows (I use a lot of the terminal to ssh into my VM)

I'd love feedback from the Crostini community on whether this kind of tool feels useful, and if there are any workflows I should support better. If anyone here is interested, I am happy to share more details or answer questions about how it works.

Thanks for taking a look!

Link to launch


r/Crostini Jun 16 '26

Solved! Dolphin Icon in shelf

2 Upvotes

Dolphin file manager shows with the owl icon on the shelf when the app is closed. I have managed to get it to show the dolphin.png icon while it is open but as soon as it is closed it is back to the owl icon. Apparently it uses the owl icon when it can't find or does't know where the dolphin icon is located. Has anyone resolved this issue lately.