[HOWTO] Köra Fedora på din Qnap

Diskussion angående installation och användning.
Post Reply
warrep
Posts: 8
Joined: 08 Aug 2012, 21:42

[HOWTO] Köra Fedora på din Qnap

Post by warrep »

Hej,

(Postar det här i QPKG delen även fast det inte innehåller något med ett QPKG att göra. Tycker det passar bäst här)

För att köra Fedora på din nas krävs det i nedan fall en redan existerande Fedora system som du kan utgå från. Det måste även vara samma arkitektur som din Nas använder. I mitt fall är det x86-64 och en TS-559.

Jag spenderade alldeles för mycket tid med IPKG och dess 5 år gamla paket. Det här är sååååå mycket smidigare.

---------- [ ./createjail.sh (skript för att skapa ett jail) ]-------------
#!/bin/bash

if [ $# -ne 1 ]; then
echo "Supply name of jail as argument"
exit 1
fi

JAILNAME=$1
JAILPATH=`pwd`/${JAILNAME}

getkey -m "Ready to create jail in ${JAILPATH}?"

if [ $? -ne 0 ]; then
echo -e "\nPerhaps another time"
exit 1
fi

echo -e "\nLets start..."

mkdir -p ${JAILPATH}/var/lib/rpm
rpm --root ${JAILPATH} --initdb
yumdownloader --destdir=/var/tmp fedora-release rpm
cd /var/tmp
rpm --root ${JAILPATH} -ivh --nodeps fedora-release*rpm
yum --installroot=${JAILPATH} install bash yum
cp /etc/resolv.conf ${JAILPATH}/etc/resolv.conf

-------------------------------------------------------

Sedan använder kopierar du över hela det jail som du skapar till din NAS.
För att starta jailet så loggar du in via ssh och kör följande ./startjail.sh skript

---------- [ ./startjail.sh (skript för att starta jail) ]-------------
#!/bin/sh

JAILCMD="/bin/bash --login"
JAILNAME=$1
JAILPATH=`pwd`/${JAILNAME}

if [ $# -ne 1 ]; then
echo "Supply name of jail to start as argument"
exit 1
fi

echo -e "\nLets start..."

cd ${JAILPATH}
# MOUNTS
{ mount -o bind /dev "${JAILPATH}"/dev && echo "/dev mounted" ; } || { echo "mounting of dev failed" ; exit 4 ; }
{ mount -t proc /proc "${JAILPATH}"/proc && echo "/proc mounted" ; } || { echo "mounting of proc failed" ; exit 5 ; }
{ mount -o bind /sys "${JAILPATH}"/sys && echo "/sys mounted" ; } || { echo "mounting of sys failed" ; exit 6 ; }

# Make sure we got a resolv.conf
cp -f /etc/resolv.conf ${JAILPATH}/etc/resolv.conf

# Then start the jail
chroot ${JAILPATH} ${JAILCMD}

umount "${JAILPATH}"/sys || { echo "umounting of ${JAILPATH}/sys failed" ; UNMOUNT_FAILED=1 ; }
umount "${JAILPATH}"/proc || { echo "umounting of ${JAILPATH}/proc failed" ; UNMOUNT_FAILED=1 ; }
umount "${JAILPATH}"/dev || { echo "umounting of ${JAILPATH}/dev failed" ; UNMOUNT_FAILED=1 ; }

# Check if UNMOUNT_FAILED was set
if [ "${UNMOUNT_FAILED}" == "1" ]; then
echo -e "\nJail needs to be unmounted manually"
exit 1
fi

echo -e "\nJail shut down just fine..."
exit 0

-------------------------------------------------------
Post Reply