Tuesday, December 14, 2010

My Gentoo Setup

I spent two weeks perfecting my perfect Gentoo Desktop. I also wrote a simple utility to make emerge better to my needs.

My make.conf, gentool.pl, and initial applications that I install are located here:

http://code.google.com/p/mephistobackup/source/browse/#svn/branches/gentoo

My apps.sh and make.conf will get you a perfect Xfce4 user desktop.


What is gentool pl?

It is a wrapper around emerge that logs everything you see on your screen to /var/log/gentool.log


To update a system: gentool.pl update . After an update, rev-dep is ran several times to fix any update issues automatically.

To run revdep-rebuild multiple times to fix your system: gentool.pl rebuild

To look for packages in the repo: gentool.pl find ssh

To see installed packages: gentool.pl installed ssh

Sync your database: gentool.pl sync

How to get the latest version?

svn co http://mephistobackup.googlecode.com/svn/branches/gentoo
chmod +X gentoo/gentool.pl
chmod 755 gentoo/gentool.pl
./gentool.pl

Wednesday, November 24, 2010

Compiling kernel from scratch.

The new "200 lines of code" that makes the system more responsive is finally out! It is included in Kernel 2.6.37-rc3. This guide will explain how to install it on your system!

If you have Ubuntu, you can download the Debian packages:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.37-rc3-natty/

First, download the latest patch and sources from kernel.org.

http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.37-rc3.tar.bz2
http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.37-rc3.bz2

#Extract and apply the patch:

tar xvf linux-2.6.37-rc3.tar.bz2
mv patch-2.6.37-rc3.bz2 linux-2.6.37-rc3/
cd linux-2.6.37-rc3
bunzip2 -d patch-2.6.37-rc3.bz2 | patch -p1

#Start the build process:

make clean
make menuconfig
make -j3 all
make -j3 modules_install

#Install and update GRUB:
make install
mkinitramfs -k 2.6.37-rc3 -o /boot/initrd.img-2.6.37-rc3
update-grub

Thursday, October 7, 2010

Make Linux look like OSX




Instructions: http://www.webupd8.org/2010/09/make-ubuntu-look-like-mac-osx-in.html


If you have Fedora like me, you will need to install the following after you install the theme above:

yum install gnome-globalmenu cairo-dock

Finally, right click on the top panel and add the global menu applet.

Wednesday, September 8, 2010

What to look for in Mephisto in 2011!

Updated GUI



v1.13 release information:

1.13 Current Features
* 1. Displays previous backup partition information.
* 2. Supports/Setup swap partitons for restoring.
* 3. UdevFS decoder for support newer distros that no longer use devfs.
* 4. Btrfs support.
* 5. Updated GUI.
* 6. LVM support.

1.13 and 1.12.1 Code Improvements
* Fixed Arch Linux bug when detecting kernel26, program will halt.
* Choosing existing backup configurations > 1 causes recursion.
* Backup now reads all the excluded filetypes/directories in the config file.
* RAID fixes with generating a LiveCD.
* Misc. Gui Fixes.
* Fixed bug in partitioner that will allow it to run on any distro.

Thursday, August 5, 2010

Mephisto Backup v1.12 released!

Mephisto Backup Website:

http://code.google.com/p/mephistobackup/

[1.12 Current Features]
* GUI
* Includes Mephisto LTS release 110.4 so users can switch to a stable release if desired.
* Big bug fixes
* Partitioner can create LVM partitions.
* Partitioner has less clutter and is easier to read.
* LVM support - Includes a utility to manage LVM. Disabled for backup/restore process.
*
* [1.12 Code Improvements]
* LiveCD.java - Creates GUI launcher after the terminal launcher is generated.
* Messageparser - All print messages go through this function.
* LiveCD.java - searches for Fedora (initramfs) ram images in /boot instead of only initrd images.
* Backup.java -Fixed a bug in home dir backups that required the user to exclude file types.
* Backup.java - Fixed bug with Specific directory backup that required the user to exclude file types.
* Cron.java - Bug fixes
* Fixed bugs in Package.java

Saturday, June 26, 2010

Tips for using solid state drives on Linux.

This website runs a web server with a 4GB CF card in a very very small computer. I was trying to come up with ways to reduce writes on this device and I remembered UnionFS. UnionFS can take 1 folder and make it read-only and have all the changes written to another folder. To the user, everything will look the same. This is very good when adding a disk to a computer and your not using LVM.

What I want to do? I want /tmp, /var/log, /var/home, and /root to have the changes written to my USB device that is mounted as /mnt. These directories receive a lot of writes to them.

I copied the following commands to /etc/rc.local so that they are executed when the machine boots:

—————–

