Arch linux virtualbox usb

VirtualBox/Install Arch Linux as a guest

This article is about installing Arch Linux in VirtualBox.

Boot the Arch installation media through one of the virtual machine’s virtual drives. Then, complete the installation of a basic Arch system as explained in the Installation guide.



Installation in EFI mode (optional)

Enabling EFI for Arch as guest is optional. If you want to install Arch Linux in EFI mode inside VirtualBox, you must change the firmware mode for the virtual machine. This must be done before installing Arch as guest, changing the option afterwards will result in unbootable machine unless the setting is reverted.

To enable EFI for a virtual machine using the graphical interface, open the settings of the virtual machine, choose System item from the panel on the left and Motherboard tab from the right panel, and check the checkbox Enable EFI (special OSes only).

Alternatively the same can be accomplished from the command line using VBoxManage:

efi will set the firmware for the virtual machine to EFI with the bitness matching the virtual machine’s CPU. To get a specific EFI bitness, set the firmware to efi64 for x86_64 EFI or efi32 for IA32 EFI.

After selecting the kernel from the Arch Linux installation media’s menu, the media will hang for a minute or two and will continue to boot the kernel normally afterwards. Be patient.

Install the Guest Additions

VirtualBox Guest Additions provides drivers and applications that optimize the guest operating system including improved image resolution and better control of the mouse. Within the installed guest system, install:

  • virtualbox-guest-utils for VirtualBox Guest utilities with X support
  • virtualbox-guest-utils-nox for VirtualBox Guest utilities without X support

The guest additions running on your guest, and the VirtualBox application running on your host must have matching versions, otherwise the guest additions (like shared clipboard) may stop working. If you upgrade your guest (e.g. pacman -Syu ), make sure your VirtualBox application on this host is also the latest version. «Check for updates» in the VirtualBox GUI is sometimes not sufficient; check the website.


Set optimal framebuffer resolution

This article or section is a candidate for merging with VirtualBox/Tips and tricks#Set guest starting resolution.

Typically after installing Guest Additions, a fullscreen Arch guest running X will be set to the optimal resolution for your display; however, the virtual console’s framebuffer will be set to a standard, often smaller, resolution detected from VirtualBox’s custom VESA driver.

To use the virtual consoles at optimal resolution, Arch needs to recognize that resolution as valid, which in turn requires VirtualBox to pass this information along to the guest OS.

First, check if your desired resolution is not already recognized by running the command ( hwinfo need to be installed):

If the optimal resolution does not show up, then you will need to run the VBoxManage tool on the host machine and add «extra resolutions» to your virtual machine (on a Windows host, go to the VirtualBox installation directory to find VBoxManage.exe ). For example:

The parameters «Arch Linux» and «1360x768x24» in the example above should be replaced with your VM name and the desired framebuffer resolution. Incidentally, this command allows for defining up to 16 extra resolutions («CustomVideoMode1» through «CustomVideoMode16»).

Afterwards, restart the virtual machine and run hwinfo —framebuffer once more to verify that the new resolutions have been recognized by your guest system (which does not guarantee they will all work, depending on your hardware limitations).

Finally, add a video=resolution kernel parameter to set the framebuffer to the new resolution, for example:

Additionally you may want to configure your bootloader to use the same resolution. If you use GRUB, see GRUB/Tips and tricks#Setting the framebuffer resolution.

Load the VirtualBox kernel modules

To load the modules automatically, enable vboxservice.service which loads the modules and synchronizes the guest’s system time with the host.

Читайте также:  Как настроить принтер при удаленном доступе

To load the modules manually, type:

Launch the VirtualBox guest services

After the rather big installation step dealing with VirtualBox kernel modules, now you need to start the guest services. The guest services are actually just a binary executable called VBoxClient which will interact with your X Window System. VBoxClient manages the following features:

  • shared clipboard and drag and drop between the host and the guest;
  • seamless window mode;
  • the guest display is automatically resized according to the size of the guest window;
  • checking the VirtualBox host version

