BIP IRC proxy    Posted:


BIP is an IRC proxy that maintains a persistent connection(s) to a list of IRC channels. You can then point your IRC client to BIP each time you log in and playback the conversations that took place while you were away.

I've found bBIP to be so useful that I now maintain BIP for Arch Linux, although I now run my BIP proxy on Debian because my new VPS provider doesn't offer Arch Linux as an option.

Installing BIP

Installing BIP is simple for both Arch Linux and Debian.

Debian

I run BIP on Debian Wheezy with the backport repository enabled.

sudo apt-get -t wheezy-backports install bip
sudo sed -i 's/ENABLED=0/ENABLED=1/' /etc/default/bip

Arch Linux

pacman -S bip
systemctl enable bip

Create a user

The next thing to do is create a username and password and BIP provides it's own utility for doing this called bipmkpw. Replace 'username' with whatever you want your BIP 'username' to be. This name has no relation to any IRC usernames so it can be anything.

bipmkpw username

Enter a password when prompted. The password will then be output as a hash. Make a note of both the hashed and un-hashed values somewhere, you will need them later.

Create a certificate

We don't want the username and password being sent as clear-text, so we will create an SSL certificate for BIP to use.

openssl req -new -newkey rsa:4096 -nodes -x509 -keyout bip.pem -out bip.pem

Move the certificate to /var/lib/bip

sudo mv bip.pem /var/lib/bip

Change ownership and permissions of the certificate to the user bip which was created automatically when the package was installed.

sudo chown bip:bip /var/lib/bip/bip.pem
sudo chmod 600 /var/lib/bip/bip.pem

Configure BIP

Here is example configuration for BIP. Copy it to /etc/bip.conf, modify it accordingly and then change the ownership and permissions.

sudo chown bip:bip /etc/bip.conf
sudo chmod 640 /etc/bip.conf

Example configuration

# bip default config file.
# Thou shoult change thy password

ip = "0.0.0.0";

# To connect a client to bip, try the port below, and
# be sure to set the password to the value
# specified in the network you want to connect to. 
port = 7778;

# If you set this to true, you'll only be able to connect to bip
# with a SSL capable IRC client. Be sure to generate a certificate
# for bip with 'make cert'
client_side_ssl = true;

log_level = 3;

pid_file="/var/run/bip/bip.pid";

# This is where logs go. Channel and private messages will use that
# configuration value as a prefix, and then log_format to determine
# full log filename.
log_root = "/var/log/bip/";

# Log format allows you to make log filenames depend on the log line's
# attributes. Here's a list :
# %u -> user name
# %n -> network name
# %Y -> 4 digit year
# %m -> 2 digit month
# %d -> 2 digit day
# %c -> destination (#chan, privates, ...)
#log_format = "%n/%Y-%m/%c.%d.log";

# Sets the frequency (in seconds) of log syncing (real write to kernel)
#log_sync_interval = 5;

# Makes bip send the log of each channel and privates while
# you were not connected to the proxy upon connection. 
backlog = true;         # enable backlog
backlog_lines = 0;      # number of lines in backlog, 0 means no limit
backlog_always = false; # backlog even lines already backlogged

# If blreset_on_talk talking on an irc network has the same effect of issuing
# /bip blreset, meaning that stuffed logged before the command won't be read
# back on backlog
blreset_on_talk = true;

# Network definition, a name and server info
network {
    name = "freenode";
    server { host = "chat.freenode.net"; port = 6667; };
};

network {
    name = "blitzed";
    server { host = "irc.blitzed.org"; port = 6667; };
};

# Configuration example with one user who connects to two irc networks
# To use the multi-server feature:
#  - define the connections
#  - chose and setup a different login for each connection
# on your irc client:
#  - Use the multi server feature of your client, the server being each time
#    the server where bip is running. In your client setup server password to:
#      username:password:connectionname
#  - do not store the password in clear here, use the bipmkpw util to generate
# a hash

# User structure is grouping information for a given user
user {
    # The name in bip of the user
    # This is used by bip only
    name = "USERNAME;   #BIP User account created with bipmkpw
    password = "00000000000000000000000000000000000000";  # the hash bipmkpw created 
    ssl_check_mode = "none";

    # These will be the default for each connections
    default_nick = "NICKNAME";        #IRC Nick
    default_user = "IRCUSERNAME";     #IRC User
    default_realname = "REALNAME";    #IRC Real Name

    admin = true;
    backlog_msg_only = true;    # When true,

    # A user can have mutiple connections to irc networks.
    # define a connection:

    connection {
        name = "freenode";      # used by bip only
        network = "freenode";   # which ircnet to connect to

        # these will be sent to the real IRC server
        user = "IRCUSERNAME";
        realname = "IRCREALNAME";
        password = "serverpassword";  #can be commented out if not needed

        # Some options:
        follow_nick = true;
        ignore_first_nick = false;
        #on_connect_send = "PRIVMSG NickServ :IDENTIFY nspassword";

        # Autojoined channels:
        channel { name = "#cat"; };                   # Join #cat
        channel { name = "#dog"; backlog = false; };  # Join #dog but don't backlog it.
        channel { name = "#pig"; key = "01nk01nk"; }; # Join #pig that has a password.
    };

    connection {
        name = "blitzed";       # used by bip only
        network = "blitzed";    # which ircnet to connect to

        # these will be sent to the real IRC server
        user = "IRCUSERNAME";
        realname = "IRCREALNAME";
        password = "serverpassword";  #can be commented out if not needed

        # Some options:
        follow_nick = true;
        ignore_first_nick = false;
        #on_connect_send = "PRIVMSG NickServ :IDENTIFY nspassword";

        # Autojoined channels:
        channel { name = "#bar"; };
        channel { name = "#foo"; };
    };
};

If you require any clarification about what the configuration options do then man bip.conf is your friend.

Start BIP

Now that BIP is configured, it can be started.

Debian

sudo /etc/init.d/bip start

Arch Linux

sudo systemctl start bip

Client configuration

I use HexChat, but other IRC clients are available. I add a new Network to HexChat for each of the IRC networks I defined in /etc/bip.conf. The screen shot below shows how I configure a BIP network in HexChat.

HexChat BIP Configuration

Password format

The Password is the most important and confusing item. This is for BIP, not for any IRC network. Remember the unhashed password? That goes here but with a twist. The format for the password is:

bipusername:unhashedbippassword:bipnetwork

Bipnetwork? What is that? It is from the following section of /etc/bip.conf on the server?

network {
    name = "freenode";
    server { host = "chat.freenode.net"; port = 6667; };
};

A more practical example:

myuser:S3cr3tP@$$w0rd:freenode

Conclusion

