Last active
September 19, 2022 19:57
-
-
Save hrchu/3eb1c0aa9994df0328037fff04cd889d to your computer and use it in GitHub Desktop.
mhVTL install script for Ubuntu 16.04 (tested on the kernel version that less or equal 4.15.0)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Script to download, compile and install mhvtl | |
# Tested on ubuntu 16.04 | |
# Origin: http://mhvtl-a-linux-virtual-tape-library.966029.n3.nabble.com/Easy-Install-for-Debian-Ubuntu-td4025413.html | |
# 03/04/13 | |
# Added libconfig-general-perl (ensures tgt-admin can run) | |
# 04/04/13 | |
# Added line to append www-data to sudoers automatically | |
# Added check for sudo/root | |
# Added copy for tgt-admin in sbin (fixes persistant config in tgt mhvtl-gui) | |
# Added logging (log output to /tmp/log-mhvtl-install) | |
# 02/27/18 | |
# Fetch Makefile fixed forked repos | |
# Remove GUI install part since it is not work anymore | |
# Last Updated 02/27/2018 | |
# config script vars | |
NONE='\033[00m' | |
RED='\033[01;31m' | |
GREEN='\033[01;32m' | |
BOLD='\033[1m' | |
LOGFILE='/tmp/log-mhvtl-install' | |
# function logs text string to screen and file | |
logText() | |
{ | |
TEXT=$1 | |
TLEN=${#TEXT} | |
a=0 | |
TOUT="" | |
while [ $a -lt $TLEN ]; do | |
TOUT="$TOUT#" | |
a=$((a+1)) | |
done | |
if [ $2!="simple" ]; then | |
echo "########$TOUT\n### $TEXT ###\n$TOUT########" >> $LOGFILE | |
else | |
echo "$TEXT" >> $LOGFILE | |
fi | |
echo "${GREEN}${BOLD}$TEXT${NONE}" | |
tput sgr0 | |
} | |
echo "" > $LOGFILE | |
logText "Script Begin" | |
# check our script has been started with root auth | |
if [ "$(id -u)" != "0" ]; then | |
echo "${RED}${BOLD}This script must be run with root privileges. Please run again as either root or using sudo.${NONE}" | |
tput sgr0 | |
exit 1 | |
fi | |
# install required packages | |
logText "Downloading and Installing Packages" | |
sudo apt-get update >> $LOGFILE && sudo apt-get install sysstat lzop liblzo2-dev liblzo2-2 mtx mt-st sg3-utils zlib1g-dev git lsscsi build-essential gawk alien fakeroot linux-headers-$(uname -r) -y >> $LOGFILE; cd $HOME | |
# make a src directory if it doesnt already exist | |
logText "Check $HOME/src exists" | |
if [ ! -d $HOME/src ]; then | |
logText "Creating directory $HOME/src" simple | |
mkdir $HOME/src | |
fi | |
# create user, group and folders | |
logText "Create Users, Groups and Folders" | |
sudo groupadd -r vtl >> $LOGFILE | |
sudo useradd -r -c "Virtual Tape Library" -d /opt/mhvtl -g vtl vtl -s /bin/bash >> $LOGFILE | |
sudo mkdir -p /opt/mhvtl >> $LOGFILE | |
sudo mkdir -p /etc/mhvtl >> $LOGFILE | |
sudo chown -Rf vtl:vtl /opt/mhvtl >> $LOGFILE | |
sudo chown -Rf vtl:vtl /etc/mhvtl >> $LOGFILE | |
# download, compile and install mhvtl | |
logText "Download, Compile and Install mhvtl" | |
cd $HOME/src/ >> $LOGFILE | |
git clone https://github.com/markh794/mhvtl.git | |
cd mhvtl >> $LOGFILE | |
make distclean >> $LOGFILE | |
cd kernel/ | |
make >> $LOGFILE && sudo make install >> $LOGFILE | |
cd .. | |
make >> $LOGFILE && sudo make install >> $LOGFILE | |
# fix some errors | |
logText "Fix some errors" | |
sudo mkdir /etc/tgt >> $LOGFILE | |
sudo ln -s /usr/lib64/libvtlscsi.so /usr/lib/ >> $LOGFILE | |
sudo /etc/init.d/mhvtl start >> $LOGFILE | |
sleep 3 | |
logText "Show your tape libraries now!" | |
lsscsi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
in src/mhvtl/usr/Makefile, BINGROUP does not get defined, and must be fixed manually.
Also, mkvtl.service does not get created. You can run /etc/init.d/mhvtl start
Prior to start, you need to create, or after start, you need to edit these:
/etc/mhvtl/library_contents.10
/etc/mhvtl/library_contents.30