Running unRAID with a full Slackware distro


Recommended Posts

  • 1 month later...
  • Replies 130
  • Created
  • Last Reply

Top Posters In This Topic

Just installed with unRAID 4.4.2 and Slackware 12.2. The only changes from the HOWTO instructions were to modularize System V as someone suggested above, and I had to copy over the following files from the /unraid/etc/rc.d directory to get emhttp to work without throwing errors.

 

/etc/rc.d/

-rwxr--r-- 1 root root  2457 2009-01-14 02:17 rc.nfsd*

-rwxr-xr-x 1 root root  1893 2009-01-14 01:55 rc.fuse*

-rwxr-xr-x 1 root root  989 2009-01-14 01:50 rc.syslog*

-rwxr-xr-x 1 root root  409 2009-01-14 01:49 rc.local*

-rwxr-xr-x 1 root root  3060 2009-01-14 01:48 rc.ifplugd*

-rwxr-xr-x 1 root root  1286 2009-01-14 01:46 rc.samba*

 

A suggestion. It would be good to give a little more instructions on how to diff and/or merge the rc. files. Ends up in my case I could just copy them over, but I diff'ed them just to check.

 

My next step is to install the mythtv backend and get two tuner cards working. Thanks so much and wish me luck!

 

 

Link to comment
  • 3 weeks later...
  • 3 months later...

Getting there, but not there yet.

 

Following the instructions from the link you gave me: http://www.thetechguide.com/howto/unraid-on-hard-drive.html

 

If you want to setup User-Shares, you MUST run fuse first. Do so like this:

 

/etc/rc.d/rc.fuse start

 