All of these features can be enabled independently with their dedicated flags:

Notice that VBoxClient can only be called with one flag at a time, each call spawning a dedicated service process. As a shortcut, the VBoxClient-all bash script enables all of these features.

virtualbox-guest-utils installs /etc/xdg/autostart/vboxclient.desktop that launches VBoxClient-all on logon. If your desktop environment or window manager does not support XDG Autostart, you will need to set up autostarting yourself, see Autostarting#On desktop environment startup and Autostarting#On window manager startup for more details.

VirtualBox can also synchronize the time between the host and the guest, to do this, start/enable the vboxservice.service .

Now, you should have a working Arch Linux guest. Note that features like clipboard sharing are disabled by default in VirtualBox, and you will need to turn them on in the per-VM settings if you actually want to use them (e.g. Settings > General > Advanced > Shared Clipboard).

Auto-resize Guest Display

This option will automatically change the resolution of the Arch guest, whenever the window of the virtual machine is resized. This option is enabled by default, and in graphical interface is located at View -> Auto-resize Guest Display. When using KDE Plasma, on GUI login screen (Session) select Plasma (X11) instead of the default session Plasma (Wayland), which does not work with auto-resize.

Hardware acceleration

Hardware acceleration can be activated in the VirtualBox options. The GDM display manager 3.16+ is known to break hardware acceleration support. [1] So if you get issues with hardware acceleration, try out another display manager (lightdm seems to work fine). [2] [3]

If the hardware acceleration does not work as expected, try changing the Graphics Controller option found under the Screen tab in the Display options of the settings GUI. It seems that depending on the host GPU type, not all emulated controllers work equally well.

Enable shared folders

Shared folders are managed on the host, in the settings of the Virtual Machine accessible via the GUI of VirtualBox, in the Shared Folders tab. There, Folder Path, the name of the mount point identified by Folder name, and options like Read-only, Auto-mount and Make permanent can be specified. These parameters can be defined with the VBoxManage command line utility. See there for more details.

No matter which method you will use to mount your folder, all methods require some steps first.

To avoid this issue /sbin/mount.vboxsf: mounting failed with the error: No such device , make sure the vboxsf kernel module is properly loaded. It should be, since we enabled all guest kernel modules previously.

Two additional steps are needed in order for the mount point to be accessible from users other than root:

  • the virtualbox-guest-utils package created a group vboxsf (done in a previous step);
  • your user must be in vboxsf user group.

Manual mounting

Use the following command to mount your folder in your Arch Linux guest:

where shared_folder_name is the Folder name assigned by the hypervisor when the share was created.

If the user is not in the vboxsf group, to give them access to our mountpoint we can specify the mount(8) options uid= and gid= with the corresponding values of the user. These values can obtained from the id command run against this user. For example:


In order for the automounting feature to work you must have checked the auto-mount checkbox in the GUI or used the optional —automount argument with the command VBoxManage sharedfolder .

The shared folder should now appear as /media/sf_shared_folder_name . If users cannot access the shared folders, check that /media has permissions 755 or is owned by the vboxsf group if using permissions 750 . This is currently not the default if the /media directory is created by vboxservice.service .

You can use symlinks if you want to have a more convenient access and avoid to browse in that directory, e.g.:

Mount at boot

You can mount your directory with fstab. However, to prevent startup problems with systemd, noauto,x-systemd.automount should be added to /etc/fstab . This way, the shared folders are mounted only when those mount points are accessed and not during startup. This can avoid some problems, especially if the guest additions are not loaded yet when systemd reads fstab and mounts the partitions.

  • sharedFolderName : the value from the VirtualMachine’s Settings > SharedFolders > Edit > FolderName menu. This value can be different from the name of the real folder name on the host machine. To see the VirtualMachine’s Settings go to the host OS VirtualBox application, select the corresponding virtual machine and click on Settings.
  • /path/to/mntPtOnGuestMachine : if not existing, this directory should be created manually (for example by using mkdir).
  • dmode / fmode are directory/file permissions for directories/files inside /path/to/mntPtOnGuestMachine .
