Arch folder in linux

How to enable a Virtualbox shared folder for Linux guest systems

VirtualBox is a very useful tool to install operating systems inside the main system. However, configuring the Virtualbox to share files between your main system and the system you installed in a VirtualBox is not trivial. So, I will show you how to enable a shared folder in Virtualbox for Debian, Linux Mint/Ubuntu, and Arch Linux as guest systems. I will also show a universal way that should work for any Linux guest distribution.

INTRODUCTION

There are several essential steps you need to follow, to enable a shared folder between the real machine (host) and the virtual machine (guest):

  1. Install guest additions for your guest system.
  2. Create a shared folder.
  3. Change the user permission for the shared folder.

In this tutorial, my host system is Arch Linux, but the host system does not matter in this case because we will do all the setting in the guest systems. So, I will show you the settings for Arch Linux, Linux Mint and Debian as guest systems. If you use some other distributions as a guest, look at the instructions for Debian. It is a universal way to enable a shared folder and it should work for all distributions.

VIDEO TUTORIAL

Enable a shared folder in VirtualBox for Arch Linux guest

Prepare the system

First, make sure your Arch Linux guest system is up to date. Open a terminal and update it:

Next, install kernel headers. I use the Linux kernel LTS, so I have to install the linux-lts-headers package. If you use the standard kernel, install linux-headers .

sudo pacman -S linux-lts-headers 

Then, install the virtualbox-guest-utils package. It will make you choose a package: either virtualbox-guest-modules-arch or virtualbox-guest-dkms . The Arch Linux wiki recommends choosing the virtualbox-guest-modules-arch package if you use the Linux kernel and virtualbox-guest-dkms for others kernels like LTS. Again, I use the linux-lts kernel so I needed to install the virtualbox-guest-dkms package.

sudo pacman -S virtualbox-guest-utils 

Install the virtualbox guest package on Arch Linux

After that, enable the VirtualBox kernel modules:

sudo systemctl enable vboxservice 

Add the shared folder

In VirtualBox, go to the Devices menu -> Shared Folders menu -> Shared folders settings.

Access into the Shared folder settings in Virtualbox

In the window that opens, on the right side, you will find the button to add a new shared folder. Click on it.

Читайте также:  Aktywne dzierzawy DHCP

Adding a shared folder on Virtualbox

And select the folder you want to share between systems. For example, I usually share my Public folder. Make it permanent and activate auto-mounting by clicking on the options.

Define the options of the shared folder in Virtualbox

Then, you need to reboot the guest system. Once the guest system has rebooted, you can find the shared folder in the /media folder.

The shared folder is mounted but you can not access it:

The problem is, however, that only the root user can access the folder. To gain access to this folder as a regular user, open the terminal in your guest system and add your user to the vboxsf group.

sudo usermod -a -G vboxsf `whoami` 

`whoami` stand there to automatically paste your username. You can also type your username directly.

Next, give that user a permission to access the media folder.

sudo chown -R `whoami`:users /media/sf_Public/ 

Finally, log out, and log in again. Open the file manager and you should be able to access the shared folder as a regular user.

The shared folder is ready to use through the file manager

So, this is the whole process to enable a shared folder in VirtualBox using Arch Linux. You can start placing files there.

Enable a shared folder in VirtualBox for Debian guest

Installing guest addition in Debian is a little different from in Arch Linux. For Debian, I will show you a more universal way that you can apply to any other distro including Arch Linux. However, the way I showed before is preferable for Arch Linux.

Prepare the system and add a shared folder

In Debian guest, open a terminal and install the build-essential, dkms, and linux-headers packages.

sudo apt install build-essential dkms linux-headers-$(uname -r) 

Install some required package to enable a shared folder in Virtualbox using Debian

After that, you can add a shared folder. It is the same procedure as before. Go to the Devices menu -> Shared folders -> click on the Shared folder settings option.

Adding the shared folder in Virtualbox

Again, click on the button at the right to add the shared folder. Set the folder options you want and click on the Ok button.

Set the folder options in Virtualbox

After the packages are installed and the shared folder is added, reboot the system.

Install the GuestAddition CD Image

When your guest system has started. Go to the Devices menu and click on the Insert Guest addition image option.

Install the guest addition CD in in Virtualbox guest

Then, open a file manager, navigate to VBOXADDITION CD, right click in that directory and click on the open Terminal here option.

Open a terminal in the vbox addtion CD location

In the terminal, run the following command to install the VirtualBoxLinuxAddtions:

sudo sh VBoxLinuxAdditions.run 

Installing the vboxlinuxaddition script through the terminal in Virtualbox guest

Make sure it is installed without errors. If some errors occur, read the message, most likely the instruction for a fix will be provided. If the install is successful, you need to reboot the system.

Читайте также:  Enable monitor mode kali linux

Setting the permissions to the shared folder

If you go to the /media folder in the file manager and check if a shared folder is mounted, most likely you will not be able to access it as a regular user.

The shared folder is not accessible: Permission denied

To enable the access to this folder for a regular user, do the same what we did for Arch Linux, add your user to the vboxsf group.

sudo usermod -a -G vboxsf `whoami` 

And change the permission of the media folder.

sudo chown -R `whoami`:users /media/ 

