Thursday, June 10, 2010

RHEL6 (Beta) minimal installation

SkyHi @ Thursday, June 10, 2010

I’ve just started testing the Red Hat Enterprise Linux 6 Beta, and I was really happy to see that the Minimal installation option is back at last. I know it’s always been possible to achieve something similar with RHEL5 and kickstart, or even something close enough by choosing to not install anything except the Base group in the interactive installer, but it was no longer as easy as just selecting a “Minimal” option and be done with it.


With the current trends, where virtualization is omnipresent, and automatic provisioning getting more accessible every day thanks to tools like puppet, it makes perfect sense to avoid as much complexity as possible in the OS installation step and have all changes applied once the minimal system is up and running, as those can easily be applied to both new and existing systems. Uniformity and reproducibility are both key when dealing with servers on a large scale.


So here’s a quick overview of what you get right after the system gets installed :


  • Only 665MB disk space used (tested for the x86_64 architecture).
  • Only one service listening on all network interfaces : sshd.
  • Postfix as the local MTA listening on the loopback interface only, replacing sendmail at last.
  • Rsyslogd as the syslog daemon, replacing the basic syslogd/klogd at last.
  • A few basic daemons running : udevd, auditd, dbus, hald, crond.

All this is pretty neat, and many of the other changes look very interesting too. You can read all about them in the RHEL6 Beta documentation.


There is also a rhelv6-beta-list for discussions during RHEL6’s beta cycle, and the Red Hat bugzilla for tracking all problems one might encounter.


The output of df -h :


1Filesystem            Size  Used Avail Use% Mounted on
2/dev/sda1             7.4G  665M  6.4G  10% /
3tmpfs                 499M     0  499M   0% /dev/shm

The output of ps ax (with 4 cores) :


