Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Virtualizing unRAID with Xen on Arch Linux, XBMC & Windows with VGA Passthrough

Featured Replies

If I am reading that correctly, you are basically loading bzimage/bzroot from the local HD...kinda like PXE but local.  Correct?  Do you have the USB plugged in and passed through just for the license and config?

 

Yes and Yes.

 

KVM / Xen does not need a bootloader and can boot straight into a Linux Kernel in a VM without it.

 

 

This is right up my alley!!!  :D  I love PXE booting unraid...upgrades couldn't be easier.  Now to think that Xen can load these file from a local HD...speed baby...speed!!!

 

John

  • Replies 314
  • Views 80.6k
  • Created
  • Last Reply

This is right up my alley!!!  :D  I love PXE booting unraid...upgrades couldn't be easier.  Now to think that Xen can load these file from a local HD...speed baby...speed!!!

 

When you type:

 

xl create unRAID.xml -c

 

You immediatly start and are now in the unRAID console. You will see it scroll through the entire boot process (in your SSH session or on your screen if at the server) and be given a login screen. No VNC needed. Same with XBMC running in a VM. Any Linux, BSD or Solaris Distro works this way.

 

To exit the unRAID (or whatever) console and get back to Arch one:

 

CTL+]

 

If you wanted to log into your XBMC VM from Arch...

 

xl console XBMC

 

Now you are in XBMCbuntu or OpenELEC or whatever.

 

It's only Windows where you would need to use VNC.

This is right up my alley!!!  :D  I love PXE booting unraid...upgrades couldn't be easier.  Now to think that Xen can load these file from a local HD...speed baby...speed!!!

 

Now you are in XBMCbuntu or OpenELEC or whatever.

 

It's only Windows where you would need to use VNC.

 

My ultimate goal...PXE (well now local) booting openELEC in a Xen VM.  I have had 0 success loading the OpenELEC kernel in a VM.

 

 

meh,  as fun as this has been, I think you were right yesterday when you suggested openSuse.  I know we got unRAID working from a boot perspective, but this was about a lot more in the end, ultimately I was going for multiple VMs, pass-through, everything.  If I wanted only unRAID I can go bare metal.  I tried it all, including this post on the Arch forum that got no responses, https://bbs.archlinux.org/viewtopic.php?id=174420  It makes no sense to me as it seems fairly basic as it seems something is just getting hung up somewhere and VNC is not happy.  Maybe something got jacked when I messed with my fstab to get things loaded or maybe when I shrunk my drive.  I mean overall, it is pretty easy, just a bunch of typing and pasting and waiting.  But in the end I hit a wall, so there are 2 choices here.  I can either start over with Arch and partition things right in the beginning or I can just bail on Arch and go to Opensuse.  It might be slightly more fun with a gui.  As much fun as straight command line is I also enjoy the GUI at times.  Heck, maybe that fails too and try Arch again.

 

One question that did arise in all of this and that is, if I install to USB, since it is linux, can I easily stick it into any machine or is there still lots tied to my hardware?  My thought being that if I do my install on a test system and want to take it to prod with out doing it again, is it possible?

 

 

Here is the completion of the install on the file you sent grumpy:

testARCH /home  # pacman -U xen-4.3.1-1-x86_64.pkg.tar.xz
loading packages...
warning: downgrading package xen (4.3.1-2 => 4.3.1-1)
resolving dependencies...
looking for inter-conflicts...

Packages (1): xen-4.3.1-1