And that's it! We are now perpetually connected to IRC, can connect to BIP proxy from multiple devices in a completely transparent and seamless manner. Moreover, the logs for all channels are saved and automatically rotated on the server.

If you looking for an alternative to BIP, then try ZNC.

References

Comments

LXC on Arch Linux    Posted:


At some point last year I was experimenting with Linux Containers (LXC) on Arch Linux. I never finished the blog post but somehow it was briefly published and then unplublished. I have no idea how accurate this blog post is but someone did see it and bookmarked it. They recently emailed me to ask where the blog has disappeared to, so here it is in all its unfinished glory.

Install LXC

sudo pacman -Syy --needed --noconfirm arch-install-scripts bridge-utils lxc netctl

netctl Bridge

The guest containers will connect to the LAN via a bridged network deviced.

sudo nano /etc/netctl/bridge

Add the following.

Description="Bridge"
Interface=br0
Connection=bridge
BindsToInterfaces=(eth0)
IP=dhcp
## sets forward delay time
FwdDelay=0
## sets max age of hello message
#MaxAge=10

Enable and start the bridge.

sudo netctl enable bridge
sudo netctl start bridge

Creating Containers

I'm only interetsed in running Arch Linux or Debian containers.

Container Configurations

Each container should have a matching configuration file, they look something like this.

lxc.arch = i686
lxc.utsname = myhostname
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.ipv4 = 0.0.0.0
lxc.network.name = eth0
  • lxc.arch Architecture for the container, valid options are x86, i686, x86_64, amd64.
  • lxc.utsman Container name, should also be used when naming the configuration file
  • lxc_network.type Type of network virtualization to be used for the container. The option veth defines a peer network device. It is created with one side assigned to the container and the other side is attached to a bridge by the lxc.network.link option.
  • lxc_network.flags Network actions. The value up in this case activates the network.
  • lxc.network.link Host network interface to be used for the container.
  • lxc.network.ipv4 IPv4 address assigned to the virtualized interface. Use the address 0.0.0.0 to make use of DHCP. Use lxc.network.ipv6 if you need IPv6 support.
  • lxc.network.name Dynamically allocated interface name. This option will rename the interface in the container.

More example files can be found in /usr/share/doc/lxc/examples/. Find details about all options via man lxc.conf.

Arch Linux

sudo lxc-create -t archlinux -n arch-01 -f ~/arch-01.conf -- --packages netctl