01PID TTY      STAT   TIME COMMAND
02   1 ?        Ss     0:01 /sbin/init
03   2 ?        S      0:00 [kthreadd]
04   3 ?        S      0:00 [migration/0]
05   4 ?        S      0:00 [ksoftirqd/0]
06   5 ?        S      0:00 [watchdog/0]
07   6 ?        S      0:00 [migration/1]
08   7 ?        S      0:00 [ksoftirqd/1]
09   8 ?        S      0:00 [watchdog/1]
10   9 ?        S      0:00 [migration/2]
11  10 ?        S      0:00 [ksoftirqd/2]
12  11 ?        S      0:00 [watchdog/2]
13  12 ?        S      0:00 [migration/3]
14  13 ?        S      0:00 [ksoftirqd/3]
15  14 ?        S      0:00 [watchdog/3]
16  15 ?        S      0:00 [events/0]
17  16 ?        S      0:00 [events/1]
18  17 ?        S      0:00 [events/2]
19  18 ?        S      0:00 [events/3]
20  19 ?        S      0:00 [cpuset]
21  20 ?        S      0:00 [khelper]
22  21 ?        S      0:00 [netns]
23  22 ?        S      0:00 [async/mgr]
24  23 ?        S      0:00 [pm]
25  24 ?        S      0:00 [sync_supers]
26  25 ?        S      0:00 [bdi-default]
27  26 ?        S      0:00 [kintegrityd/0]
28  27 ?        S      0:00 [kintegrityd/1]
29  28 ?        S      0:00 [kintegrityd/2]
30  29 ?        S      0:00 [kintegrityd/3]
31  30 ?        S      0:00 [kblockd/0]
32  31 ?        S      0:00 [kblockd/1]
33  32 ?        S      0:00 [kblockd/2]
34  33 ?        S      0:00 [kblockd/3]
35  34 ?        S      0:00 [kacpid]
36  35 ?        S      0:00 [kacpi_notify]
37  36 ?        S      0:00 [kacpi_hotplug]
38  37 ?        S      0:00 [ata/0]
39  38 ?        S      0:00 [ata/1]
40  39 ?        S      0:00 [ata/2]
41  40 ?        S      0:00 [ata/3]
42  41 ?        S      0:00 [ata_aux]
43  42 ?        S      0:00 [ksuspend_usbd]
44  43 ?        S      0:00 [khubd]
45  44 ?        S      0:00 [kseriod]
46  49 ?        S      0:00 [khungtaskd]
47  50 ?        S      0:00 [kswapd0]
48  51 ?        SN     0:00 [ksmd]
49  52 ?        SN     0:00 [khugepaged]
50  53 ?        S      0:00 [aio/0]
51  54 ?        S      0:00 [aio/1]
52  55 ?        S      0:00 [aio/2]
53  56 ?        S      0:00 [aio/3]
54  57 ?        S      0:00 [crypto/0]
55  58 ?        S      0:00 [crypto/1]
56  59 ?        S      0:00 [crypto/2]
57  60 ?        S      0:00 [crypto/3]
58  66 ?        S      0:00 [kpsmoused]
59  67 ?        S      0:00 [usbhid_resumer]
60  95 ?        S      0:00 [kstriped]
61 182 ?        S      0:00 [scsi_eh_0]
62 183 ?        S      0:00 [scsi_eh_1]
63 236 ?        S      0:00 [jbd2/sda1-8]
64 237 ?        S      0:00 [ext4-dio-unwrit]
65 238 ?        S      0:00 [ext4-dio-unwrit]
66 239 ?        S      0:00 [ext4-dio-unwrit]
67 240 ?        S      0:00 [ext4-dio-unwrit]
68 246 ?        S      0:00 [flush-8:0]
69 315 ?        S<s    0:00 /sbin/udevd -d
70 580 ?        S      0:00 [kauditd]
71 704 ?        S<sl   0:00 auditd
72 720 ?        Sl     0:00 /sbin/rsyslogd -c 4
73 737 ?        Ssl    0:00 dbus-daemon --system
74 760 ?        Ss     0:00 hald
75 761 ?        S      0:00 hald-runner
76 787 ?        S      0:00 hald-addon-input: Listening on /dev/input/event3 /dev/input/event1 /dev/input/event0
77 800 ?        S      0:00 hald-addon-storage: polling /dev/sr0 (every 2 sec)
78 801 ?        S      0:00 hald-addon-acpi: listening on acpi kernel interface /proc/acpi/event
79 835 ?        Ss     0:00 /usr/sbin/sshd
80 915 ?        Ss     0:00 /usr/libexec/postfix/master
81 921 ?        S      0:00 pickup -l -t fifo -u
82 922 ?        S      0:00 qmgr -l -t fifo -u
83 925 ?        Ss     0:00 crond
84 943 ?        Ss     0:00 login -- root
85 945 tty2     Ss+    0:00 /sbin/mingetty /dev/tty2
86 947 tty3     Ss+    0:00 /sbin/mingetty /dev/tty3
87 951 tty4     Ss+    0:00 /sbin/mingetty /dev/tty4
88 953 tty5     Ss+    0:00 /sbin/mingetty /dev/tty5
89 955 ?        S<     0:00 /sbin/udevd -d
90 956 ?        S<     0:00 /sbin/udevd -d
91 957 tty6     Ss+    0:00 /sbin/mingetty /dev/tty6
92 963 ?        Sl     0:00 /usr/sbin/console-kit-daemon --no-daemon
931029 tty1     Ss     0:00 -bash
941052 tty1     R+     0:00 ps ax

If you decide to try this Beta release, here are a few tips :


  • With the minimal installation, there is no ssh client installed, but yum is available, so just run yum install openssh-clients to get ssh and sftp installed.
  • There is a currently known limitation where network interfaces aren’t configured at install time (unless performing a network-based installation). If you have DHCP working for the system, you can temporarily run dhclient eth0 to get eth0 up. Don’t forget to edit /etc/sysconfig/network-scripts/ifcfg-eth0 to make changes persistent.

Happy beta testing!


REFERENCES

http://thias.marmotte.net/2010/04/rhel6-beta-minimal-installation/