Total Installed Size:   51.47 MiB
Net Upgrade Size:       0.44 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
(1/1) downgrading xen                              [######################] 100%

Note: If you are upgrading from one of the previous 4.2 xen builds, and are havi                        ng issues
      with graphics card passthrough, the default device model used has changed                         and the
      newer model can sometimes have issues. To resolve, add (or change ) the fo                        llowing
      line into your domain config file:
         device_model_version = "qemu-xen-traditional"

      Also remember to rebuild your grub configuration if upgrading from a non-x                        en 4.3.1
           install.

 

and here is the installation of bluez4


Packages (1): bluez4-4.101-4

Total Installed Size:   2.04 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring                     [######################] 100%
(1/1) checking package integrity                   [######################] 100%
(1/1) loading package files                        [######################] 100%
(1/1) checking for file conflicts                  [######################] 100%
(1/1) checking available disk space                [######################] 100%
(1/1) installing bluez4                            [######################] 100%
Optional dependencies for bluez4
    gstreamer0.10-base: bluetooth GStreamer support [installed]
    alsa-lib: Audio bluetooth devices support [installed]
    python2: to run bluez-simple-agent [installed]
    dbus-python: to run bluez-simple-agent
    pygobject: to run bluez-simple-agent
    libusb-compat: USB adapters support [installed]
    cups: CUPS backend
==> Packages no longer required by any installed package:
    gstreamer0.10-base libusb-compat
missing 'bluez' dependency for 'xen'

 

 

here is my xml, I thought posting it one last time can't hurt things as I wont be doing opensuse tonight yet.


#kernel = 'hvmloader'
builder = 'hvm'
vcpus = '1'
memory = '2048'
device_model_version="qemu-xen-traditional"
disk = [
        'phy:/dev/mapper/VMs-win7,hda,w',
        'file:/home/win7.iso,hdc:cdrom,r'
]
name = 'windows'
vif = ['mac=00:16:3E:51:20:4C, bridge=xenbr0']
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
boot = 'dc'
acpi = '1'
apic = '1'
viridian = '1'
xen_platform_pci='1'
sdl = '0'
vnc = '1'
vnclisten = '0.0.0.0'
vncconsole = '1'
vncpasswd = ''
stdvga = '0'
usb = '1'
usbdevice = 'tablet'
#pci = ['01:00.0','01:00.1','00:1d.0']
[code]

  • Author

You need to edit the PKGBUILD of xen when compiling with yaourt from bluez4 to the other way around. If you look at your error message the last thing it says is a problem with a messing dependency.

 

I didn't have to do this this week though so I'm puzzled as to why you do.

 

Sent from my Nexus 5 using Tapatalk

 

I'm not following this part of your blog Alex:

 

11y.PNG

 

So I added export EDITOR=nano to the bottom on /etc/bash/bashrc.

 

after that I am lost.  Can you elaborate on the "Edit visudo"?  is that a command?  Do I edit a file named visudo?

  • Author

I'm not following this part of your blog Alex:

 

11y.PNG

 

So I added export EDITOR=nano to the bottom on /etc/bash/bashrc.

 

after that I am lost.  Can you elaborate on the "Edit visudo"?  is that a command?  Do I edit a file named visudo?

 

Log out and in for the bashrc to take effect and then type visudo.

 

I admit I could be clearer here. Will edit soon.

 

Sent from my Nexus 5 using Tapatalk

 

 

after that I am lost.  Can you elaborate on the "Edit visudo"?  is that a command?  Do I edit a file named visudo?

 

It's a command so you can add your give it sudo rights.

 

1. If you haven't already, create a user

 

useradd -m -g users -G wheel -s /bin/bash USERNAME

 

2. Set up a password for the user

 

passwd USERNAME

 

Then your new user sudo rights

 

1. You do this running the following command:

 

visudo

 

2. Uncomment the following line

 

%wheel ALL=(ALL) NOPASSWD: ALL

 

3. Save it

 

4. Test it out by logging in as your new user

 

su USERNAME

 

sudo pacman -Syu

 

5. When finished, drop back out to root again.

 

exit

W00t!

 

[/[root@bigmama ~]# xl info
host                   : bigmama
release                : 3.12.5-1-ARCH
version                : #1 SMP PREEMPT Thu Dec 12 12:57:31 CET 2013
machine                : x86_64
nr_cpus                : 16
max_cpu_id             : 23
nr_nodes               : 2
cores_per_socket       : 4
threads_per_core       : 2
cpu_mhz                : 2400
hw_caps                : bfebfbff:28100800:00000000:00003b00:009ce3bd:00000000:00000001:00000000
virt_caps              : hvm hvm_directio
total_memory           : 24567
free_memory            : 23734
sharing_freed_memory   : 0
sharing_used_memory    : 0
outstanding_claims     : 0
free_cpus              : 0
xen_major              : 4
xen_minor              : 3
xen_extra              : .1
xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
xen_scheduler          : credit
xen_pagesize           : 4096
platform_params        : virt_start=0xffff800000000000
xen_changeset          :
xen_commandline        : /xen-4.3.1.gz dom0_mem=512M xsave=1
cc_compiler            : gcc (GCC) 4.8.2
cc_compile_by          : odonnellj
cc_compile_domain      : bigfatmoose.com
cc_compile_date        : Sat Dec 21 08:10:28 EST 2013
xend_config_format     : 4
code]

p7gw.png

 

Do I make mine look exactly like this or just add the xen-pciback part to my existing line?  Here is how mine looks now:

 

MODULES="radeon ext2 ext4 vfat"

 

john

  • Author

p7gw.png

 

Do I make mine look exactly like this or just add the xen-pciback part to my existing line?  Here is how mine looks now:

 

MODULES="radeon ext2 ext4 vfat"

 

john

 

I would just pciback bit. Experiment!

 

Sent from my Nexus 5 using Tapatalk

 

 

Any concern with the warnings below?

 

[root@bigmama mnt]# mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 3.12.5-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 3.12.5-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: smsmdtv
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful

  • Author

r6g4.png

 

Man, this is doing a lot of stuff!  :D

 

Yeah. It compiles xen from source!

 

Sent from my Nexus 5 using Tapatalk

 

 

  • Author

Any concern with the warnings below?

 

[root@bigmama mnt]# mkinitcpio -p linux
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
==> Starting build: 3.12.5-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [autodetect]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip initcpio image: /boot/initramfs-linux.img
==> Image generation successful
==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
  -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
==> Starting build: 3.12.5-1-ARCH
  -> Running build hook: [base]
  -> Running build hook: [udev]
  -> Running build hook: [modconf]
  -> Running build hook: [block]
==> WARNING: Possibly missing firmware for module: aic94xx
==> WARNING: Possibly missing firmware for module: smsmdtv
  -> Running build hook: [filesystems]
  -> Running build hook: [keyboard]
  -> Running build hook: [fsck]
==> Generating module dependencies
==> Creating gzip initcpio image: /boot/initramfs-linux-fallback.img
==> Image generation successful

 

Nope.

 

Sent from my Nexus 5 using Tapatalk

 

 

W00t #2:

 

[root@bigmama ~]# xl pci-assignable-list
0000:00:1a.0
0000:00:1a.7
0000:00:1d.7
0000:02:00.0
0000:83:00.1
0000:84:00.0
0000:85:00.1

W00t #2:

 

You are rocking and rolling today.

 

Won't be long now till you post a screenshot of unRAID in a VM.

 

I posted this elsewhere but since all the Arch Linux snobs hang out here and this guide is for Arch...  I will post here too.

 

Ironic, Feel free to post this on your blog too... You plagiarizer;)

 

Some of you asked me to provide a Guide / Explanation / Screenshot of what I meant when I said you could run Linux Desktop / GUI Applications on a HEADLESS Server from your Windows PC without having to install a full Linux Desktop.

 

On an Arch Linux HEADLESS Server every single window you see open below on my Windows PC... Is a Linux GUI / Desktop Application

 

BnxvE97.png

 

On my Windows PC

 

XMing

 

Download and install xming

 

Configure XMing

 

1. In Windows, select Xming ? XLaunch

 

2. At the Display settings dialog box, select Multiple windows and set the Display number as 0. Click on Next.

 

3. Keep clicking on Next button till you reach the Finish configuration page, then click on the Finish button.

 

Putty

 

Download and Install Putty

 

Configure Putty

 

1. Start PuTTY.

 

2. In the PuTTY Configuration section, on the left panel, select Connection ? SSH ? X11

 

3. On the right panel, click on the Enable X11 forwarding checkbox

 

4. Set the X display location as :0.0

 

5. Click on Session option on the left panel.

 

6. Enter the hostname or IP address in the Host Name textbox

 

7. Save the session.

 

Arch Linux Server

 

1. Install the packages I need

 

pacman -S openssh terminus-font xorg-xauth xterm

 

2. Configure openssh for X11 Forwarding

 

nano /etc/ssh/sshd_config

AllowTcpForwarding yes
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
Compression yes

 

nano /etc/ssh/ssh_config

 

ForwardX11 yes
ForwardX11Trusted yes <-- Had to add that one

 

3. Enable SSH to start on boot

 

systemctl enable sshd.service

 

4. Start SSH

 

systemctl start sshd.service

 

I "sexed" my xterm up by doing the following

 

NOTE: This is for Arch and might work in other Linux Distros but that is not guaranteed. Each one may / may not configure their xterm differently. The popular Linux Distros have wikis on customizing xterm if you want to learn more.

 

nano ~/.Xdefaults <--- You create this file

 

xterm*dynamicColors:     true
xterm*background:        black
xterm*foreground:        white
xterm*utf8:            2
xterm*eightBitInput:    true
xterm*saveLines:        32767
xterm*scrollTtyKeypress: true
xterm*scrollTtyOutput: false
xterm*scrollBar: false
xterm*loginShell: true
xterm*jumpScroll: true
xterm*multiScroll: true
xterm*toolBar: false
xterm*geometry: 100x30
xterm*faceName: Terminus:style=Regular:size=10
xterm*selectToClipboard: true

 

Test if SSH with X11 Forwarding is working

 

xterm

 

NOTE: Will start xterm on the server and open the GUI on your Windows PC. You can either type exit in your xterm that shows up on your Windows PC or you can CTL-C to quit.

 

To run Linux GUI Programs in the Background and still have access to your SSH session

 

xterm &

NOTE: Putting a space and then a & at the end will start it and it will run in the background and allow you start more programs like virt-manager. If you close the window in Windows, it will close the program running on the server.

 

A few examples of programs you might want to run

 

virt-manager, gparted, makemkv, etc.

  • Author

W00t #2:

 

[root@bigmama ~]# xl pci-assignable-list
0000:00:1a.0
0000:00:1a.7
0000:00:1d.7
0000:02:00.0
0000:83:00.1
0000:84:00.0
0000:85:00.1

 

Man I love it that you've done this, by following my blog. I only ever wrote it as an aide memoir really.  Awesome stuff.

 

Sent from my Nexus 5 using Tapatalk

 

 

I have yet to configure virt manager so ignore the error...just wanted to show it running on my win7 desktop via xming.  :)

 

6hiv.png

Story of my life... Your XMing using SSH with X11 Forwarding screenshot is bigger than mine.

 

Mine is smaller but at least it's pretty when compared to yours and I bet mine works better too!

Cant wait for the SSD to show up on monday so I can start all of this :)

 

Finally everything I need running on ONE machine

 

thanks

Myk

 

It couldn't be that easy, could it?  :(

 

bigmama /home/VMs/unRAID # xl create unRAID.cfg
Parsing config from unRAID.cfg
libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: /etc/xen/scripts/vif-bridge online [1925] exited with error status 1
libxl: error: libxl_device.c:1021:device_hotplug_child_death_cb: script: Could not find bridge device xenbr0
libxl: error: libxl_create.c:1115:domcreate_attach_vtpms: unable to add nic devices
libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: /etc/xen/scripts/vif-bridge offline [1955] exited with error status 1
libxl: error: libxl_device.c:1021:device_hotplug_child_death_cb: script: Could not find bridge device xenbr0

 

my unRAID.cfg:

 

on_xend_stop  = 'shutdown'
on_xend_start = 'start'
name = 'unRAID'
vcpus = '1'
memory = '1024'
vif = [ 'mac=00:16:3e:a1:b2:cc,bridge=xenbr0' ]
kernel = "/home/VMs/unRAID/bzimage"
ramdisk = "/home/VMs/unRAID/bzroot"
extra = "console=hvc0"
acpi = 1
apic = 1
pci = [ '02:00.0','84:00.0' ]

 

I'm guessing that I need to create xenbr0 and assign the proper MAC but I didn't see that in your guide Alex.  Did I miss it?  grumpy walked me through it before when we were messing with KVM on OpenSUSE.  I'll check that thread.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.