[HOWTO] Köra Fedora på din Qnap
Posted: 11 Sep 2012, 18:27
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
-------------------------------------------------------
(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
-------------------------------------------------------