Terminal commands to change the owner of a shared folder in VirtualBox with Debian guest

Log out, log in and you should be able to access the shared folder.

The folder is ready to use in Debian guest file manager

This method to enable a shared folder in VirtualBox for Debian is universal and it should work for any other distributions.

Enable a shared folder in VirtualBox for Linux Mint / Ubuntu guest

Linux Mint and Ubuntu usually come with VirtualBox guest addition pre-installed by default. If not, you can install it using a software manager like Synaptic.

Open the software manager, search and install virtualbox-guest-X11 , virtualbox-guest-utils , and virtualbox-guest-dkms .

Install the virtuabox guest addition packages through Synpatic in Linux Mint

Then do the same steps I showed for Arch Linux and Debian. First, add a shared folder.

Adding the shared folder in Virtualbox

Reboot the system. Then, add your user to the vboxsf group.

sudo usermod -a -G vboxsf `whoami` 
sudo chown -R `whoami`:users /media/ 

Set the permissions to the shared folder in Virtualbox

Finally, log out and log in, and you should have the shared folder working.

The folder is ready to use it in Linux Mint file manger

CONCLUSION

Now, you can use your VirtuaBox systems more extensively by sharing files between your host and guest systems.

If you use any other distro than Ubuntu-based ones, Arch Linux or Debian, try the way I show for Debian and let me know how it worked.

I recommend for the next read to learn how to clean Arch Linux.

Average Linux UserFollow I am the founder of the Average Linux User project, which is a hobby I work on at night. During the day I am a scientist who uses computers to analyze genetic data.

Источник

How to determine the host Multi-Arch default folder

I want to make a makefile that installs a library in the host default multi-arch folder, like /usr/lib/x86_64-linux-gnu and /usr/lib/i386-linux-gnu/ and /usr/lib/arm-linux-gnueabihf . But without using dpkg-architecture and debhelper as they are not always present on the host device. Only using gcc and make . I already found the /etc/ld.so.conf.d folder. I could parse the *.conf files from there, but is this a correct approach? The multi-arch folder will always be there? Another method I though is parsing the content of ldconfig -v | grep /usr/lib/ and getting the first result (removing the collon). Is there an easier way to do this?

Читайте также:  Линукс для процессора i686

2 Answers 2

I will post the scripts for the methods I found. But if there is another default way, please post it.

ldconfig -v 2>>/dev/null | grep /usr/lib* | head --lines=1 | sed -e 's/://' 

I guess that it can return another folder if someone config another search order, eg. adding another folder before the default host multiarch folder.

Using the /etc/ld.so.conf.d folder:

lines=$(cat /etc/ld.so.conf.d/* 2>>/dev/null) for line in $lines ; do case "$line" in *Multiarch*) found_multiarch=1 ;; /usr/lib/*) if [ "$found_multiarch" = 1 ] ; then folder=$line break fi ;; esac done echo $folder 

It will return the first folder under /usr/lib that comes after the line with *Multiarch* .

Both scripts tested on armv7 and x86_64 (default installations, no foreign architectures) and returning the expected results.

Not tested in boxes with foreign architecture installed.

Yeah, it is reporting /usr/lib/i386-linux-gnu on x86_64 with foreign architecture installed. May be because of the order.

Thank you! I tested on another box. The ldconfig script does not work on these cases. But the second script worked like a charm!

My previous results was from the 2nd script. The 1st script also have an issue too, its result is /usr/lib/x86_64-linux-gnu/libfakeroot in the same system. I think you shouldn’t relay on comments or order to extract the architecture folder path. When having 2 arch active, there will be a mixture of paths and we can’t expect the order. May be it is more convenient to use uname -i to look for current running arch then check if arch specific folders exits in ldconfig listing. Here the full raw output that may help you debug: paste.ubuntu.com/23812802

Thank you for your results! Unhappily they don’t work. The question is: how ldconfig and gcc and dpkg-architecture know the default path? I will try to find the dpkg-architecture source code somewhere

I followed dpkg-architecture which is just a Perl script:

$ which dpkg-architecture /usr/bin/dpkg-architecture $ file /usr/bin/dpkg-architecture /usr/bin/dpkg-architecture: a /usr/bin/perl script, UTF-8 Unicode text executable $ more /usr/bin/dpkg-architecture use Dpkg::Arch qw(get_raw_build_arch get_raw_host_arch get_host_gnu_type debarch_to_cpuattrs get_valid_arches debarch_eq debarch_is debarch_to_debtriplet debarch_to_gnutriplet gnutriplet_to_debarch debarch_to_multiarch); $ man Dpkg::Arch $ locate "Dpkg/Arch" /usr/share/perl5/Dpkg/Arch.pm $ more /usr/share/perl5/Dpkg/Arch.pm ## this may fails if multi-arch is not supported $ dpkg --print-architecture amd64 ## it seems this what are you looking for $ gcc -dumpmachine x86_64-linux-gnu 

One thing that could be a drawback, in i386 installation gcc -dumpmachine reports i686-linux-gnu . It will work fine because /usr/lib/i686-linux-gnu is in ldconfig listing too same as /usr/lib/i386-linux-gnu ; However, the default created folder by Ubuntu is /usr/lib/i386-linux-gnu .

Источник

Оцените статью
Adblock
detector