Moving from SCO to Linux
I've been running SCO as my personal desktop OS for many years now. I started with Xenix on a 286, and ended with 5.0.6 on a Pentium III.
I should say at the outset that I was not at all unhappy with SCO as my personal OS. There were some minor annoyances such as difficulties in compiling open source code, but the platform was stable, reliable and rugged. It served my needs.
However, it was time to change. I've known for sometime that I needed to pay more attention to Linux. I had installed Linux on spare machines, and played with it here and there, but that isn't enough. To become as conversant with Linux as I am with SCO, I needed to use it every day; I needed to experience the problems, to learn the glitches, to discover the ins and outs. The only way to do that was to make it my personal desktop.
The decision to do that was made more than a year ago- I've been putting it off, finding reasons why right now just isn't convenient, half-heartedly trying to convince myself that maybe I really didn't need to do this after all.
I finally reached the point of no more excuses. I had picked up a copy of Red Hat 7.1 a few weeks back but hadn't even looked at it. I could install it on a spare machine again, but I knew that wouldn't really get me into it- I'd just skim the surface- no, it was time to bite the bullet and make the transition. I honestly had dozens of other tasks competing for my attention, but it had just been put off too long. With long inward sighs, I made and verified two full DVD-RAM backups and one tape. I used Microlite BackupEDGE SS for this, and made sure that the DVD media would boot. If anything went wrong, I could easily restore to the exact state.
I then opened the Red Hat CD's and rebooted the machine with CD 1 in the IDE CDROM drive. That bombed almost immediately. Rather than trying to figure out why, I rebooted with the CD in the DVD-RAM drive (DVD-RAM drives read ordinary CD's). This time Red Hat was wiling to install. Goodbye SCO. Goodbye comfortable environment where I always know what to do. Time to learn new things.
The first thing to decide was how to partition my drive. I am of divided mind in this area. Nowadays, when using SCO servers, I only make two file systems, / and /boot. However, SCO's HTFS file system is much more rugged than Linux's ext2fs. While there are journalling file systems for Linux, I'm not sure they are fully mainstream yet, so I didn't want to go that route. There's also the matter of upgrades; although it isn't really difficult to upgrade with one big filesystem, having separate areas can speed things up and is just a little easier. Therefore, I decided to follow the typical advice of separate file systems. But how much space in each?
I knew that I was going to take the lazy way out and tell the installer to just install everything. That puts a lot of unnecessary stuff on the system, but it would also save me time hunting for things I might need. But while I knew how much total space all that would use (around 2 GB ), I didn't know where it would use it. I did some quick web research, but couldn't nail it down quickly enough, so I took a wild guess and set things up like this:
Device Boot Start End Blocks Id System /dev/sda1 * 1 5 40131 83 Linux (for /boot) /dev/sda2 6 1116 8924107+ 5 Extended /dev/sda5 6 267 2104483+ 83 Linux (for /) /dev/sda6 268 722 3654756 83 Linux (for /usr) /dev/sda7 723 984 2104483+ 83 Linux (for /var) /dev/sda8 985 1050 530113+ 83 Linux (for /home) /dev/sda9 1051 1116 530113+ 82 Linux swap
After the install (uneventful, by the way), this gave me:
Filesystem 1k-blocks Used Available Use% Mounted on /dev/sda5 2071384 69208 1896952 4% / /dev/sda1 38859 3853 33000 11% /boot /dev/sda8 521748 1740 493504 1% /home /dev/sda6 3597348 2122644 1291968 63% /usr /dev/sda7 2071384 45644 1920516 3% /var
My next task was to install Microlite Backupedgess and begin to restore what I needed. I first indexed the backup so that I could do quick command line restores of certain things I wanted right away, and then created a full listing that I edited down to just the things I wanted.
I couldn't just blindly restore- the SCO system keeps user directories in /usr, over here they'd be /home, etc. There was also the matter of space- the SCO had been (aside from /boot) one big file system. So I had to selectively pick and choose what I wanted. The "Instant File Restore" from DVD-RAM made short work of that: I'd restore a directory tree, move it where I wanted it, and move on to the next.
While restoring, I noticed errors coming from Gnome's attempts to automount the CD (the DVD-RAM, actually). I personally find automounting extremely annoying, so I shut that off from the Gnome control panel.
After restoring everything I wanted from backup, I finally ended up with this:
Filesystem 1k-blocks Used Available Use% Mounted on /dev/sda5 2071384 769916 1196244 40% / /dev/sda1 38859 7582 29271 21% /boot /dev/sda8 521748 240584 254660 49% /home /dev/sda6 3597348 2252824 1161788 66% /usr /dev/sda7 2071384 725392 1240768 37% /var
I now felt it was time to use the Red Hat Update agent to apply necessary patches and upgrades. Red Hat has really made that a painless task- once you are registered, just clicking on the Agent does all the work. As I had installed everything, there were a lot of updates to be brought down, but it all went quickly, and most importantly smoothly- no errors, no unresolved dependencies. Simple. I have small pangs of "should I really be trusting them to just go ahead and update all this stuff?", but what the heck- it's not so hard to reinstall if I needed to (I made fresh Microlite Edge backups before running the Update Agent).
The SCO system had run Visionfs, primarily so that my wife can store Windows files and have them included with the Unix backup. That required configuring Samba.
I know about Swat, but Samba is so easy to work with that I just edit /etc/smb.conf by hand. The important things I added were:
[global] netbios name = scobox workgroup = WORKGROUP hosts allow = 10.1.36. 127. security=user guest account = linda [linda] comment = linda path = /home/linda public = no writable = yes printable = no
Web PagesI also have some local web pages and cgi-scripts that I use to keep track of certain business related things. The Red Hat web stuff is now under /var/www; I moved my stuff in place and it all worked without any attention to /etc/httpd/conf/httpd.conf. I will have to get into that later, though, because I want to mirror my aplawrence.com site down here for convenience and to give a staging area for deployment.
My next task was to add a printer, using the Linux "printtool". This worked fine for text, but failed miserably for postscript (note when testing printers from printtool- if you make changes, you have to save them and restart lpd). That's what I have learned to expect with Linux; although the filters can handle this very well, there's something broken somewhere (at least with regard to my Laserjet 6L printer) because I have yet to have it work without manual editing. Actually, having the printer handle postscript isn't all that important to me because the only reason I need that is for printing from Netscape, and for that I can use the same "webprint" script I used on SCO:
#!/bin/bash # webprint gs -q -sDEVICE=ljet4 -r600 -sPAPERSIZE=letter -dNOPAUSE -dSAFER -sOutputFile="-" - > /dev/lp0
On the other hand, I'm stubborn. It's supposed to work, so why doesn't it? So I followed the trail and found that "magicfilter" is what's used here. Great- something I know nothing about. I did find its configuration for Postscript printing (it's a file with a ".foo" extension in /var/spool/lpd/lp if your printer is named "lp"), and I tried adjusting it, but still couldn't get it to work right. I guess I'll leave that for another day. Debugging this is a pain, because the only way to test is to try to print a Postscript file. That generates reams of paper when it fails, so you have to:
- Pull the paper from the printer (the 6L has no "off-line" switch)
- run lpc and then "stop all" and "lprm all" (assuming no other jobs, of course)
- Unplug the printer to clear the buffer
- Run "start all" and go back to debugging.
The final resoluton of this was simple: change the printer driver (in Printtool) to Laserjet4. The printer is a 6L, but that screws up Ghostscript, whereas Laserjet 4 works fine.
Right about then, I needed to call out with a modem to a client's site. Ooops, couldn't remember how to do that. Maybe cu? Well, it's there, but it's a mess. Tip? Nope. I tried "apropos modem", but got nothing useful. "apropos dial" also came up empty. Not expecting success, I tried "apropos serial" and the second line reminded me of "minicom". That worked fine. I'll have to learn how to script it or at least set up a dialing directory, but for the moment dialing manually works- nowadays I don't have a lot of places left where I have to use modems anyway.
Email and News
Well, by now I had been a number of hours without email. Was I having withdrawal symptoms? No, but that needed to be brought back. First step was to put the proper information back into Netscape and to restore my saved mail files. You have to exit Netscape completely and come back in for it to notice this.
Things can be better: I tried Mozilla and although it has its own share of frustrations, it seems to work better than this version of Netscape. But it does still crash here and there, and although it can file messages without hanging, it has strange ideas about sorting, and doesn't seem to expect that while I only want to view new messages in News, that doesn't mean that I want my Inbox treated the same way. I'm of divided mind as to which set of glitches annoys me the least.
The little things
It's the little things that get you. For some reason, I often want to know what line number I'm currently on in vi. I'm used to doing ":.=" (colon-dot-equal). With vi here (technically "vim"), that doesn't work- it's ":=" (colon-equal) instead. I couldn't get ssh-agent working between this box and my web site until I realized that I need to create the public key with ssh-keygen -t dsa, and store it on the other site as "authorized_keys2". I'm used to typing "df -v" amd "memsize", among other things. (see SCO/Linux Differences)
I also managed to crash this system by adding a hard drive and accidentally loosening the CD-RW cable in the process. I had to boot from the Linux CD and use "rescue" mode to recover it. That sets you up with everything mounted under /mnt/sysimage; all I had to do was:
lilo - r /mnt/sysimage sync umount /mnt/sysimage/proc umount /mnt/sysimage/home umount /mnt/sysimage/var umount /mnt/sysimage/boot umount /mnt/sysimage exit
I'm not even sure I had to do more than the "lilo -r"; it's possible that the rescue mode would have taken care of all the rest if I had just exited.
When the system came back up, it of course had to run fsck on each and every file system. I shut it down once more just to be certain everything was OK, and when I rebooted, I had reached "maximum mount count", which is 20 boots by default. So every filesystem had to be checked yet again. To avoid that in the future, I brought the sytem to single user mode ( init 1 ), and ran tune2fs to adjust the maximum mount count to different, larger, prime numbers for each file system. I chose prime numbers to avoid having more than one file system checked on each boot; of course eventually I'll reach the multiplication of the primes, but that's a long way away. There's another, time based, fsck check; I also disabled those because there's no need for both checks on a machine that boots every day.
- (in single user mode)
- tune2fs -c 13 /dev/sda1
- tune2fs -i 0 /dev/sda1
- tune2fs -c 23 /dev/sda5
- tune2fs -i 0 /dev/sda5
- tune2fs -c 31 /dev/sda6
- tune2fs -i 0 /dev/sda6
Brave New World
Well, it's only been a few days now. Everything I really need is working, but I still find myself hitting "ESC-K" and typing SCO commands now and then. Netscape and Mozila are annoyingly prone to crashes (much more so than Netscape was on SCO). Right this moment I'm using Mozilla for browsing and Netscape for Mail and News (the Mozilla mail and news just unexplainedly stopped working, but I was finding it too difficult anyway- the browser is nice, though).
But it's fun. It's good to wake up your mind by challenging all those long ago habits with new methods, new commands, new places. I've got quite a few things I need to get into, some loose ends that aren't quite the way I want them, but I'll get to those. Every day brings new realization of things I need to know to be efficient or sometimes just to do something I need to do, but as my knowledge increases, that will all get easier. And it is fun.
Got something to add? Send me email.
(OLDER) <- More Stuff -> (NEWER) (NEWEST)
Printer Friendly Version
Increase ad revenue 50-250% with Ezoic