TestDriveV2 livecd

Το Υπουργείο Υποδομών, Μεταφορών και Δικτύων έχει διαθέσιμο για τους υποψήφιους οδηγούς το Πρόγραμμα TestDriveV2 στον Iστότοπο του.

Τα προβλήματα για την χρήση αυτού του προγράμματος είναι πολλά.

Είναι φτιαγμένο για windows XP, και υποστηρίζει μονό συγκεκριμένη ανάλυση οθόνης και ευκρίνειας γραμματοσειράς.

Έτσι έφτιαξα ένα live cd που το τρέχει αυτόματα, ανεξάρτητα από το λειτουργικό σε οποιοδήποτε PC χρησιμοποιώντας wine.

Οι οδηγίες φαίνονται πολύπλοκες αλλά είναι γενικές, για την δημιουργία ubuntu – debian remix.

Το cd δεν εγκαθιστά τίποτα, απλά το βάζεις και κάνεις boot με αυτό (δες τις οδηγίες του PC σου για το πως μπορείς να κάνεις εκκίνηση από το cdrom) μπορείς αν θες να φτιάξεις με αυτό και ένα boot usb χρησιμοποιώντας ένα από τα πολλά εργαλεία για αυτόν τον σκοπό.

Δουλεύουμε σε Ubuntu

Πρώτα εγκαθιστούμε τα απαραίτητα tools

sudo apt-get install squashfs-tools genisoimage
sudo apt-get install schroot
sudo apt-get install qemu-kvm

Δημιουργούμαι τις ρυθμίσεις για το περιβάλλον chroot

vim /etc/schroot/chroot.d/TestDriveV2.conf
[TestDriveV2]
description=TestDrive Test
aliases=testdrive
root-groups=root
type=directory
directory=/WineTestDriveV2/edit
users=etsoft
root-users=etsoft
personality=linux32
preserve-environment=true

φτιάχνουμε τον φάκελο εργασίας

sudo mkdir /WineTestDriveV2
sudo chown -R $USER:$USER /WineTestDriveV2
cd /WineTestDriveV2

κατεβάζουμε ένα mini remix για να “χτίσουμε” πάνω σε αυτό

wget http://ubuntu-mini-remix.mirror.garr.it/mirrors/ubuntu-mini-remix/15.10/ubuntu-mini-remix-15.10-i386.iso

δημιουργούμε ένα mount point

mkdir mnt
sudo mount -o loop ubuntu-mini-remix-15.10-i386.iso mnt

και μετά εξάγουμε τα περιεχόμενα σε ένα φάκελο

mkdir extract-cd
sudo rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

αποσυμπιέζουμε το filesystem

sudo unsquashfs mnt/casper/filesystem.squashfs
sudo mv squashfs-root edit

τρέχουμε σε ένα άλλο τερματικό

xhost +

για να δουλέψουν τα Χ δανειζόμαστε το τρέχον Xauthority

sudo cp ~/.Xauthority edit/root/.Xauthority

φτιάχνουμε έναν φάκελο

sudo mkdir edit/WineTestDriveV2

κάνουμε mount τα devices

sudo mount --bind /dev/ edit/dev

και αλλάζουμε σε περιβάλλων chroot

sudo schroot -c testdrive

δημιουργούμε password για τον root
passwd

βάζουμε DNS

echo "nameserver 8.8.8.8" >/etc/resolv.conf

κάνουμε mount τις υπηρεσίες

mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts

εγκαθιστούμε Ελληνικά

apt-get install language-pack-el

locale-gen el_GR.UTF-8
update-locale LANG=el_GR.UTF-8
DISPLAY=:0.0 dpkg-reconfigure locales

export HOME=/root
export LC_ALL=el_GR.UTF-8
export LANG=el_GR.UTF-8
export LANGUAGE=el_GR

echo "HOME=/root">>/etc/environment
echo "LC_ALL=el_GR.UTF-8">>/etc/environment
echo "LANG=el_GR.UTF-8">>/etc/environment
echo "LANGUAGE=el_GR">>/etc/environment

λεμέ στο casper να φορτώνει σαν root

apt-get install vim
vim /etc/casper.conf
# This file should go in /etc/casper.conf
# Supported variables are:
# USERNAME, USERFULLNAME, HOST, BUILD_SYSTEM, FLAVOUR