Читайте также:  Автономный установщик обновлений windows установщик обнаружил ошибку 0x800f0905

As of 2012-08-02, mount.vboxsf does not support the nofail option:


Access serial port from guest

TTY text too small during installation

From the host, VirtualBox Manager, set the Display Scale-factor to 2.00 or 3.00.

Guest freezes after starting Xorg

Faulty or missing drivers may cause the guest to freeze after starting Xorg, see for example [4] and [5]. Try disabling 3D acceleration in Settings > Display, and check if all Xorg drivers are installed.

Fullscreen mode shows blank screen

On some window managers (i3, awesome), VirtualBox has issues with fullscreen mode properly due to the overlay bar. To work around this issue, disable Show in Full-screen/Seamless option in Guest Settings > User Interface > Mini ToolBar. See the upstream bug report for more information.

If the guest’s screen goes black above a certain size (e.g. above 2048 pixels wide), increasing the Settings > Display > Screen > Video Memory can help.

Linux guests have slow/distorted audio

The AC97 audio driver within the Linux kernel occasionally guesses the wrong clock settings when running inside VirtualBox, leading to audio that is either too slow or too fast. To fix this, create a file in /etc/modprobe.d/ with the following line:

Linux guests have slow/laggy audio

In some cases, audio can have laggy performance (for example lag behind video when streaming video online). A possible workaround can be to use the Intel HD Audio controller in VirtualBox and disable its power saving by adding the following line in a file in /etc/modprobe.d/ in the guest OS:

Arch: pacstrap script fails

If you used pacstrap to also #Install the Guest Additions before performing a first boot into the new guest, you will need to umount -l /mnt/dev as root before using pacstrap again; a failure to do this will render it unusable.


To access the raw VMDK image on a Windows host, run the VirtualBox GUI as administrator.

No hardware 3D acceleration in Arch Linux guest

virtualbox-guest-utils package as of version 5.2.16-2 does not contain the file . This causes the Arch Linux guest to not have proper 3D acceleration. See FS#49752.

To deal with this problem, apply the patch set at FS#49752#comment152254. Some fix to the patch set is required to make it work for version 5.2.16-2.

Plasma resets guest’s resolution to 800×600

Black screen with Plasma-X11 minimal install

If you used plasma-desktop minimal install instead of plasma (which includes Wayland support), then probably you will have black screen with cursor after starting Plasma-X11 session.

To fix this set resize vm window several times, then set resolution manually in VirtualBox window itself by:

View -> Virtual Screen 1 -> Resize to 1024×768 (or other resolution you like)

Open in KDE launcher System Settings -> Startup and Shutdown -> Background Services, stop and unselect KScreen2 and save settings. Issue should go away forever


Install Arch Linux on a removable medium

This page explains how to perform a regular Arch installation onto removable media (e.g. a USB flash drive). In contrast to having a LiveUSB as covered in USB flash installation medium, the result will be a persistent installation identical to normal installation to HDD.



There are various ways of installing Arch on removable media, depending on the operating system you have available:

  • If you have another Linux computer available (it does not need to be Arch), you can follow the instructions at Install from existing Linux.
  • An Arch Linux CD/USB can be used to install Arch onto the removable medium, via booting the CD/USB and following the installation guide. If booting from a Live USB, the installation cannot be made to the same removable medium you are booting from.
  • If you run Windows or macOS, download VirtualBox, install VirtualBox Extensions, attach your removable medium to a virtual machine running Linux (either already installed or via a live ISO), and point the installation into the now attached drive while using the instructions at the Installation guide.
Читайте также:  Как установить драйвер для принтера на astra linux