I am unable to get DHCP to work for a Arch Linux LXC container, therefore my dirty hack is to alway use a statis IP address in the netctl profile. There is also a bug (#35715) was helpful in narrowing down the problem, but wasn't the solution in my case. Use /var/lib/lxc/CONTAIN_NAME/rootfs/etc/netctl/example/ethernet-static as a template.

sudo cp /var/lib/lxc/CONTAIN_NAME/rootfs/etc/netctl/example/ethernet-static /var/lib/lxc/CONTAIN_NAME/rootfs/etc/netctl/static

Modify /var/lib/lxc/CONTAIN_NAME/rootfs/etc/netctl/static accordingly. Now create a hook, with the same name as the netctl profile.

sudo nano /var/lib/lxc/CONTAIN_NAME/rootfs/etc/netctl/hooks/static

Add the following.

1
2
3
4
5
6
#!/usr/bin/env bash

if [[ $(systemd-detect-virt) != none ]]; then
    BindsToInterfaces=()
    ForceConnect=yes
fi

Start the container and enable the netctl profile.

netctl enable static
netctl start static

Debian Containers.

Install debobootstrap and dpkg so that Debian containers can be created.

packer -S --noedit dpkg debootstrap

Squeeze

Create a Debian container, squeeze is the default.

sudo lxc-create -t debian -n squeeze-01 -f ~/squeeze-01.conf

Change the root password.

chroot /var/lib/lxc/squeeze/rootfs/ passwd

Wheezy

Much the same as the Squeeze exaple above but use the following template.

Using containers

Start a container

sudo lxc-start -d -n CONTAINER_NAME

Connect to the container and log in:

sudo lxc-console -n CONTAINER_NAME

To halt a container cleanly by the containers initv-system:

sudo lxc-halt -n CONTAINER_NAME

Stop and remove your container always with the two steps:

sudo lxc-stop -n CONTAINER_NAME
sudo lxc-destroy -n CONTAINER_NAME
References

Comments

Installing Nikola on Debian    Posted:


Nikola is a static site and blog generator written in Python that I've been using for a good while now. This blog post describes how to install Nikola on Debian. Now, this may look like a long winded way to install Nikola, given that Debian .deb package exist, but in my opinion it is the correct way to install Nikola on Debian.

Installing Python

First you'll need Python and virtualenvwrapper

sudo apt-get install libpython2.7 python2.7 python2.7-dev python2.7-minimal

Remove any apt installed Python packages that we are about to replace. The versions of these packages in the Debian repositories soon get stale.

sudo apt-get purge python-setuptools python-virtualenv python-pip python-profiler

Install pip.

curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
sudo python2.7 get-pip.py

Use pip to install virtualenv and virtualenvwrapper.

sudo pip install virtualenv --upgrade
sudo pip install virtualenvwrapper

The Snakepit

Create a "Snakepit" directory for storing all the virtualenvs.

  mkdir ~/Snakepit

Add the following your ~/.bashrc to enable virtualenvwrapper.

export WORKON_HOME=${HOME}/Snakepit
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
    source /usr/local/bin/virtualenvwrapper.sh
elif [ -f /usr/bin/virtualenvwrapper.sh ]; then
   source /usr/bin/virtualenvwrapper.sh
fi

Create a virtualenv for Nikola

Open a new shell to ensure that the virtualenvwrapper configuration is active.

The following will create a new virtualenv called nikola based on Python 2.7.

mkvirtualenv -p /usr/bin/python2.7 ~/Snakepit/nikola-640

Working on a virtualenv

To workon, or activate, an existing virtualenv do the following.

workon nikola-640

You can switch to another virtualenv at any time, just use workon envname. Your shell prompt will change while a virtualenv is being worked on to indicate which virtualenv is currently active.

While working on a virtualenv you can pip install what you need or manually install any Python libraries safe in the knowledge you will not adversely damage any other virtualenvs or the global packages in the process. Very useful for developing a new branch which may have different library requirements than the master/head.

When you are finished working in a virtualenv you can deactivate it by simply executing deactivate.

Install Nikola requirements

Nikola is will be powered by Python 2.7 and some additional packages will be required.

sudo apt-get install python2.7-dev libfreetype6-dev libjpeg8-dev libxslt1-dev libxml2-dev libyaml-dev

What are these requirements for?

  • python2.7-dev provides the header files for Python 2.7 so that Python modules with C extensions can be built.

The following are required to build pillow, the Python imaging library.

  • libjpeg8-dev
  • libfreetype6-dev

The following are required to build lxml, a Python XML library.

  • libxml2-dev
  • libxslt1-dev

The following are required to build python-coveralls.

  • libyaml-dev

Install Nikola

Download Nikola.

mkdir -p ${VIRTUAL_ENV}/src
cd ${VIRTUAL_ENV}/src
wget https://github.com/getnikola/nikola/archive/v6.4.0.tar.gz -O nikola-640.tar.gz
tar zxvf nikola-640.tar.gz
cd nikola-6.4.0

Install the Nikola requirements.

pip install -r requirements-full.txt

If you intend to use the Nikola planetoid (Planet generator) plugin you'll also need to following.

pip install peewee feedparser

Actually install nikola.

python setup.py install

Nikola is now installed. nikola help and the Nikola Handbook will assist you from here on.

Comments

Memory consumption of Linux desktop environments    Posted:


For the last 9 months or so I've spent my spare time working with the MATE Desktop Team. Every so often, via the various on-line MATE communities, the topic of how "light weight" MATE is when compared to other desktop environments crops up and quite often XFCE is suggested as a lighter alternative. After all MATE and XFCE both provide a traditional desktop environment based on GTK+ so this suggestion is sensible. But is XFCE actually "lighter" than MATE?

I've found MATE to be (subjectively) more responsive that XFCE and there have been two recent blog posts that indicate MATE has lower memory requirements than XFCE.

Given that I'm comfortably running MATE on the Raspberry Pi Model B (which has just 512MB RAM) I've been stating that MATE is well suited for use on resource constrained hardware and professional workstations alike. This is still true, but I've also said that MATE is lighter than XFCE and I might have to eat humble pie on that one.

The topic of measursing desktop environment resource use came up on the #archlinux-tu IRC channel recently and someone suggested using ps_mem.py to gather the memory usage data. ps_mem.py provides a far more robust mechanism for gathering memory usage data than I've seen in previous comparisons.

So the seed was planted, I created seven VirtualBox guests and set to work comparing the memory requirements of all the Linux desktop environments I could.

Damn it, just tell me what the "lightest" desktop environment is!

OK, for those of you who just want the final answer, with none of the explaination, here it is:

| Desktop Environment  | Memory Used |
| ---------------------|------------:|
| LXDE                 |    84.9 MiB |
| Enlightenment 0.18.5 |    89.6 MiB |
| XFCE 4.10.2          |   105.8 MiB |
| MATE 1.8.0           |   121.6 MiB |
| Cinnamon 2.0.14      |   167.1 MiB |
| GNOME3 3.10          |   256.4 MiB |
| KDE 4.12             |   358.8 MiB |

Bullshit! How did you come up with these numbers?

TL;DR

All the VirtualBox VMs are 32-bit with 768MB RAM and based on the same core Arch Linux installation. I achieved this using my ArchInstaller script which is designed for quickly installing reproducible Arch Linux setups.

Each VM differs only by the packages that are required for the given desktop environment. The desktop environments native display manager is also installed but if it doesn't have one then lightdm was chosen. LXDE, XFCE, MATE, Cinnamon and GNOME all have gvfs-smb installed as this enables accessing Windows and Samba shares (a common requirement for home and office) in their respective file managers and the KDE install includes packages to provide equivalent functionality. You can see the specific desktop environment packages or package groups that were installed here:

Each VM was booted, logged in and any initial desktop environment configuration was completed choosing the default options if prompted. Then ps_mem was installed, the VM shut down and a snapshot made.

Each VM was then started, logged in via the display manager, the desktop environment was fully loaded and waited for disk activity to settle. Then ps -efH and ps_mem were executed via SSH and the results sent back to my workstation. When the process and memory collections were conducted there had been no desktop interaction and no applications had been launched.

Your numbers are wrong I can get xxx desktop to run in yyy less memory!

Well done, you probably can.

Each virtual machine has VirtualBox guest additions, OpenSSH, Network Manager, avahi-daemon, ntpd, rpc.statd, syslog-ng and various other bits and bobs installed and running. Some of these are not required or have lighter alternatives available.

So, while I freely accept that each desktop environment can be run in less memory, the results here are relative to a consistent base setup.

However, what is important to note is that I think the Cinnamon results are too low. Cinnamon is forked from GNOME3 and the Arch Linux package groups for Cinnamon only install the core Cinnamon packages but none of the GNOME3 applications or components that would be required to create a full desktop environment.

So comparing Cinnamon with the other desktops in this test is not a fair comparison. For example, GNOME3 and KDE default installs on Arch Linux include all the accessibility extensions and applications for sight or mobility impaired individuals where as Cinnamon does not. This is just one example of where I think the Cinnamon results are skewed.

The RAM is there to be used. Is lighter actually better?

No, and Yes.

I subscribe to the school of thought that RAM is there to be used. But;

  • I want to preserve as much free RAM for the applications I run, not for feature bloat in the desktop environment. I'm looking at you KDE.
  • I want a fully integrated desktop experience, but not one that is merely lighter because it lacks features. I'm looking at you LXDE.
  • I want a consistent user interface that any of my family could use, not one that favours style over substance. I'm looking at you Enlightenment.

Another take on lightness is that the more RAM used, the more code that needs executing. Therefore, higher CPU utilisation and degraded desktop performance on modest hardware. This could also translate into degraded battery performance.

This is why I choose MATE Desktop. It is a fully integrated desktop environment, that is responsive, feature full, has reasonable memory requirements and scales from single core armv6h CPU with 512MB RAM to multi core x86_64 CPU with 32GB RAM (for me at least).

Without the full stats it never happened. Prove it!

He is the full data capture from ps_mem.py for each desktop environment.

LXDE

Private  +   Shared  =  RAM used    Program

176.0 KiB +  37.5 KiB = 213.5 KiB   dbus-launch
308.0 KiB +  38.0 KiB = 346.0 KiB   dhcpcd
320.0 KiB +  85.5 KiB = 405.5 KiB   rpcbind
352.0 KiB +  76.0 KiB = 428.0 KiB   lxdm-binary
388.0 KiB +  79.0 KiB = 467.0 KiB   lxsession
560.0 KiB +  34.0 KiB = 594.0 KiB   crond
576.0 KiB +  51.0 KiB = 627.0 KiB   systemd-logind
476.0 KiB + 280.0 KiB = 756.0 KiB   avahi-daemon (2)
584.0 KiB + 191.5 KiB = 775.5 KiB   at-spi-bus-launcher
764.0 KiB +  53.5 KiB = 817.5 KiB   systemd-udevd
  4.6 MiB + -3890.5 KiB = 817.5 KiB menu-cached
612.0 KiB + 211.0 KiB = 823.0 KiB   gvfsd
496.0 KiB + 332.0 KiB = 828.0 KiB   lxdm-session
628.0 KiB + 226.0 KiB = 854.0 KiB   at-spi2-registryd
772.0 KiB +  83.5 KiB = 855.5 KiB   VBoxService
764.0 KiB +  93.0 KiB = 857.0 KiB   rpc.statd
704.0 KiB + 165.5 KiB = 869.5 KiB   ntpd
712.0 KiB + 174.5 KiB = 886.5 KiB   accounts-daemon
  4.8 MiB + -3888.0 KiB =   1.0 MiB gvfsd-fuse
896.0 KiB + 267.5 KiB =   1.1 MiB   gvfsd-trash
  5.0 MiB + -3765.0 KiB =   1.4 MiB upowerd
  5.1 MiB + -3691.5 KiB =   1.4 MiB gvfs-udisks2-volume-monitor
  5.1 MiB + -3774.0 KiB =   1.5 MiB udisksd
  1.0 MiB + 505.5 KiB =   1.5 MiB   dbus-daemon (3)
  1.2 MiB + 531.0 KiB =   1.7 MiB   (sd-pam) (2)
  1.7 MiB + 276.0 KiB =   1.9 MiB   syslog-ng
  1.0 MiB +   1.0 MiB =   2.1 MiB   systemd (3)
  1.4 MiB + 940.0 KiB =   2.3 MiB   lxpolkit
  1.3 MiB +   1.2 MiB =   2.5 MiB   sshd (2)
  2.3 MiB + 665.0 KiB =   3.0 MiB   NetworkManager
  2.6 MiB + 502.5 KiB =   3.0 MiB   VBoxClient (4)
 11.2 MiB + -7782.5 KiB =   3.6 MiB polkitd
  3.2 MiB + 696.5 KiB =   3.9 MiB   openbox
  2.9 MiB +   1.9 MiB =   4.8 MiB   lxpanel
  5.2 MiB +  61.5 KiB =   5.3 MiB   systemd-journald
  3.6 MiB +   1.8 MiB =   5.4 MiB   pcmanfm
  7.0 MiB +   1.6 MiB =   8.5 MiB   nm-applet
 16.4 MiB + 504.0 KiB =  16.9 MiB   Xorg
---------------------------------
                         84.9 MiB
=================================

Enlightenment

Private  +   Shared  =  RAM used    Program

172.0 KiB +  46.5 KiB = 218.5 KiB   dbus-launch
316.0 KiB +  40.0 KiB = 356.0 KiB   dhcpcd
336.0 KiB +  87.5 KiB = 423.5 KiB   rpcbind
560.0 KiB +  37.0 KiB = 597.0 KiB   crond
580.0 KiB +  54.0 KiB = 634.0 KiB   systemd-logind
688.0 KiB +  67.5 KiB = 755.5 KiB   systemd-udevd
480.0 KiB + 276.0 KiB = 756.0 KiB   avahi-daemon (2)
700.0 KiB + 133.5 KiB = 833.5 KiB   ntpd
768.0 KiB +  78.5 KiB = 846.5 KiB   VBoxService
580.0 KiB + 267.0 KiB = 847.0 KiB   tempget
544.0 KiB + 312.0 KiB = 856.0 KiB   enlightenment_start
764.0 KiB +  94.0 KiB = 858.0 KiB   rpc.statd
600.0 KiB + 280.5 KiB = 880.5 KiB   at-spi-bus-launcher
624.0 KiB + 298.0 KiB = 922.0 KiB   at-spi2-registryd
724.0 KiB + 309.5 KiB =   1.0 MiB   accounts-daemon
784.0 KiB + 386.5 KiB =   1.1 MiB   enlightenment_fm
952.0 KiB + 395.0 KiB =   1.3 MiB   efreetd
  1.0 MiB + 517.0 KiB =   1.5 MiB   dbus-daemon (3)
  5.3 MiB + -3781.0 KiB =   1.7 MiB udisksd
  1.2 MiB + 483.0 KiB =   1.7 MiB   (sd-pam) (2)
  1.6 MiB + 234.0 KiB =   1.9 MiB   syslog-ng
  1.1 MiB +   1.0 MiB =   2.1 MiB   systemd (3)
  1.4 MiB + 814.5 KiB =   2.2 MiB   lightdm (2)
  1.3 MiB +   1.1 MiB =   2.4 MiB   sshd (2)
  2.6 MiB + 575.5 KiB =   3.2 MiB   VBoxClient (4)
  2.4 MiB + 781.0 KiB =   3.2 MiB   NetworkManager
 10.9 MiB + -7741.5 KiB =   3.3 MiB polkitd
  6.2 MiB +  68.5 KiB =   6.3 MiB   systemd-journald
 11.3 MiB + -2300.0 KiB =   9.1 MiB nm-applet
 16.3 MiB + 426.0 KiB =  16.7 MiB   Xorg
 19.9 MiB +   1.5 MiB =  21.4 MiB   enlightenment
---------------------------------
                         89.6 MiB
=================================

XFCE

 Private  +   Shared  =  RAM used   Program

176.0 KiB +  31.5 KiB = 207.5 KiB   dbus-launch
292.0 KiB +  26.5 KiB = 318.5 KiB   gpg-agent
312.0 KiB +  36.0 KiB = 348.0 KiB   dhcpcd
324.0 KiB +  84.5 KiB = 408.5 KiB   rpcbind
484.0 KiB +  94.0 KiB = 578.0 KiB   xfconfd
560.0 KiB +  31.0 KiB = 591.0 KiB   crond
584.0 KiB +  49.0 KiB = 633.0 KiB   systemd-logind
476.0 KiB + 250.0 KiB = 726.0 KiB   avahi-daemon (2)
600.0 KiB + 163.5 KiB = 763.5 KiB   at-spi-bus-launcher
624.0 KiB + 169.0 KiB = 793.0 KiB   at-spi2-registryd
620.0 KiB + 180.0 KiB = 800.0 KiB   gvfsd
752.0 KiB +  49.5 KiB = 801.5 KiB   systemd-udevd
764.0 KiB +  54.5 KiB = 818.5 KiB   sh
768.0 KiB +  57.5 KiB = 825.5 KiB   VBoxService
764.0 KiB +  91.0 KiB = 855.0 KiB   rpc.statd
708.0 KiB + 163.5 KiB = 871.5 KiB   ntpd
712.0 KiB + 168.5 KiB = 880.5 KiB   accounts-daemon
856.0 KiB + 177.5 KiB =   1.0 MiB   gvfsd-fuse
828.0 KiB + 229.5 KiB =   1.0 MiB   gvfsd-trash
992.0 KiB + 285.0 KiB =   1.2 MiB   tumblerd
  1.0 MiB + 252.0 KiB =   1.3 MiB   upowerd
  5.1 MiB + -3728.5 KiB =   1.4 MiB gvfs-udisks2-volume-monitor
  5.1 MiB + -3802.0 KiB =   1.4 MiB udisksd
  1.1 MiB + 354.0 KiB =   1.5 MiB   xfce4-notifyd
  1.2 MiB + 489.0 KiB =   1.7 MiB   (sd-pam) (2)
  1.3 MiB + 493.5 KiB =   1.8 MiB   dbus-daemon (3)
  1.5 MiB + 460.0 KiB =   1.9 MiB   Thunar
  1.7 MiB + 266.0 KiB =   1.9 MiB   syslog-ng
  5.4 MiB + -3474.5 KiB =   2.0 MiB lightdm (2)
  1.1 MiB +   1.0 MiB =   2.1 MiB   systemd (3)
  1.4 MiB + 682.5 KiB =   2.1 MiB   panel-6-systray
  1.6 MiB + 637.5 KiB =   2.2 MiB   xfce4-session
  1.9 MiB + 529.5 KiB =   2.4 MiB   xfsettingsd
  1.6 MiB + 896.5 KiB =   2.5 MiB   panel-2-actions
  1.3 MiB +   1.2 MiB =   2.5 MiB   sshd (2)
  2.3 MiB + 574.0 KiB =   2.9 MiB   NetworkManager
  2.6 MiB + 446.5 KiB =   3.0 MiB   VBoxClient (4)
  2.5 MiB + 585.5 KiB =   3.0 MiB   xfce4-power-manager (2)
  2.1 MiB +   1.1 MiB =   3.2 MiB   xfwm4
 11.2 MiB + -7865.0 KiB =   3.5 MiB polkitd
  3.1 MiB +   1.3 MiB =   4.4 MiB   xfce4-panel
  3.8 MiB +   1.6 MiB =   5.4 MiB   xfdesktop
  6.2 MiB +  63.5 KiB =   6.3 MiB   systemd-journald
 10.5 MiB + -2789.5 KiB =   7.8 MiB nm-applet
 22.6 MiB + 844.5 KiB =  23.4 MiB   Xorg
---------------------------------
                        105.8 MiB
=================================

MATE

 Private  +   Shared  =  RAM used   Program

172.0 KiB +  29.5 KiB = 201.5 KiB   dbus-launch
248.0 KiB +  57.5 KiB = 305.5 KiB   rtkit-daemon
312.0 KiB +  33.0 KiB = 345.0 KiB   dhcpcd
324.0 KiB +  84.5 KiB = 408.5 KiB   rpcbind
440.0 KiB +  89.0 KiB = 529.0 KiB   dconf-service
560.0 KiB +  29.0 KiB = 589.0 KiB   crond
580.0 KiB +  46.0 KiB = 626.0 KiB   systemd-logind
548.0 KiB + 116.0 KiB = 664.0 KiB   gconfd-2
544.0 KiB + 182.0 KiB = 726.0 KiB   gconf-helper
580.0 KiB + 146.5 KiB = 726.5 KiB   at-spi-bus-launcher
480.0 KiB + 248.0 KiB = 728.0 KiB   avahi-daemon (2)
696.0 KiB +  47.5 KiB = 743.5 KiB   systemd-udevd
612.0 KiB + 163.0 KiB = 775.0 KiB   at-spi2-registryd
  4.6 MiB + -3935.0 KiB = 777.0 KiB gvfsd
768.0 KiB +  56.5 KiB = 824.5 KiB   VBoxService
764.0 KiB +  89.0 KiB = 853.0 KiB   rpc.statd
704.0 KiB + 160.5 KiB = 864.5 KiB   ntpd
732.0 KiB + 148.5 KiB = 880.5 KiB   accounts-daemon
808.0 KiB + 202.5 KiB =   1.0 MiB   gvfsd-trash
860.0 KiB + 154.0 KiB =   1.0 MiB   gvfsd-fuse
  1.0 MiB + 249.0 KiB =   1.3 MiB   upowerd
  5.0 MiB + -3758.5 KiB =   1.4 MiB gvfs-udisks2-volume-monitor
  5.1 MiB + -3810.0 KiB =   1.4 MiB udisksd
  1.4 MiB + 377.0 KiB =   1.8 MiB   (sd-pam) (2)
  1.7 MiB + 267.0 KiB =   1.9 MiB   syslog-ng
  1.5 MiB + 476.5 KiB =   1.9 MiB   dbus-daemon (3)
  1.5 MiB + 412.5 KiB =   1.9 MiB   polkit-mate-authentication-agent-1
  1.4 MiB + 591.5 KiB =   2.0 MiB   lightdm (2)
  1.4 MiB + 884.0 KiB =   2.2 MiB   systemd (3)
  5.9 MiB + -3514.5 KiB =   2.5 MiB mate-screensaver
  1.3 MiB +   1.2 MiB =   2.5 MiB   sshd (2)
  2.0 MiB + 559.5 KiB =   2.5 MiB   mate-session
  1.9 MiB + 675.5 KiB =   2.6 MiB   notification-area-applet
  2.0 MiB + 734.0 KiB =   2.7 MiB   mate-power-manager
  2.2 MiB + 579.0 KiB =   2.8 MiB   NetworkManager
  2.6 MiB + 417.5 KiB =   3.0 MiB   VBoxClient (4)
  2.8 MiB + 678.0 KiB =   3.4 MiB   marco
 11.2 MiB + -7886.5 KiB =   3.5 MiB polkitd
  2.7 MiB + 930.0 KiB =   3.6 MiB   wnck-applet
  3.5 MiB + 304.5 KiB =   3.8 MiB   pulseaudio
  2.7 MiB +   1.2 MiB =   3.9 MiB   mate-volume-control-applet
  3.0 MiB +   1.0 MiB =   4.0 MiB   clock-applet
  3.6 MiB +   1.1 MiB =   4.7 MiB   mate-settings-daemon
  3.7 MiB +   1.2 MiB =   4.9 MiB   mate-panel
  7.0 MiB + 314.0 KiB =   7.3 MiB   systemd-journald
  6.1 MiB +   1.5 MiB =   7.6 MiB   caja
  7.8 MiB +   1.1 MiB =   8.8 MiB   nm-applet
 17.2 MiB +   1.2 MiB =  18.4 MiB   Xorg
---------------------------------
                        121.6 MiB
=================================

Cinnamon

 Private  +   Shared  =  RAM used   Program

240.0 KiB +  55.5 KiB = 295.5 KiB   rtkit-daemon
312.0 KiB +  32.0 KiB = 344.0 KiB   dhcpcd
340.0 KiB +  83.5 KiB = 423.5 KiB   rpcbind
384.0 KiB +  78.5 KiB = 462.5 KiB   dbus-launch (2)
556.0 KiB +  28.0 KiB = 584.0 KiB   crond
576.0 KiB +  44.0 KiB = 620.0 KiB   systemd-logind
548.0 KiB + 110.0 KiB = 658.0 KiB   gconfd-2
460.0 KiB + 246.0 KiB = 706.0 KiB   avahi-daemon (2)
540.0 KiB + 179.0 KiB = 719.0 KiB   gconf-helper
584.0 KiB + 167.0 KiB = 751.0 KiB   at-spi-bus-launcher
620.0 KiB + 152.0 KiB = 772.0 KiB   at-spi2-registryd
616.0 KiB + 170.0 KiB = 786.0 KiB   gvfsd
748.0 KiB +  45.5 KiB = 793.5 KiB   systemd-udevd
772.0 KiB +  54.5 KiB = 826.5 KiB   VBoxService
700.0 KiB + 129.5 KiB = 829.5 KiB   ntpd
760.0 KiB +  87.0 KiB = 847.0 KiB   rpc.statd
  4.7 MiB + -3940.5 KiB = 863.5 KiB accounts-daemon
860.0 KiB + 162.0 KiB =   1.0 MiB   gvfsd-fuse
816.0 KiB + 210.5 KiB =   1.0 MiB   gvfsd-trash
  5.0 MiB + -3866.0 KiB =   1.2 MiB upowerd
  5.1 MiB + -3753.5 KiB =   1.4 MiB gvfs-udisks2-volume-monitor
  1.1 MiB + 283.0 KiB =   1.4 MiB   udisksd
  1.1 MiB + 319.5 KiB =   1.4 MiB   cupsd
  5.3 MiB + -3709.0 KiB =   1.7 MiB csd-printer
  1.6 MiB + 219.0 KiB =   1.8 MiB   syslog-ng
  1.4 MiB + 582.5 KiB =   1.9 MiB   lightdm (2)
  1.6 MiB + 512.5 KiB =   2.1 MiB   dbus-daemon (4)
  1.4 MiB +   1.0 MiB =   2.4 MiB   systemd (4)
  1.3 MiB +   1.1 MiB =   2.4 MiB   sshd (2)
  1.8 MiB + 624.5 KiB =   2.4 MiB   (sd-pam) (3)
  2.3 MiB + 335.0 KiB =   2.7 MiB   colord
  2.2 MiB + 519.0 KiB =   2.7 MiB   NetworkManager
  2.6 MiB + 447.5 KiB =   3.0 MiB   VBoxClient (4)
  2.5 MiB + 695.5 KiB =   3.2 MiB   polkit-gnome-authentication-agent-1
  6.7 MiB + -3304.0 KiB =   3.5 MiB cinnamon-screensaver
 11.2 MiB + -7914.5 KiB =   3.5 MiB polkitd
  7.0 MiB + -3244.0 KiB =   3.8 MiB cinnamon-session
  3.5 MiB + 343.5 KiB =   3.9 MiB   pulseaudio
  5.2 MiB +  56.5 KiB =   5.3 MiB   systemd-journald
  3.8 MiB +   2.0 MiB =   5.8 MiB   nm-applet
  5.4 MiB +   1.9 MiB =   7.3 MiB   cinnamon-settings-daemon
  8.1 MiB +   1.1 MiB =   9.2 MiB   cinnamon-launch
  8.4 MiB +   2.0 MiB =  10.3 MiB   nemo
 32.0 MiB + -5304.5 KiB =  26.8 MiB Xorg
 37.5 MiB +   5.3 MiB =  42.9 MiB   cinnamon
---------------------------------
                        167.1 MiB
=================================

GNOME3

 Private  +   Shared  =  RAM used   Program

172.0 KiB +  33.5 KiB = 205.5 KiB   dbus-launch
272.0 KiB +  14.0 KiB = 286.0 KiB   ssh-agent
244.0 KiB +  48.5 KiB = 292.5 KiB   rtkit-daemon
312.0 KiB +  30.0 KiB = 342.0 KiB   dhcpcd
324.0 KiB +  21.0 KiB = 345.0 KiB   systemd-localed
324.0 KiB +  22.5 KiB = 346.5 KiB   systemd-hostnamed
324.0 KiB +  82.5 KiB = 406.5 KiB   rpcbind
364.0 KiB +  77.0 KiB = 441.0 KiB   dconf-service
564.0 KiB +  27.0 KiB = 591.0 KiB   crond
536.0 KiB +  60.5 KiB = 596.5 KiB   obexd
560.0 KiB +  47.5 KiB = 607.5 KiB   bluetoothd
592.0 KiB +  41.0 KiB = 633.0 KiB   systemd-logind
556.0 KiB + 102.0 KiB = 658.0 KiB   gconfd-2
544.0 KiB + 170.0 KiB = 714.0 KiB   gconf-helper
620.0 KiB + 125.0 KiB = 745.0 KiB   at-spi2-registryd
500.0 KiB + 249.0 KiB = 749.0 KiB   avahi-daemon (2)
592.0 KiB + 158.5 KiB = 750.5 KiB   at-spi-bus-launcher
620.0 KiB + 137.0 KiB = 757.0 KiB   gvfsd
720.0 KiB +  44.5 KiB = 764.5 KiB   systemd-udevd
692.0 KiB + 105.0 KiB = 797.0 KiB   gdm
688.0 KiB + 140.0 KiB = 828.0 KiB   gvfsd-burn
704.0 KiB + 128.5 KiB = 832.5 KiB   ntpd
768.0 KiB +  84.0 KiB = 852.0 KiB   rpc.statd
744.0 KiB + 123.5 KiB = 867.5 KiB   accounts-daemon
720.0 KiB + 257.5 KiB = 977.5 KiB   (sd-pam)
852.0 KiB + 131.0 KiB = 983.0 KiB   gvfsd-fuse
776.0 KiB + 257.0 KiB =   1.0 MiB   zeitgeist-daemon
956.0 KiB + 161.5 KiB =   1.1 MiB   gdm-simple-slave
  1.0 MiB + 188.0 KiB =   1.2 MiB   upowerd
  1.0 MiB + 261.5 KiB =   1.3 MiB   gvfs-udisks2-volume-monitor
  1.1 MiB + 216.0 KiB =   1.3 MiB   udisksd
  1.1 MiB + 298.5 KiB =   1.4 MiB   cupsd
  1.1 MiB + 469.5 KiB =   1.6 MiB   gdm-session-worker
  1.3 MiB + 314.0 KiB =   1.6 MiB   gsd-printer
  1.5 MiB + 285.5 KiB =   1.7 MiB   gnome-keyring-daemon
  1.6 MiB + 207.0 KiB =   1.8 MiB   syslog-ng
  1.0 MiB + 912.5 KiB =   1.9 MiB   systemd (2)
  1.3 MiB + 661.0 KiB =   2.0 MiB   mission-control-5
  1.6 MiB + 421.0 KiB =   2.0 MiB   gnome-session
  1.7 MiB + 398.5 KiB =   2.0 MiB   colord
  1.6 MiB + 511.5 KiB =   2.1 MiB   zeitgeist-datahub
  1.3 MiB +   1.0 MiB =   2.3 MiB   sshd (2)
  1.8 MiB + 624.0 KiB =   2.5 MiB   gnome-shell-calendar-server
  2.1 MiB + 399.0 KiB =   2.5 MiB   NetworkManager
  2.2 MiB + 468.5 KiB =   2.6 MiB   dbus-daemon (3)
  2.4 MiB + 839.5 KiB =   3.2 MiB   evolution-source-registry
  2.6 MiB + 647.0 KiB =   3.3 MiB   gnome-control-center-search-provider
  3.5 MiB + 355.5 KiB =   3.8 MiB   pulseaudio
  3.4 MiB +   1.0 MiB =   4.4 MiB   tracker-miner-fs
  3.3 MiB +   1.7 MiB =   5.0 MiB   goa-daemon
  4.4 MiB + 749.5 KiB =   5.1 MiB   polkitd
  4.0 MiB +   1.8 MiB =   5.8 MiB   nm-applet
  5.2 MiB + 857.5 KiB =   6.1 MiB   tracker-store
  6.6 MiB +  58.5 KiB =   6.7 MiB   systemd-journald
  5.8 MiB +   1.9 MiB =   7.7 MiB   gnome-settings-daemon
  6.4 MiB +   2.5 MiB =   8.9 MiB   evolution-alarm-notify
  9.1 MiB +   1.6 MiB =  10.7 MiB   Xorg
 10.1 MiB +   1.1 MiB =  11.2 MiB   seahorse
 11.9 MiB +   2.5 MiB =  14.4 MiB   epiphany
 18.9 MiB +   2.6 MiB =  21.6 MiB   WebKitWebProcess
 24.3 MiB + 972.0 KiB =  25.3 MiB   evolution-calendar-factory
 57.9 MiB +   5.2 MiB =  63.2 MiB   gnome-shell
---------------------------------
                        256.4 MiB
=================================

KDE

 Private  +   Shared  =  RAM used   Program

 68.0 KiB +   7.0 KiB =  75.0 KiB   start_kdeinit
 72.0 KiB +  13.5 KiB =  85.5 KiB   kwrapper4
120.0 KiB +  21.0 KiB = 141.0 KiB   agetty
172.0 KiB +  25.5 KiB = 197.5 KiB   dbus-launch
292.0 KiB +  26.5 KiB = 318.5 KiB   gpg-agent
312.0 KiB +  30.0 KiB = 342.0 KiB   dhcpcd
324.0 KiB +  81.5 KiB = 405.5 KiB   rpcbind
556.0 KiB +  25.0 KiB = 581.0 KiB   crond
596.0 KiB +  40.0 KiB = 636.0 KiB   systemd-logind
496.0 KiB + 234.0 KiB = 730.0 KiB   avahi-daemon (2)
700.0 KiB +  96.5 KiB = 796.5 KiB   ntpd
768.0 KiB +  44.5 KiB = 812.5 KiB   VBoxService
768.0 KiB +  83.0 KiB = 851.0 KiB   rpc.statd
832.0 KiB +  40.5 KiB = 872.5 KiB   systemd-udevd
832.0 KiB +  51.5 KiB = 883.5 KiB   startkde
728.0 KiB + 264.5 KiB = 992.5 KiB   accounts-daemon
516.0 KiB + 638.0 KiB =   1.1 MiB   nepomukserver
652.0 KiB + 519.5 KiB =   1.1 MiB   kdm (2)
  1.0 MiB + 346.0 KiB =   1.4 MiB   upowerd
848.0 KiB + 686.0 KiB =   1.5 MiB   klauncher
  1.2 MiB + 465.0 KiB =   1.6 MiB   (sd-pam) (2)
  1.3 MiB + 298.0 KiB =   1.6 MiB   udisksd
  1.6 MiB + 225.5 KiB =   1.8 MiB   akonadi_control
  1.6 MiB + 151.0 KiB =   1.8 MiB   syslog-ng
  1.1 MiB + 967.5 KiB =   2.0 MiB   systemd (3)
  1.6 MiB + 408.5 KiB =   2.0 MiB   dbus-daemon (2)
668.0 KiB +   1.5 MiB =   2.1 MiB   kdeinit4
  1.3 MiB +   1.0 MiB =   2.3 MiB   sshd (2)
  1.4 MiB +   1.4 MiB =   2.8 MiB   kio_trash (2)
  2.2 MiB +   1.0 MiB =   3.2 MiB   klipper
  2.8 MiB + 383.5 KiB =   3.2 MiB   VBoxClient (4)
  2.9 MiB + 454.0 KiB =   3.3 MiB   NetworkManager
  2.5 MiB + 989.0 KiB =   3.4 MiB   ksmserver
  3.3 MiB + 542.0 KiB =   3.8 MiB   kuiserver
  3.2 MiB + 875.0 KiB =   4.1 MiB   kglobalaccel
  3.4 MiB + 743.0 KiB =   4.1 MiB   akonadi_migration_agent
  3.5 MiB + 741.5 KiB =   4.2 MiB   polkit-kde-authentication-agent-1
  3.8 MiB + 638.5 KiB =   4.4 MiB   knotify4
  3.9 MiB + 892.0 KiB =   4.8 MiB   akonadi_maildispatcher_agent
  3.9 MiB + 954.5 KiB =   4.8 MiB   nepomukfileindexer
  4.1 MiB + 930.5 KiB =   5.0 MiB   nepomukfilewatch
  4.1 MiB +   1.2 MiB =   5.3 MiB   akonadi_newmailnotifier_agent
  5.3 MiB +  50.5 KiB =   5.4 MiB   systemd-journald
  4.4 MiB +   1.0 MiB =   5.4 MiB   korgac
  4.2 MiB +   1.2 MiB =   5.4 MiB   akonadi_nepomuk_feeder
  4.7 MiB + 850.5 KiB =   5.6 MiB   kactivitymanagerd
 13.4 MiB + -7873.5 KiB =   5.7 MiB polkitd
 14.1 MiB + -7803.5 KiB =   6.5 MiB akonadiserver
  5.9 MiB + 905.5 KiB =   6.8 MiB   nepomukstorage
  5.6 MiB +   1.8 MiB =   7.4 MiB   akonadi_sendlater_agent
  5.7 MiB +   2.2 MiB =   8.0 MiB   kmix
  5.9 MiB +   2.4 MiB =   8.3 MiB   akonadi_archivemail_agent
  6.0 MiB +   2.4 MiB =   8.3 MiB   akonadi_folderarchive_agent
  6.0 MiB +   2.4 MiB =   8.4 MiB   akonadi_mailfilter_agent
 11.9 MiB + -1763.0 KiB =  10.2 MiB kded4
 13.4 MiB + -1419.0 KiB =  12.1 MiB kwin
 12.2 MiB +   3.0 MiB =  15.2 MiB   akonadi_agent_launcher (4)
 13.8 MiB +   3.2 MiB =  17.1 MiB   krunner
 65.1 MiB + -44927.5 KiB =  21.3 MiB    mysqld
 33.7 MiB + 111.5 KiB =  33.8 MiB   virtuoso-t
 37.4 MiB + -816.5 KiB =  36.7 MiB  Xorg
 38.3 MiB +   7.8 MiB =  46.1 MiB   plasma-desktop
---------------------------------
                        358.8 MiB
=================================

Final thoughts

On Arch Linux at least, XFCE has lower resource requirements than MATE. When I said different in the past I was wrong, unless you use openSUSE in which case I was probably right, maybe.

LXDE does achieve what it set out to do as it is indeed a the lightest weight desktop environment I tested.

Anyone want to share some humble pie?

Comments

Linux Mint LMDE on Hybrid Disk Laptop    Posted:


I have an old Thinkpad T43p that I am trying to extend the life of. So I recently fitted a cheap 60GB IDE Solid State Drive (SSD) and put a 320GB SATA Hard Disk Drive (HDD) in the Ultrabay. This is not a true hybrid disk, but the principles are similar. The root partition will go on the SDD (for performance) and the home partition will be located on the HDD (for capacity).

I've been running Arch Linux on the T43p and the SDD improves system responsiveness and boot time considerably, especially when using F2FS or btrfs (with LZO compression and SSD mount options) on the root filesystem.

I am also testing Linux Mint Debian Edition (LMDE) with the MATE desktop to determine if this is a suitable operating system for my family to use. It appears they find GNOME 3 confusing and would prefer a familar desktop experience.

While testing LMDE 201203 I ran into a few issues, so I've decided to capture my notes here for future reference.

Fix the installer

In order to install LMDE using partitions on multiple drives you must use the ADVANCED USER install mode. However, the ADVANCED USER install mode has a bug that prevents the installer from completing, so that needs to be fixed first.

sudo nano /usr/lib/live-installer/frontend/gtk_interface.py

Find the following on line 1765.

self.wTree.get_widget("button_next").show()

After it add the following line, making sure the identation is correct.

self.wTree.get_widget("button_next").set_sensitive(True)

Installing LMDE

  • Double click the Install Linux Mint icon on the desktop.
  • Select your Language and click Forward.
  • Select your Timezone and click Forward.
  • Select your Keyboard layout and click Forward.
  • Enter your User info and click Forward.
  • From the Hard drive window Select Manually mount partitions (ADVANCED USERS ONLY) and click Forward.

The Please make sure you wish to manually manage partitions window will appear. On my system the SSD is detected on /dev/sda and the HDD is detected on /dev/sdb. Start GParted and partition and format the drives as follows.

/dev/sda1
  Size: 256MiB
  Create as: Primary Partition
  File system: ext4
  Label: boot

/dev/sda2
  Size: 2048MiB (or the size you prefer)
  Create as: Primary Partition
  File system: linux-swap
  Label: swap

/dev/sda3
  Size: Remainder
  Create as: Primary Partition
  File system: btrfs
  Label: root

/dev/sdb1
  Size: All
  Create as: Primary Partition
  File system: ext4
  Label: home

Apply the changes and close GParted.

I use ext4 for the /boot partition because GRUB can't currently boot from btrfs in LMDE. I use ext4 for /home because it offers the best performance on rotational drives on my Thinkpad T43p. I use btrfs on the /root partition because performs best (by some margin) on solid state drives in my Thinkpad T43p.

The filesystems need mounting under /target so the installer can install the OS. Open a Terminal and do the following.

sudo mkdir /target
sudo mount -t btrfs -o compress=lzo,ssd /dev/disk/by-label/root /target
sudo mkdir /target/{boot,home}
sudo mount -t ext4 /dev/disk/by-label/boot /target/boot
sudo mount -t ext4 /dev/disk/by-label/home /target/home

Return to the Linux Mint Debian Installer.

  • Click Forward.
  • From the Advanced options check Install GRUB and select /dev/sda. Click Forward.
  • Confirm the Summary is correct and click Install.

Time for a cup of tea while the install runs. A pop-up, titled Installation Paused, will appear. Click OK.

Create /target/etc/fstab

Do as the installer says and create /target/etc/fstab. Open a Terminal.

sudo nano /target/etc/fstab

The following fstab works for my T43p.

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>      <options>                           <dump>  <pass>
proc            /proc           proc        defaults                            0       0
LABEL=root      /               btrfs       defaults,noatime,compress=lzo,ssd   0       1
LABEL=boot      /boot           ext4        defaults,noatime                    0       2
LABEL=home      /home           ext4        defaults,relatime                   0       2
LABEL=swap      none            swap        sw                                  0       0

Upgrade MATE 1.6 and remove legacy MATE 1.4 packages

MATE 1.6 has been released for LMDE 201203 so it is a good idea to upgrade and remove legacy packages before the first boot to ensure a clean configuration. Open a Terminal.

sudo chroot /target
apt-get update
apt-get install apt-show-versions
apt-get dist-upgrade

Some MATE 1.4 packages will be left behind that are no longer required. The following can help identify them.

apt-show-versions | grep 1\.4\.[0-9]\-[0-9]\+wheezy | cut -f1 -d' '

Purge the old MATE 1.4 packages.

PKGS=`apt-show-versions | grep 1\.4\.[0-9]\-[0-9]\+wheezy | cut -f1 -d' '`
apt-get purge ${PKGS}

Exit the chroot.

exit

Finish the install

Return to the Linux Mint Debian Installer.

  • Click Forward.
  • Some final installation steps will now complete.
  • A pop-up, titled Installation finished, will appear. Click Yes.

Your computer will reboot and start LMDE.

References

Comments

Share