If you forget and enable User-Shares, then try to run fuse, it won't work (even after stopping and starting the array). If you accidentally did this, here's how to fix it. Stop the array, disable User-Shares. Remove the entire /mnt/user directory using the command rm -rf /mnt/user (note that if you copied anything to a User-Share when it was not working properly, this will completely delete it, you've been warned!). Start the array. Stop it again and enable User-Shares. Start it back up, and it should work. You will need to have fuse start up in your rc.local file before emhttp does.

 

If this is a new install (you didn't already have a working unRAID setup on this server), you're ready to start emhttp!

 

emhttp &

 

Result: user shares work! But when I reboot the shares don't work. The instructions say fuse needs to be loaded before emhttp. Fuse is loaded in rc.S and emhttp is loaded as part of the go script which is called by rc.local which is called by rc.M. My dmesg is attached so you can see where fuse is loading.

 

Seems like I'm loading them in the right order but it's not working. Help!

 

Thanks again,

 

Phil/TW

 

 

 

Link to comment

Attempted what you recommended:

 

1) mkdir /lib/modules/2.6.27.7-unRAID/kernel/fs/fuse

2) cp /lib/modules/2.6.27.7/kernel/fs/fuse/* /2.6.27.7-unRAID

3) mv /etc/rc.d/rc.fuse /etc/rc.d/rc.fuse.disabled

 

Stop array / Reboot via emhttp

 

Make sure you dont have any scripts that load /etc/rc.d/rc.fuse :-)

 

What I found in /lib/modules/2.6.27.7/kernel/fs/fuse/ was fuse.ko. Is your intention to copy this to /lib/modules/2.6.27.7-unRAID/kernel/fs/fuse/? This is what I did. Then I renamed rc.fuse and removed the reference to fuse in rc.S.

 

Tried a reboot and no-dice, then tried the start-stop method of getting it to work, which worked previously, and now it doesn't. Did I copy fuse.ko to the right place?

 

Thanks,

 

Phil/TW

Link to comment

Attempted what you recommended:

 

1) mkdir /lib/modules/2.6.27.7-unRAID/kernel/fs/fuse

2) cp /lib/modules/2.6.27.7/kernel/fs/fuse/* /2.6.27.7-unRAID

3) mv /etc/rc.d/rc.fuse /etc/rc.d/rc.fuse.disabled

 

Stop array / Reboot via emhttp

 

Make sure you dont have any scripts that load /etc/rc.d/rc.fuse :-)

 

What I found in /lib/modules/2.6.27.7/kernel/fs/fuse/ was fuse.ko. Is your intention to copy this to /lib/modules/2.6.27.7-unRAID/kernel/fs/fuse/? This is what I did. Then I renamed rc.fuse and removed the reference to fuse in rc.S.

 

Tried a reboot and no-dice, then tried the start-stop method of getting it to work, which worked previously, and now it doesn't. Did I copy fuse.ko to the right place?

 

Thanks,

 

Phil/TW

 

Hi Phil,

 

Yes, that is the file I copied across to the same folder and it worked for me after that. I noticed that on bootup it was saying 'the fuse filesystem has already been loaded'. I had also compiled fuse support into my kernel as a module - perhaps thats why it's working for me?

 

Hopefully this gives you something to work on... it does work perfectly for me now, however, it took me around 12 hours (straight) of messing around with it. I do remember copying /md* to the unraid kernel and (possibly) all the fuse stuff too before compiling... perhaps thats what I did.

 

 

Someone with some more experience may be able to help :-)

Link to comment

What I found in /lib/modules/2.6.27.7/kernel/fs/fuse/ was fuse.ko. Is your intention to copy this to /lib/modules/2.6.27.7-unRAID/kernel/fs/fuse/? This is what I did. Then I renamed rc.fuse and removed the reference to fuse in rc.S.

 

 

Just noticed... I believe rc.S. is for single user mode, normally, Linux boots into Multi-user mode which is rc.M. Because you have renamed rc.fuse, any scripts should not load this. I believe mine loads from the kernel itself.

 

I'm happy to share whatever info you need from my system :-)

 

Link to comment

 

from the slackware book http://www.slackware.com/config/init.php:

The first program to run under Slackware besides the Linux kernel is init. This program reads /etc/inittab file to see how to run the system. It runs the /etc/rc.d/rc.S script to prepare the system before going into your desired runlevel. The rc.S file enables your virtual memory, mounts your filesystems, cleans up certain log directories, initializes Plug and Play devices, loads kernel modules, configures PCMCIA devices, sets up serial ports, and runs System V init scripts (if found).

 

So I believe rc.S runs no matter what and rc.K is for single user mode and rc.M is multi-user. I looked in rc.M and there is no mention of fuse, and as I said before I disabled the rc.fuse mention in rc.S. dmesg still shows fuse loading, which I believe is the kernel.

 

I run my server headless so I want to capture what streams by on the screen during boot. Is this stored in a file somewhere or do I just have to connect a monitor and watch it?

Link to comment

 

from the slackware book http://www.slackware.com/config/init.php:

The first program to run under Slackware besides the Linux kernel is init. This program reads /etc/inittab file to see how to run the system. It runs the /etc/rc.d/rc.S script to prepare the system before going into your desired runlevel. The rc.S file enables your virtual memory, mounts your filesystems, cleans up certain log directories, initializes Plug and Play devices, loads kernel modules, configures PCMCIA devices, sets up serial ports, and runs System V init scripts (if found).

 

So I believe rc.S runs no matter what and rc.K is for single user mode and rc.M is multi-user. I looked in rc.M and there is no mention of fuse, and as I said before I disabled the rc.fuse mention in rc.S. dmesg still shows fuse loading, which I believe is the kernel.

 

I run my server headless so I want to capture what streams by on the screen during boot. Is this stored in a file somewhere or do I just have to connect a monitor and watch it?

 

 

Well that's good start that fuse is still loading before your go script or rc.local (which is what I was trying to get at before with the module thing). As for the boot screen, I thought dmesg shows this but I guess not.

 

I may/may not have mentioned it, but I copied all the fuse stuff and md stuff from the unraid kernel to my kernel source before compiling. This may have made a difference too.

Link to comment

Rebuilt the kernel with FUSE as a module instead of built into the kernel. Kept FUSE in rc.S disabled. No user directories.

 

Tried enabling FUSE in rc.S and no user directories on reboot, haven't yet tried stopping the array, disabling, starting, stopping, enabling, starting yet because when I tried to stop the array it labeled one my disks unformatted. Rebooting made this go away, so I don't know yet if I can get user directories this way or not.

 

I'm tempted to try a fresh install on a spare hard drive just to see if I'm just turned around on my more mature installation.

 

I'll try your .config file below. Any guesses on what the critical switches are that you flipped?

 

Thanks,

 

Phil/TW

 

 

Link to comment
  • 1 month later...

Doing the full install on a new box and got to running emhttp -p 88 and get a "segmentation fault" error, with the following in /var/log/messages:

 

Aug 21 12:22:23 wigdor emhttp: unRAID System Management Utility version 4.4.2
Aug 21 12:22:23 wigdor emhttp: Copyright (C) 2005-2008, Lime Technology, LLC
Aug 21 12:22:23 wigdor emhttp: Unregistered
Aug 21 12:22:23 wigdor emhttp: Device inventory:
Aug 21 12:22:23 wigdor emhttp: pci-0000:00:09.0-ide-0:1 (hdb) ata-Maxtor_6Y120P0_Y32VK39E
Aug 21 12:22:23 wigdor emhttp: pci-0000:00:09.0-ide-1:0 (hdc) no id
Aug 21 12:22:23 wigdor emhttp: shcmd (1): rmmod md-mod >>/var/log/go 2>&1
Aug 21 12:22:23 wigdor emhttp: shcmd (2): modprobe md-mod super=/boot/config/super.dat slots=0,0,0,0,0,0 >>/var/log/go 2>&1
Aug 21 12:22:23 wigdor emhttp: mdState not found
Aug 21 12:22:23 wigdor kernel: emhttp[2966]: segfault at 0 ip b7dda8c1 sp bfc7e74c error 4 in libc-2.7.so[b7d69000+145000]

 

Don't recall having this problem before, any ideas how to fix it?

 

Thanks,

 

Phil/TW

Link to comment

What version of Slackware and the Kernel are you using?

 

I've run unRaid 4.4 on Slackware 12.2 and upgraded it to 4.5beta6 after a kernel update. The key, as Joe L stated, is to use similar kernel levels, 2.6.29.x for unRaid 4.5beta6 and 2.6.27.x for unRaid 4.4.2. It doesn't have to be exactly the same, generally you will need to have the first 3 series match (2.6.29 / 2.6.27). If you're a novice, it's best if you try an exact kernel match first before moving to a newer patch level.

 

I have unRaid 4.5beta6 running on Slackware-current (2009-08-19) using kernel 2.6.29.6 without issues. I even had unRaid 4.5beta6 working on a 2.6.30.x kernel after some fixes in the md.c driver; switch from struct hd_driveid driveid _to_ u16 driveid[ATA_ID_WORDS], driveid.model _to_ (char *)(driveid + ATA_ID_PROD), and driveid.serialno _to_ (char *)(driveid + ATA_ID_SERNO) from what I remember }.

 

I haven't managed to get unRaid 4.5beta6 running on Slackware64-current as emhttp exits promptly with a mere "file not found" error. I haven't had the time to trace it to see what the issue is, likely some direct reference to files which are now located elsewhere. Unfortunately I haven't had sparetime to move further with this miniproject.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.