mount -t unionfs -o dirs=/mnt/logs=rw:/var/log=ro unionfs /var/log
mount -t unionfs -o dirs=/mnt/filesystem/root=rw:/root=ro unionfs /root
mount -t unionfs -o dirs=/mnt/filesystem/home=rw:/home=ro unionfs /home
mount -t unionfs -o dirs=/mnt/filesystem/tmp=rw:/tmp=ro unionfs /tmp

—————–

Lets make sure everything worked by doing `df -h`:

—————–

/dev/sda1 3.8G 1.6G 2.1G 44% /
unionfs 7.5G 3.3G 3.8G 47% /var/log
unionfs 7.5G 3.3G 3.8G 47% /root
unionfs 7.5G 3.3G 3.8G 47% /home
unionfs 7.5G 3.3G 3.8G 47% /tmp
-----------------
If you want this to be mounted at boot time without
using /etc/rc.local, simply add the following to /etc/fstab:
-----------------
unionfs /tmp unionfs dirs=/mnt/filesystem/tmp=rw:/tmp=ro 0 0
unionfs /home unionfs dirs=/mnt/filesystem/home=rw:/tmp=ro 0 0
unionfs /var/log unionfs dirs=/mnt/logs=rw:/var/log=ro 0 0
unionfs /root unionfs dirs=/mnt/filesystem/root=rw:/tmp=ro 0 0
-----------------
Now all the changes will be written to my USB device and my main CF
cards will not be written to a lot.

Fedora upgrade woes and solution.

I tried many times to upgrade from Fedora 12 to Fedora 13 with too much fail! I decided to do a fresh install of Fedora 13 in VirtualBox and generate a package list from my Fedora 12 box so I can make it exactly the same.

Instructions:

1. On my Fedora 12 box:
rpm -qa | cut -d – -f 1 > packages.txt

2. Install Fedora 13

3. Copy packages.txt from Fedora 12 to Fedora 13.

4. Copy .repo files in /etc/yum.repos.d from Fedora 12 to Fedora 13.

5. yum install -y –skip-broken `cat packages.txt`

6. Done. =)

How I deal with log files on my SSD Web Server

My backup web server has a 8GB CF card. I want to reduce the number of writes to it as much as possible to save money and keep my server healthy. I added the following to my /etc/rc.local so that the logs files are created in RAM every time the server boots.

How it works:

1. Create the ram disk directory.
2. Mount the ram file system.
3. Erase old logs.
4. Use touch to create an empty log file in the ram disk directory.
5. Link the log file in the ram disk directory to /var/log

[ /etc/rc.local ]
#Creates a tmpfs RAM disk and mount it
mkdir /ramfs;mount -t tmpfs /dev/ram0 /ramfs;mkdir /ramfs/httpd
LOG[0]=messages
LOG[1]=secure
LOG[2]=maillog
LOG[3]=yum.log
LOG[4]=rpmpkgs
LOG[5]=dmesg
LOG[6]=boot.log
LOG[7]=spooler
LOG[8]=scrollkeeper.log
LOG[9]=cron
LOG[10]=Xorg.0.log
LOG[11]=acpid
LOG[12]=btmp
LOG[13]=wtmp

LOG[14]=httpd/access_log

LOG[15]=httpd/error_log

for ((c=0;c<=15;c++))
do
rm -f /var/log/${LOG[c]};touch /ramfs/${LOG[c]};ln -s /ramfs/${LOG[c]} /var/log/${LOG[c]}
done

Mephisto Backup v1.11 released

The best release ever of Mephisto is now available. If any bugs are found, please report them to phillip.tribble@gmail.com.
Features:

Partitioner

Raid configuration utility

Bug fixes

Code improvements.

More stable user interface with less exiting

Complete list of changes:

http://code.google.com/p/mephistobackup/source/browse/releases/mephisto111/mephisto/mephisto/Main.java

Gui in development for Mephisto v1.12



I spend most of my weekend working on the GUI for Mephisto v1.12. This will be the first official release with a GUI. Other things to look forward to is a few bug fixes and improvement. The GUI in v1.12 will basically be an interactive terminal window with buttons and message boxes for input. The goal for v1.13~v1.14 will be completely non-text. The default restore disc is a modified version of the Gentoo minimal installation disc and does not contain a graphical environment. I am not sure if I want to host another type of restore disc because I already maintain two (one for 32bit and 64bit) and that is a lot of work and bandwidth to offer. Supporting a GUI live CD will result in maintaining 4 CD’s for each release. In short, Mephisto v.1.11 and v1.12 have an option to create a custom restore disc. People wanting the graphical version of Mephisto can create a custom disc with any bootable Linux distro. What do you think of the GUI?

Try it out!

(Please place feedback as a comment to this post)

tar xf mephisto-1.12.tar.gz

cd mephisto-1.12

./mephistobackupgui