Πώς να φτιάξετε την δική σας έκδοση του Linux
To etlinux είναι μια προσπάθεια να φτιαχτεί μια έκδοση linux από την αρχή, βασισμένο στην ήδη υπάρχουσα εγκατάσταση του SuSe (ή κάποιας άλλης RPM based διανομής).
Υπάρχουν διάφοροι λόγοι για να θέλει κανείς αυτό.
Ο προφανής είναι να βελτιστοποιήσει το σύστημα του χρησιμοποιώντας μόνο αυτά ακριβώς που χρειάζεται.
Εδώ θα βρείτε και θα μπορείτε να διορθώσετε τα διάφορα κείμενα που περιγράφουν το etLinux
Για να γίνει πιό εύκολη η ανάπτυξη μπορούμε να χρησιμοποιήσουμε το πρόγραμμα εικονικού υπολογιστή vmware
Να συμφωνεί με τα όσα ορίζει ο οργανισμός http://www.linuxbase.org
Να είναι κατά το δυνατόν εξελληνισμένο
Να είναι προσανατολισμένο σε περιβάλλον γραφείου
Να υποστηρίζει μέσο wine εφαρμογές γραφείου
Να βασίζεται στον επερχόμενο 2.6.χ πυρήνα (Να αρχίσουν οι δοκιμές με την σειρά 2.5.χχ)
Να χρησιμοποιήσω το kde σαν περιβάλλον εργασίας
ΠΩΣ:
Να κατασκευάζονται συμπιεσμένα backups από ένα πλήρες Instalation
για κάθε τύπο επεξεργαστή που θέλουμε (i486,pentium,pentium pro,amd) και κατά την εγκατάσταση
να διαλέγει ο χρήστης αυτό που αντιπροσώπευε το σύστημά του.
Η διαδικασία θα είναι η εξής:
Το σύστημα θα απαιτεί clean instalation σε αφορμάριστο δίσκο
Θα κάνει boot από ένα cd οπού θα ακολουθεί της οδηγίες για να κάνει fdisk στο σύστημα του
αφού κάνει το fdisk θα φορμάρω τα partition hda1 (boot) με ext2 hda2 (/) με raiserfs και hda3 σαν swap
ΚΑΤΑΣΚΕΥΗ ΤΩΝ INSTALATIONS
Οι παρακάτω οδηγίες δεν ειναι απαραίτητο (μάλιστα ίσως επιβάλλεται να μην)
να τηρηθούν κατα γράμμα.
Αν και γενικά το όλο ενχείρημα δεν είναι δύσκολο, καλό θα ήταν να μην
το επιχειρίσης αν δεν καταλαβαίνεις τι κάνεις.
Δίνω αυτό το κείμενο με την ελπίδα οτι θα βοηθήσω
την Ελληνική κοινότητα του Linux στην κατασκευή ενός πλήρους
και εξελληνισμένου λειτουργικού με σκοπό την εφαρμογή του
σε δημόσιες υπηρεσίες, σχολεία και γενικά οπουδήποτε
μπορεί να χρισιμοποιηθεί ενα φτηνό και αξιόπιστο σύστημα.
Θα πρέπει να σου γνωρίσω οτι ΔΕΝ ΕΥΘΥΝΟΜΑΙ με κανένα τρόπο
αν ακολουθώντας τις παρακάτω οδηγίες δημιουργήσεις πρόβλημα
στο σύστημά σου, ή ακόμα χειρότερα το καταστρέψεις!
Δουλεύουμε σε ενα πλήρες λειτουργικό σύστημα πχ SuSe 8.2
Πρώτα βάζουμε έναν καινούριο σκληρά δίσκο στο PC
τον φορμάρουμε με raiserfs, το κάνουμε mount στο folder /otheros δίνουμε δικαιώματα εγγραφής με chmod σε απλό χρήστη του συστήματος και δημιουργούμε σε αυτό τα folders όπως απαιτεί το LFH (Linux Filesystem Hierarchy) με το παρακάτω script
///////////////////////////////////////////////////////////////////////
ΠΡΟΣΟΧΗ το πρώτο πράγμα που πρέπει να κάνεις ειναι να δώσεις τιμή στην μεταβλητή GLX
GLX=/otheros
\\\\\\\\\\\\\\\\\\\\\
/
/bin
/boot
/dev
/etc \
|
X11 \
| |
| xkb
| lbxproxy
| proxymngr
| xdm
| gdm
| fonts
| fs
| xinit
chatscripts
init.d
pam.d
postfix
ppp
profile.d
skel
sysconfig
xinet.d
opt
sgml
/home
/lib \
|
i386
iptables
kbd
modules
oss
security
/lost+found
/mnt \
|
cdrom
cdrw
dvd
floppy
/opt
/proc
/root
/sbin
/tmp
/usr \
|
X11R6
/var \
|
backups
cache \
| |
| fonts
| man
| www
crash
db
games
lib
local
lock
log
gdm
mail
opt
run
spool
tmp
named
yp
\\\\\\\\\\\\\\\\\\\\\
—-CreateLFH.sh
#!/bin/bash
#Create folders based on LFH book
#2003 Skarvelis Panagiotis
#Comments may be in Greeklish
######!!!!!!! na fiakso kai to init.d mazi me ta rc0.d …. rc6.d boot.d
#Me to paron script mporeite na dimiourgisete
#me grigoro tropo ta directory’s opos thelei to
#LFH http://www.pathname.com/fhs/
#h organosh tou script einai vasismenh sto sxetiko
#command tou LFS
#error variables
E_NOARG=65
E_NODIR=66
#Elenxos gia to an exei dosei to path
if [ -z “$1” ]
then
echo “Usage: `basename $0` PathToOtherOS”
echo “For example: `basename $0` /otheros”
exit $E_NOARG
fi
#edo epishs na elenxo an h $1 einai ena pragmatiko folder
if [ -d “$1” ] # Check if folder exists.
then
GLX=$1
else
echo “Directory \”$1\” does not exist.”
exit $E_NODIR
fi
#ola kala dimiourgise ta folders
mkdir -p $GLX/{lost+found,bin,boot,dev/pts,etc/opt,etc/X11,etc/sgml,home,lib,mnt,proc}
mkdir -p $GLX/{sbin,tmp,usr/local,opt}
mkdir -p $GLX/lib/{i386,iptables,kbd,modules,oss,security}
mkdir -p $GLX/etc/X11/{xkb,lbxproxy,proxymngr,xdm,fs,xinit}
for dirname in $GLX/usr $GLX/usr/local
do
mkdir -p $dirname/{bin,etc,include,lib,sbin,share,src}
ln -s share/{man,doc,info} $dirname
mkdir -p $dirname/share/{dict,doc,info,locale,man}
mkdir -p $dirname/share/{nls,misc,terminfo,zoneinfo}
mkdir -p $dirname/share/man/man{1,2,3,4,5,6,7,8}
done
mkdir -p $GLX/var/{crash,db,lock,log/gdm,mail,run,spool}
mkdir -p $GLX/var/{games,backups,opt,lib/misc,local}
mkdir -p $GLX/var/cache/{fonts,man,www}
mkdir -p $GLX/opt/{bin,doc,include,info}
mkdir -p $GLX/opt/{lib,man/man{1,2,3,4,5,6,7,8}}
ln -s ../var/tmp $GLX/usr
—-
Προσοχή απο εδώ και πέρα ίσως γίνουν λάθη που
θα ειναι καταστροφικά για το σύστημα σου
Πρόσεχε κάθε τι που κάνεις και σκέψου το
μια δεύτερη φορά πριν το επιχειρίσεις
Αλλάζουμε σε root και τρέχουμε τα παρακάτω
ΠΡΟΣΟΧΗ το πρώτο πράγμα που πρέπει να κάνεις ειναι να δώσεις τιμή στην μεταβλητή GLX
GLX=/otheros
*** Prosoxh prepei na kano ena script gia ta parakato!!!
#san root prepei na fiaksoume ta parakato
GLX=/otheros; \
chown -R 0:0 $GLX; \
chmod -R 0755 $GLX; \
mkdir -p $GLX/root; \
mkdir -p $GLX/var/tmp; \
chmod 0750 $GLX/root; \
chmod 1777 $GLX/tmp $GLX/var/tmp
*** Cut kai Paste ta parapano se mia consola root
2)///////////////////////////////////////////////////////////////////////
Παραμένοντας πάντα ως root τρέχουμε και το παρακάτω πρόγραμμα για να δημιουργήσουμε το
βασικο σύστημα στο οποίο θα πάμε μετά να δημιουργήσουμε το δικό μας
\\\\\\\\\\\\\\\\\\\\\\\
—createGLX.sh
#!/bin/bash
#Create minimum Linux From RPM distribution
#2003 Skarvelis Panagiotis
#Comments may be in Greeklish
#na to kano na trexei mono apo ton root afou triplotsekaro
#oti exei dosei to clonefolder
#error variables
E_NOARG=65
E_NODIR=66
if [ $# -ne 1 ]
then
echo “Usage: `basename $0` clonefolder”
exit $E_NOARG
fi
if [ ! -d “$1” ]
then
echo “Directory \”$1\” does not exist.”
exit $E_NODIR
else
GLX=$1
fi
for lst in $(rpm -ql binutils gcc cpp gcc-c++ glibc glibc-devel tcl gawk coreutils bzip2 gzip diffutils findutils make grep sed gettext net-tools ncurses patch tar texinfo bash util-linux perl reiserfs libgcc sysvinit rpm )
do
#prota fiaxno osa folders zhtane ta programmata
if [ -d “$lst” ]
then
#ean einai directory tote apla dimioyrgiseto
# echo “mkdir \”$GLX$lst\” ”
mkdir -p $GLX$lst
else
dtc=`dirname $lst`
if [ ! -d “$GLX$dtc” ]
then
#ean den yparxei to directory pou anaferete to arxeio dimiourgiseto
# echo “mkdir \”$GLX$dtc\” to hold file `basename $lst`”
mkdir -p $GLX$dtc
fi
#meta kano copy
#gia na apofigo ta kolimata den kano kopy to parakato
#pio sosto einai na mhn kanei copy oti einai sto /dev kai sto /proc
#na to fiakso kapia stigmh
if [ “$lst” != “/dev/initctl” ]
then
# echo “now copy $lst”
cp $lst $GLX$dtc
else
echo “!!!!!!not copy $lst”
fi
fi
done
#tora kano copy ta librarys pou zhtane ta programmata
for liblst in $(find $GLX/{,usr/,usr/local/}{bin,sbin,lib} -type f -exec /usr/bin/ldd ‘{}’ ‘;’ 2>&1 |grep .so.|awk ‘BEGIN { FS = “(” } { print $1 }’ | awk ‘BEGIN { FS = “>” } { print $2 | “sort” }’|uniq)
do
dtc=`dirname $liblst`
if [ ! -d “$GLX$dtc” ]
then
#ean den yparxei to directory pou anaferete to lib dimiourgiseto
# echo “mkdir \”$GLX$dtc\” to hold library `basename $liblst`”
mkdir -p $1$dtc
fi
# echo “now copy $liblst”
cp $liblst $GLX$liblst
done
——
3)///////////////////////////////////////////////////////////////////////
Μετα βρίσκουμε τα sources απο τον πιο προσφατο kernel (www.kernel.org)
και τα κάνουμε unzip στο $GLX/usr/src οπου και θα δημιουργηθεί ενα folder με
το ονομα του kernel πχ linux-2.6.0-test4
μετα κάνουμε και patch αν υπάρχουν.Δες για οδηγίες μεσα στο Documentation του
kernel.
πρεπει να γινει και link
ln -s linux-2.6.0-test4 linux
μιας και πολλά προγράμματα περιμένουν να βρουν τα sources του
kernel στο /usr/src/linux
Πριν προχωρήσεις θα πρέπει να κάνεις πρώτα μια καλή
καταγραφή των περιφερειακών του υπολογιστή σου.
Μπορείς να βρείς τι περιέχει το κουτί με διάφορους τρόπους
Μια καλή αρχή ειναι τα manual που συνοδεύουν την μητρική
και τα περιφερειακά.
Επίσης μπορείς να βρείς κάποιο προγραμματάκι σαν το hwinfo που σου λέει
με λεπτομέρεια τι έχεις
Σημείωσε λοιπόν τα πάντα σε ένα χαρτί και μετά πήγαινε στο folder του kernel
και τρέξε make xconfig (αν εχεις γραφικά)
Τώρα κάνε
chroot $GLX
cd /usr/src/linux-2.6.0-test4
μετά τρέξε make all για να δημιουργηθούν το bzImage και τα modules
κατόπιν για να εγκατασταθεί ο πυρήνας
make install
και για τα αρθρώματα
make modules_install
Ή αλλιώς αν θες χειροκίνητα τοτε exit και
κατοπιν αντέγραψε το image και το System.map
cp arch/i386/boot/bzImage $GLX/boot/vmlinuz
cp System.map $GLX/boot/
και μετά εγκατέστησε τα modules
make INSTALL_MOD_PATH=$GLX modules_install
αυτο θα φτιάξει μεσα στο $GLX/lib/modules ενα φάκελο με την έκδοση του πυρήνα
και θα βάλλει εκεί τα αρχεία.
Φτιάχνουμε ενα προσωρινό φάκελο στο σύστημά μας για παράδειγμα $GLX/root/glx
και αποσυμπιέζουμε εκει κάθε πρόγραμμα που θα εγκαταστήσουμε απο εδώ και πέρα.
τορα πρεπει να μεταγλοτισης το devfsd για ευκολια.
οπότε
chroot $GLX
cd /root/glx/devfsd/
make
make install
και τώρα πρεπει να φτιαχτούν τα διάφορα αρχεία διαμόρφωσης
του συστήματος
***** $GLX/etc/inittab
#
# /etc/inittab
# 2003 Skarvelis Panagiotis
#
# Start to runlevel
id:1:initdefault:
# Initalisation script
si:I:bootwait:/etc/init.d/initboot
# /etc/init.d/rc is main script
# runlevels
# 0 System halt —WARNING not for initdefault!—
# 1 Single user mode
# 2 Local without network
# 3 Multiuser and network
# 4 Nothing
# 5 Network and xdm
# 6 System reboot —WARNING not for initdefault!—
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# single-user mode
ls:S:wait:/etc/init.d/rc S
~~:S:respawn:/sbin/sulogin
# CTRL-ALT-DEL pressed
ca::ctrlaltdel:/sbin/shutdown -r -t 4 now
# getty-programs for the normal runlevels
# <id>:<runlevels>:<action>:<process>
# The “id” field MUST be the same as the last
# characters of the device (after “tty”).
1:2345:respawn:/sbin/mingetty –noclear tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
#
#S0:12345:respawn:/sbin/agetty -L 9600 ttyS0 vt102
# end of /etc/inittab
***** $GLX/sbin/devfs.init
#!/bin/bash
#
# /sbin/devfs.init
# 2003 Skarvelis Panagiotis
# Add the following boot parameter in /etc/grub.conf or /etc/lilo.conf
# init=/sbin/devfs.init
echo “Mounting devfs…”
echo “This must run first!!”
mount -n /dev /dev-state -o bind
mount -n -t devfs none /dev
/sbin/devfsd /dev
exec /sbin/init $*
***** $GLX/etc/init.d/initboot
#!/bin/sh
#
# /etc/init.d/initboot
# 2003 Skarvelis Panagiotis
#
PATH=/sbin:/bin ; export PATH
echo “Δοκιμή για Ελληνικα μηνηματα”
echo “Running $0”
#Start devfsd
#an den trexei to devfsd na to trexo tora!!!
#echo -n “Strart devfsd”
#/sbin/devfsd /dev
echo -n “Mounting /proc device”
mount -n -t proc proc /proc
echo -n “Mounting /dev/pts”
optpts=”-o mode=0620,gid=5″
mount -n -t devpts $optpts devpts /dev/pts
exit 0
***** $GLX/etc/init.d/rc
#!/bin/sh
#
# /etc/init.d/rc
# 2003 Skarvelis Panagiotis
#
PATH=/sbin:/bin
SCRIPT_DIR=”/etc/rc$1.d”
#
# Elenxos an ontos yparxei to directory.
if [ -d $SCRIPT_DIR ]; then
#
# Prota trekse osa script arxizoun me K (kill).
for SCRIPT in $SCRIPT_DIR/K*; do
if [ -x “$SCRIPT” ]; then
$SCRIPT stop;
fi;
done;
#
# Meta osa arxizoun me S (start).
for SCRIPT in $SCRIPT_DIR/S*; do
if [ -x $SCRIPT ]; then
$SCRIPT start;
fi;
done;
fi
***** $GLX/etc/init.d/hostname
#!/bin/sh
#
# /etc/init.d/rc
# 2003 Skarvelis Panagiotis
#
# Dinei os onoma mhxanimatos oti periexei to /etc/hostname
#
PATH=/sbin:/bin ; export PATH
echo “Setting hostname.”
if [ -f /etc/hostname ]; then
hostname $(cat /etc/hostname)
else
hostname gnu-linux
fi
***** $GLX/etc/init.d/halt
#!/bin/sh
#
# /etc/init.d/halt
# 2003 Skarvelis Panagiotis
#
PATH=/sbin:/bin ; export PATH
echo “Initiating system halt.”
halt
***** $GLX/etc/init.d/reboot
#!/bin/sh
#
# /etc/init.d/reboot
# 2003 Skarvelis Panagiotis
#
PATH=/sbin:/bin ; export PATH
echo “Initiating system reboot.”
reboot
***** $GLX/etc/init.d/local_fs
#!/bin/sh
#
# /etc/init.d/local_fs
# 2003 Skarvelis Panagiotis
#
# Kanei mount unmount
#
PATH=/sbin:/bin ; export PATH
case $1 in
start)
echo “Checking local filesystem integrity.”
reiserfsck
if [ $(($?)) -gt $((1)) ]; then
echo “Trekse to fsck.reiserfs!!!!”
/bin/sh
else
echo “Remounting / as read-write.”
mount -o remount,rw /
echo “Mounting local filesystems.”
mount -a
fi
;;
stop)
echo “Dismounting local filesystems.”
umount -a
echo “Remounting / as read-only.”
mount -o remount,rw /
echo “Flushing disk cache.”
sync
;;
default)
echo “usage: $0 start|stop”;
;;
esac
Τορα γραψε τα παρακατο
GLX=/otheros; \
cd $GLX/etc/init.d/rc1.d; \
ln -s ../local_fs S10local_fs; \
ln -s ../hostname S20hostname; \
cd $GLX/etc/init.d/rc0.d; \
ln -s ../local_fs K10local_fs; \
ln -s ../halt K90halt; \
cd $GLX/etc/init.d/rc6.d; \
ln -s ../local_fs K10local_fs; \
ln -s ../reboot K90reboot;\
cd ..; \
chmod +x *
****Kane ta parapano copy kai paste sthn consola
***** $GLX/etc/passwd
root::0:0:root:/root:/bin/bash
***** $GLX/etc/group
root::0:
bin::1:
***** $GLX/etc/mtab
cd $GLX/etc
ln -s /proc/mounts mtab
#/dev/hdb3 / reiserfs rw 0 0
#proc /proc proc rw 0 0
#shmfs /dev/shm shm rw 0 0
#usbdevfs /proc/bus/usb usbdevfs rw 0 0
!!!Το παρακάτω πρέπει να προσαρμοστεί σύμφωνα με την διαμόρφωση του
δικού σου συστήματος
***** $GLX/etc/fstab
/dev/hdb3 / reiserfs defaults 1 1
/dev/hdb1 /home reiserfs defaults 1 2
/dev/hda1 /otheros reiserfs defaults 1 2
/dev/cdrecorder /media/cdrecorder auto ro,noauto,user,exec 0 0
/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0
/dev/dvd /media/dvd auto ro,noauto,user,exec 0 0
/dev/fd0 /media/floppy auto noauto,user,sync 0 0
usbdevfs /proc/bus/usb usbdevfs noauto 0 0
proc /proc proc defaults 0 0
devpts /dev/pts devpts defaults 0 0
/dev/hda2 swap swap pri=42 0 0
/dev/hdb2 swap swap pri=42 0 0
SCRATCH/////////////////////////////////////////////////////////////////////////////////
Edo briskonte skorpia komatia kodika kai sxolion pou isos fanoun xrisima kata tous piramatismous sou
gia to grub
root (hd0,1)
kernel /boot/vmlinuz root=hd0s1
boot
/dev/sda /dev/scsi/host0/bus0/target2/lun0/disc
/dev/sda1 /dev/scsi/host0/bus0/target2/lun0/part1
(σε δικό του φάκελο αν τυχόν το .gz δεν περιέχει φάκελο με το όνομα του προγράμματος)
Τα προγράμματα που θα χρειαστεί να χρησιμοποίησουμε ειναι :
binutils-2.14
…..
…..
…..
….
….
….
….
Το επόμενο βήμα είναι να εγκαταστήσουμε τα πρόγραμματα του πακέτου Sysvinit
Δίνουμε λοιπον
make all
make ROOT=$GLX install
Μετα φτιάχνουμε το inittab μεσα στο $GLX/etc
# Begin /etc/inittab
id:1:initdefault:
si::sysinit:/etc/rc.d/init.d/rc sysinit
l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
su:S016:once:/sbin/sulogin
1:2345:respawn:/sbin/agetty tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600
# End /etc/inittab
τώρα πρέπει να βάλουμε τουλάχιστον το bash για να κάνει κατι
το σύστημά μας όταν το μπουτάρουμε
Πριν κάνουμε compile το bash εγκαθιστούμε πρώτα όσα patch υπάρχουν
για την έκδοση που θέλουμε (πχ για το bash-2.05b έχουν βγεί μέχρι τώρα 7!)
patch -p1<../bash-2.05b-2.patch (Το αρχείο αυτό περιέχει και τα 7 για ευκολία)
./configure –prefix=$GLX/usr –bindir=$GLX/bin
make
make tests
make install
Να μην ξεχάσεις και το παρακάτω αν θες να δουλεύουν
και τα περισσότερα απο τα scripts!!
ln -s bash sh
μετά τα coreutils
./configure –prefix=$GLX
make
make install
μετά τα util-linux
Το MCONFIG πρέπει να έχει τις παραμέτρους όπως παρακάτω:
HAVE_PAM=no
HAVE_SHADOW=no
HAVE_PASSWD=no
REQUIRE_PASSWORD=yes
ONLY_LISTED_SHELLS=yes
HAVE_SYSVINIT=yes
HAVE_SYSVINIT_UTILS=yes
HAVE_WRITE=no
HAVE_GETTY=no
USE_TTY_GROUP=yes
HAVE_KILL=no
ALLOW_VCS_USE=yes
HAVE_RESET=no
HAVE_SLN=no
HAVE_FDUTILS=no
SILENT_PG=no
DISABLE_NLS=no
LIBSLANG=-lslang
./configure
make
make DESTDIR=$GLX MANDIR=$GLX/usr/share/man install
μετα binutils
μετα gcc
Τώρα πρέπει να αντιγράψουμε τα παρακάτω απο το σύστημά μας στο $GLX
cp /lib/ld-2.3.2.so $GLX/lib/
cp /lib/libc.so.6 $GLX/lib/
cp /lib/libcrypt.so.1 $GLX/lib/
cp /lib/libncurses.so.5 $GLX/lib/
cp /lib/ld-linux.so.2 $GLX/lib/
cp /lib/libdl.so.2 $GLX/lib/
cp /lib/libncurses.so.5.3 $GLX/lib/
cp /lib/librt.so.1 $GLX/lib/
cp /lib/libm.so.6 $GLX/lib/
cp /lib/libz.so.1 $GLX/lib/
cp /lib/libz.so.1.1.4 $GLX/lib/
cp /lib/libpthread.so.0 $GLX/lib/
cp /bin/login $GLX/bin/
***********************************************************************************
brika pies lib prepei me ayto
find $GLX/{,usr/,usr/local/}{bin,sbin,lib} -type f -exec /usr/bin/ldd ‘{}’ ‘;’
h an thelo se file
find $GLX/{,usr/,usr/local/}{bin,sbin,lib} -type f -exec /usr/bin/ldd ‘{}’ ‘;’ 2>&1 |grep .so. >libfiles.txt
mia pio veltiomenh ekdosh ton parapano 😉
find $GLX/{,usr/,usr/local/}{bin,sbin,lib} -type f -exec /usr/bin/ldd ‘{}’ ‘;’ 2>&1 |grep .so.|awk ‘BEGIN { FS = “(” } { print $1 }’ | awk ‘BEGIN { FS = “>” } { print $2 | “sort” }’|uniq
***********************************************************************************
Να φτιάξουμε και το αρχείο /etc/passwd
να περιέχει την γραμμή
root::0:0:root:/root:/bin/bash
έτσι δημιουργούμε τον root χωρίς password
και το αρχείο /etc/group
να περιέχει
root::0:
bin::1:
τώρα κάνουμε copy το αρχείο cp /etc/shandow $GLX/etc/
και με έναν κειμενογράφο αφήνουμε μονο τα password για root και bin
fiaxnoyme kai ta arxeia
mtab
/dev/hdb3 / reiserfs rw 0 0
proc /proc proc rw 0 0
shmfs /dev/shm shm rw 0 0
usbdevfs /proc/bus/usb usbdevfs rw 0 0
fstab
/dev/hdb3 / reiserfs defaults 1 1
/dev/hdb1 /home reiserfs defaults 1 2
/dev/hda1 /otheros reiserfs defaults 1 2
/dev/cdrecorder /media/cdrecorder auto ro,noauto,user,exec 0 0
/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0
/dev/dvd /media/dvd auto ro,noauto,user,exec 0 0
/dev/fd0 /media/floppy auto noauto,user,sync 0 0
usbdevfs /proc/bus/usb usbdevfs noauto 0 0
proc /proc proc defaults 0 0
devpts /dev/pts devpts defaults 0 0
/dev/hda2 swap swap pri=42 0 0
/dev/hdb2 swap swap pri=42 0 0
meta to hostname
echo “HOSTNAME=greeklinux” > $GLX/etc/sysconfig/network
to hosts
echo “127.0.0.1 localhost.localdomain localhost” > $GLX/etc/hosts
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
Enalaktika mporo na trekso to parakato gia na kano copy ta basika arxeia
Den to exo dokimash akomh alla theoritika douleyh 😉
An leitourgish tote h fash 1 aplousteyete kata polh :))))
*********************************************************************************
Gia na doulepsh to parapano prepei na vro kai pia librarys theloun ta programmata
kai na tis kano copy!!
!!!!!
ok to vrika kai to ensomatosa sto parapano script 🙂
tora menei na do giati “kolaei” an to trekso san root.
ok to diorthosa kai ayto 😉
find ./papari/{,usr/,usr/local/}{bin,sbin,lib} -type f -exec /usr/bin/ldd ‘{}’ ‘;’ 2>&1 |grep .so.|awk ‘BEGIN { FS = “(” } { print $1 }’ | awk ‘BEGIN { FS = “>” } { print $2 | “sort” }’|uniq
**********************************************************************************
φαση 2
Εδώ πρέπει να αλλάξει η libc με την πιο
πρόσφατη έκδοση και να ξαναχτίσουμε το σύστημα.
Να ξαναεγκατασταθούν ολα τα προηγούμενα
και να βάλω οτι άλλο θέλω.
**********************************************************************************
Ή εναλλακτικά να κάνω compile το ίδιο rpm με το SuSe
και μετα να αρχίσω να εγκαθιστώ τα rpm απο τα cd
mkdir /otheros/var/lib/rpm/
touch /otheros/var/lib/rpm/packages.rpm
rpm –root /otheros –initdb
rpm –root /otheros -i <place rpm name here>.rpm
**********************************************************************************
*** Να δώ τι έχει σημασία για τα ελληνικά και να το γράψω εδώ!!!