Installation tweaks

  • Before creating the initial RAM disk, in /etc/mkinitcpio.conf move the block and keyboard hooks before the autodetect hook. This is necessary to allow booting on multiple systems each requiring different modules in early userspace.
  • If you have chosen to install Arch onto a USB mass storage device and want to be able to continue to use it as a cross-platform removable drive, this can be accomplished by creating a partition housing an appropriate file system (most likely NTFS or exFAT). Note that the data partition may need to be the first partition on the device, as Windows assumes that there can only be one partition on a removable device, and will happily automount an EFI system partition otherwise. Remember to install dosfstools and ntfs-3g . Some tools are available online that may allow you to flip the Removable Medium Bit (RMB) on your USB mass storage device. This would trick operating systems into treating your USB mass storage device as an external hard disk and allow you to use whichever partitioning scheme you choose.
  • If your Arch installation is on a removable drive that needs to have microcode for both manufacturer processors, install both amd-ucode and intel-ucode packages. See Microcode#Installation.


  • Make sure that /etc/fstab includes the correct partition information for / , and for any other partitions on the disk. If the drive is to be booted on several machines, it is quite likely that devices and number of available hard disks vary. So it is advised to use UUID or label.

To get the proper UUIDs for your partitions use lsblk of blkid. See Persistent block device naming#by-uuid for more information.

GRUB legacy

menu.lst , the GRUB legacy configuration file, should be edited to (loosely) match the following.

When using file system labels your menu.lst should look like this:

And for UUID, it should be like this:

Follow the instructions on GRUB#BIOS systems and GRUB#UEFI systems to install GRUB for both BIOS and UEFI booting:


Using your UUID:

Tips and tricks

Using your portable install on multiple machines

Compatibility for BIOS systems

This article or section needs expansion.

Since this setup will be run on multiple machines and there are still plenty of BIOS only systems around, you might want to consider enabling compatibility for both UEFI GPT and BIOS GPT/MBR systems. See Multiboot USB drive#Hybrid UEFI GPT + BIOS GPT/MBR boot

Video drivers

Persistent block device naming

It is recommended to use UUID in both fstab and boot loader configuration. See Persistent block device naming for details.

Alternatively, you may create udev rule to create custom symlink for your disk. Then use this symlink in fstab and boot loader configuration. See udev#Setting static device names for details.

Kernel parameters

You may want to disable KMS for various reasons, such as getting a blank screen or a «no signal» error from the display, when using some Intel video cards, etc. To disable KMS, add nomodeset as a kernel parameter. See Kernel parameters for more info.


The fallback image should be used for maximum compatibility.

Minimizing disk access

When installing to a device that offers a limited number of writes before it wears out, such as a USB drive, SD card, or similar, reduce the number of writes to increase the device lifetime. This also reduces the performance impact of slow writes.

  • It is highly recommended to review the Improving performance#Reduce disk reads/writes article prior to selecting a file system. To sum it up, for flash-based media such as USB flash drives or SD cards, ext4 without a journal should be fine, which can be created with mkfs.ext4 -O «^has_journal» /dev/sdXX . The obvious drawback of using a file system with journaling disabled is data loss as a result of an ungraceful dismount. Recognize that flash has a limited number of writes, and a journaling file system will take some of these as the journal is updated. For this same reason, it is best to forget the swap partition. Note that this does not affect installing onto a portable hard drive.
  • You may want to configure systemd journal to store its journals in RAM, e.g. by creating a custom configuration file:
  • To disable fsync and related system calls in web browsers and other applications that do not write essential data, use the eatmydata command from libeatmydata to avoid such system calls:

UI responsiveness

You might encounter UI freezes on high I/O load especially on slow drives. Improving performance#Changing I/O scheduler or switching to a kernel which uses different default scheduler can drastically effect your UI responsiveness. For example BFQ can improve UI responsiveness which is default on linux-zen , linux-ck AUR .


Поделиться с друзьями