export USERNAME=»root»
export USERFULLNAME=»Live session user»
export HOST=»root»
export BUILD_SYSTEM=»Root»

# USERNAME and HOSTNAME as specified above won’t be honoured and will be set to
# flavour string acquired at boot time, unless you set FLAVOUR to any
# non-empty string.

export FLAVOUR=»Root»

εγκαθιστούμε κάποια απαραίτητα προγράμματα καθώς και το wine


apt-get install software-properties-common

add-apt-repository universe
apt-get update
apt-get install wine

add-apt-repository multiverse
apt-get update
apt-get install ttf-mscorefonts-installer

apt-get install xinit

apt-get install desktop-file-utils
apt-get install firefox #ναι.. θα χρειαστεί από τα winetricks

Φτιάχνουμε τις ρυθμίσεις για virtual desktop με ανάλυση 1024×768 και 120dpi fonts

DISPLAY=:0.0 winecfg

εγκαθιστούμε την συνδεσιμότητα για την βάση

DISPLAY=:0.0 winetricks jet40

και τέλος κατεβάζουμε εγκαθιστούμε και ενημερώνουμε το TestDriveV2

cd /WineTestDriveV2
wget http://www.yme.gr/uploads/mstheyo/TestDriveV2.zip
unzip TestDriveV2.zip

cd TestDriveV2
DISPLAY=:0.0 wine setup.exe

cd /root/.wine/drive_c/TestDriveV2/

wget http://www.yme.gr/uploads/mstheyo/ExerBase.zip
rm ExerBase.mdb
unzip ExerBase.zip
rm ExerBase.zip
DISPLAY=:0.0 wine TestDriveV2.exe

cd ..

μεταφέρουμε για ευκολία τον φάκελο στο root

sudo mv ./TestDriveV2 /TestDriveV2

φτιάχνουμε ένα script για την εκκίνηση

vim /TestDriveV2/start.sh
#!/bin/bash
cd /TestDriveV2
/usr/bin/wine TestDriveV2.exe

και ρυθμίζουμε την αυτόματη εκκίνηση στο boot
vim /etc/rc.local
startx /usr/bin/xterm -e "/bin/bash -c /TestDriveV2/start.sh"

exit 0

vim /etc/X11/Xwrapper.config
allowed_users=anybody

μετά βγαίνουμε από το περιβάλλον chroot


umount /proc || umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount edit/dev

πειράζουμε το isolinux για να εκκινεί αυτόματα

sudo vim extract-cd/isolinux/isolinux.cfg
# D-I config version 2.0
include menu.cfg
default vesamenu.c32
prompt 0
timeout 1
totaltimeout 1
noescape 1
ui gfxboot bootlogo

βρίσκουμε τα πακέτα που εγκαταστάθηκαν

sudo su #!όχι απλά sudo command
chmod +w extract-cd/casper/filesystem.manifest
chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest
exit

sudo cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop
sudo sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop
sudo sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop

αφαιρούμε το παλιό filesystem και δημιουργούμαι νέο

sudo rm extract-cd/casper/filesystem.squashfs
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs

υπολογίζουμε το μέγεθος

sudo su
printf $(du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size
exit

ονομάζουμε το cd μας

sudo vim extract-cd/README.diskdefines
#define DISKNAME TestDriveV2 **ubuntu 15.10-Remix**
#define TYPE binary
#define TYPEbinary 1
#define ARCH x86
#define ARCHx86 1
#define ARCHi386 0
#define DISKNUM 1
#define DISKNUM1 1
#define TOTALNUM 0
#define TOTALNUM0 1

Υπολογίζουμε τα checksum

cd extract-cd
sudo rm md5sum.txt
find -type f -print0 | sudo xargs -0 md5sum | grep -v isolinux/boot.cat | sudo tee md5sum.txt

δημιουργούμαι το cd
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../TestDriveV2.iso .

cd ..

και τέλος το δοκιμάζουμε

qemu-system-i386 -enable-kvm -boot d -cdrom TestDriveV2.iso -m 512 #set mem or else “vfs unable to mount root fs”

To TestDriveV2 θα πρέπει να εμφανιστεί αυτόματα 🙂