Use Your Linux System With A Broken Bootloader

Here are some simple steps that should allow you to make some very simple changes that could end up saving you a lot of time and possibly a reinstall of your Linux system.

  1. Acquire a Linux liveCD of your choice. I prefer SLAX, as it is very small and quick. There are countless others such as KNOPPIX, ZenWalk, Ubuntu, Fedora Live, and DSL. Each of these would easily be up to the task.
  2. Boot the live CD and get to a command line somehow. If you are in a GUI environment, this means starting a Terminal or Konsole session. If you are booted into a classic Linux login prompt, you're good to go.
  3. Make sure you're the root user (you can do this by typing whoami). If you're not root, type su - and enter the root password when prompted.
  4. Mount your linux root partition. These steps may vary depending on preference, but they should be fairly similar:
    1. cd /mnt
    2. mkdir myroot
    3. mount /dev/hda5 /mnt/myroot
    4. cd /mnt/myroot
  5. Depending on the complexity of the tasks you wish to perform, you may need to mount your device list according to what your live CD detected:
    1. mount /dev /mnt/myroot/dev
    2. mount -t proc /proc /mnt/myroot/proc
  6. Finally, switch into your installed system, specifying where your root partition is mounted and they shell you wish to use:
    1. chroot /mnt/myroot /bin/bash

At this point you should be able to do several useful things, such as reinstall your bootloader into the MBR. You can also edit hosed configuration files this way.

If you need to add Windows into your boot configuration, and you use LILO, you could try adding something like this to your /etc/lilo.conf:

other = /dev/hda1
    label = Windows
    table = /dev/hda

(be sure to run lilo again to save the change)

When you are all done with your chroot environment, simply type exit or logout or what have you. Then be sure to unmount anything you may have mounted in order to use the system.

Installing SuSE Linux Enterprise Desktop 10

This will be the second time for me putting SLED 10 on my laptop, but I've also put SLES 10, SuSE Linux 10.1, and various others on this laptop several times before. It _has_ been a few months since I last installed Linux on this laptop, so we'll see how well I remember how to do it. I will be installing the 64-bit DVD version, so as to take better advantage of the 64-bit capabilities of my processor. This shouldn't have a drastic effect on the overall procedure, compared to that of installing the 32-bit CD/DVD version.

Here are some specs of my laptop:

  • Make/Model: HP Pavilion dv8000
  • CPU: AMD Turion 64 ML-40 (2.2Ghz)
  • RAM: 1.25GB PC2700 DDR333 SODIMM
  • HDD: 5400RPM 80GB
  • Video: ATI Radeon Xpress 200M (128MB dedicated RAM, up to an additional 128MB shared RAM)

Note: I make a few assumptions in the writing of this article. One is that you are on a machine running Windows XP. If your computer can't handle Windows XP, you probably don't want to be running SLED 10. Another assumption is that you don't yet have your hard drive partitioned into more than one partition. I also assume that you already have the installation media in good working condition. For those of you in the BYU-I Linux Users Group (LUG), I am willing to make copies of the discs if you provide the media or discuss some sort of compensation if you want me to provide the media.

BACKUP ALL IMPORTANT DATA BEFORE PROCEEDING

We all hate losing the projects that we've slaved over for weeks and months. Take the proper precautions to backup anything you wouldn't like to lose before installing any flavor of Linux. That's not to say that you will lose everything, but it's not unheard of to wipe out all data from your drive while attempting to install Linux. With that warning out of the way, let's get started!!!

Defragment Your Hard Drive

If you have a secondary drive which you plan to dedicate to Linux, this step is not necessary. However, if you plan to install Linux on the same drive as your Windows installation, I would suggest defragmenting your drive prior to repartitioning your drive. In order to defragment your hard drive in Windows XP, open your Start menu and open the Control Panel. Once here, descend into Administrative Tools and run Computer Management. This utility is quite handy. On the left side of the Computer Management window, you should see a tree of options. Under Storage you will see the Disk Defragmenter. Simply click the Defragment button, and the program will begin optimizing your files. Defragmenting your hard drive basically puts each of your files into one piece instead of scattered across the drive (as they tend to be written). Defragmentation is a good process to run on a regular basis. Once again, this step is not necessary to the installation of Linux, but it is a good practice.

Begin The Installation

Once you're done backing up your files and defragmenting your hard drive, insert the first SuSE Linux Enterprise Desktop 10 CD/DVD into your CD/DVD drive and reboot your computer. You should be presented with a fancy blue welcome screen, but if you see the Windows boot screen, you'll have to change the settings in your BIOS to enable you to boot from your CD/DVD drive. That process will vary from machine to machine, so I won't even try to explain how to do it. Once you see the welcome screen, you are presented with several boot options:

  • Boot from Hard Disk
  • Installation
  • Installation--ACPI Disabled
  • Installation--Local APIC Disabled
  • Installation--Safe Settings
  • Rescue System
  • Memory Test

We're going to go with the first Installation option. In my experience, starting with SuSE Linux 10.1, I haven't had any issues at all getting Linux installed. Most people shouldn't have problems booting into the installation program, but if you do, try the other Installation options. Once we begin the installation process, the bootloader will load the Linux kernel into memory and begin booting the SuSE Linux Enterprise Desktop installation utility. It will probe several devices to make the installation usable, after which you are presented with a language selection menu. Choose the language of your preference. Next you will be asked to accept the License Agreement, which I would recommend reading (with any product, not just SLED). If you accept, check the "Yes, I Agree to the License Agreement" option box and hit "Next." If you don't accept the agreement, this is the end of the road--your installation process will end.

Once we accept the License Agreement, a few more devices are probed and we're asked what kind of installation we'll be doing. With the assumptions I've made for this tutorial, we will proceed with a New Installation. If you have the "extras" CD, you can check the "Include Add-On Products from Separate Media" checkbox. You'll then be asked to insert the disc so that a catalog of available applications can be made. However, I'll assume that we all just have the required media. Click "Next" to create a catalog of the software available.

Now we're presented with a Clock and Time Zone screen. Choose the appropriate options for your situation and click next.

Installation Settings

Once we have set our clock and time zone, we are shown an overview of the current installation settings. I personally prefer to see all of the details, so I am going to click on the Expert tab. I don't like the predefined partitioning scheme, so I am going to change that.

Partition Your Drive

Partitioning a hard drive basically allows you to split up that brand new 500GB SATA-II drive you bought into smaller "virtual hard drives." I like to partition my hard drive because it allows me to manage my files easier, and I don't have to worry about losing ALL of my data if one of the partitions needs to be reformatted. Each partition can have a different file system on it, which allows us to run a Windows file system (NTFS) and a linux file system (ext2/3 and reiserfs are the two main ones, at least for workstations) on the same physical hard drive.

This is the first time I will entrust all of the data on my hard drive to a Linux installation partitioning utility in a very long time. We're talking about 7 years... However, for the sake of others, I am willing to put it to the test to see if SuSE will not wipe my drive when I try to resize the Windows partition. I usually use a utility such as Partition Magic to resize and create new partitions.

To change my partitioning scheme, I click on the "Partitioning" subtitle on the Expert tab in the Installation Settings section. I want to base my partition setup on the default proposal, so I select the second option "Base Partition Setup on This Proposal" and hit next. This part could be a bit hairy if you've never partitioned a drive before. I want to be able to share files between Windows and Linux, so I am going to create a small ~20GB partition which I will format to be FAT32, a format readable and writable in both Windows and Linux.

First, I must resize my Linux partitions. I don't need my home partition to be 22GB, so I'm going to resize that one to be 5GB. To do that, I select the partition with /home listed as it's Mount point and click the "Resize" button at the bottom of the screen. The window that appears shows a graphical representation of the changes we make. All I need do is enter "5" into the "Space Free (GB)" box or move the slider to the right spot and click "OK". Now I'm left with 17GB to share between Windows and Linux. To create this new partition, I click on the "Create" button at the bottom.

The new partition window asks me what type of format I wish to have on the new partition--I want to select FAT. I want to have this partition listed in a place that makes sense to me, so I'm going to change the "Mount Point" field to /windows/share and click OK. I think I'm now satisfied with the partitioning scheme, so I click "Finish" to return back to the Installation Settings screen.

Partitioning Pointers

Let me share some pointers for partitioning schemes. Traditional Linux installations would ask for a partition twice as big as the amount of RAM you have in your machine. This is for the swap, which is synonymous with virtual memory in Windows lingo. That means that if you have 512MB of RAM, your swap partition should be at least 1024MB (1GB). Likewise, if you have 1GB of RAM, your swap partition should be at least 2048MB (2GB). In my opinion, the average Linux desktop does not require more than 512MB for a swap partition. I may be mistaken, but I think the "double your RAM" rule became somewhat obsolete for desktop workstations with the advent of 2Ghz+ processors with 1GB+ of RAM. It could just be me, but I've never even filled 256MB of swap. Just something to consider while partitioning your drive.

If you plan on experimenting with several distros of Linux without wiping other installations of Linux, I would recommend a partition dedicated to your /home folder. This way, you are able to keep your personal settings across most if not all distros. I've found it useful on countless occasions.

Software Selection

One thing I really like about SLED is the ease of package selection. Their default package selection will suit most people just fine. However, I have developed my own tastes for how I like my Linux, so I am going to customize the package selection a bit. To do that, I click on the "Software" heading in the Expert tab of Installation Settings.

I personally prefer KDE to GNOME as my window manager. So I am going to deselect GNOME from the Desktops category, but not so the "Do Not Enter" symbol shows up where there once was a check. I want to click the checkbox until I see a white box (no checkmark). I'm not sure if this is required, but usually different environments will require libraries from other environments in order for certain programs to run. I suspect that the Do Not Enter sign means that nothing for GNOME will be installed, but this is not fact--it's simply a notion of mine. Now I want to put a check in the checkbox next to KDE. Being a nerd, I want to have my compilers around, so I will also select that option.

According to the disk usage graphs in the bottom right of the screen, I'm only going to be installing about 1.9GB of software. That's interesting because I downloaded a whole DVD... If anyone wants to see what other software is available, you can click the Details button below the software category list. This might scare a few off, but it's all quite simple. If you want to see more categories to choose from, select "Package Groups" from the Filter list in the top left. This is where you can explore all of your software options available on your installation media. I am going to leave that sort of customization until after I'm all installed and running.

Once you're done selecting the packages you wish to have installed, click Accept from the bottom right. You will probably encounter a few more license agreements at this point. These are for non-open-source applications (Adobe Acrobat Reader, Macromedia Flash plug-in, etc) included with SLED. I recommend reading and accepting each license agreement. Now I am presented with the same Expert tab in the Installation Settings stage. Now we're ready to proceed, so click Accept in the bottom right again. We're asked to confirm that we want to install Linux, with a warning that certain parts of your hard drive will be formatted, thus erasing any data that were there before. If you're ready, click Install, sit back, and enjoy.

Installing Everything

At this point your partitions will be resized/formatted and the appropriate files will be installed. This process can take anywhere from 20 minutes to 2 hours or more, depending on the packages you selected and the speed of your system. You might be interested in seeing what exactly is being installed on your system at this point. If so, you can click the Details tab and see each package being installed. Apparently I chose some other packages along the way or something, because now it says that I'm installing about 2.5GB of software and that this segment should take about 30 minutes.

Once all of the files are copied, the installation settings will be saved to the hard drive and your system will reboot for the first time in your brand new SLED. At this point, you shouldn't remove your installation media, as it is required in the following steps.

The Initial Boot And Final Settings

When we boot up our SLED for the first time after installation, we are asked to provide a hostname to identify our machine on the network. When you have set the hostname and domain name as you want them, click next. Now we're asked to set the root password. Make sure this password is one that you'll not forget, but at the same time make sure that it's not easy to guess. If someone gets root access to your machine, there's no end to what they can do.

Network Configuration

This is another section that is mostly correct, but a few settings are not the way I would like them to be. For example, my ssh port is listed as disabled under the Firewall heading. To enable it, just click the word "blocked"--it will change to "open". The rest of the settings look fine for now. If you have any customizations to be made, go ahead and make them. I'll wait.

When we're ready to move on, click next. At this point, our network configuration is saved. Next we're asked if we wish to try out our Internet connection. Do as you please. I usually skip this step, but for your sake, I will try out my connection. When we test, it tries to download the latest changelogs. If your connection works, you will see "Success" in the Result field. Click next.

User Authentication Method

Most home users won't have their own LDAP server or Windows Domain setup, so I won't go into how these are to be set up. Let's just go with Local authentication for now, the default option. Click next.

New Local User

This is when we create our very own user account. This set is essential. DO NOT EVER RUN EVERYDAY APPLICATIONS AS ROOT. There are serious security implications involved if you choose to login and perform your daily tasks as the root, or all-powerful administrator, user in Linux. It's much easier to just create an "unprivileged" user and do your regular business with that account. Only login as root when you need to perform system maintenance or install something. When you're done with those tasks, logout of the root environment immediately. Trust me.

Anyway, back to our installation. Go ahead and create your user. You may or may not want to check the checkbox to receive system mail. System mail includes certain security breaches on most distributions. If you don't wish to have to enter your password in order to use your computer, click the automatic login checkbox. If you wish to add more than one user at this time, you can click on the User Management button. The process is pretty much the same as it is to add the first unprivileged user. Click next when you're ready to proceed.

Now our system configuration is saved again (this seems to happen all the time in SuSE... it gets rather annoying in my opinion). After our settings are saved, we are presented with the release notes (which may have been more useful had they been displayed during the file copy process, but whatever). Read them if you wish. Click next when you're ready to proceed.

Hardware Configuration

Now this is one of the selling points for me with SuSE. I have a 17" widescreen (1680x1050 max resolution) for my laptop. There weren't many distros for a while that could handle the resolution out of the box. Fedora Core 5 was the first that I tried that handled it without any manual configuration, and SuSE was the second. I'm pretty happy with the configuration listed here, so click next when you are too. Once again, the settings will be saved (seems like saving settings in SuSE is as bad as rebooting in Windows...).

If you have several similar machines, you can save your installation configuration by checking the "Clone This System for Autoyast" checkbox. If you choose this, the system will determine what settings exactly were used for installation and create a file somewhere that you can use in later installations. When this is done, or when you click finish if you don't want to clone, a login screen will appear.

First Login

When you see this login screen, enter the username and password that you created for the unprivileged user. You'll see a fancy loading screen while your profile is being created for the first time.

Now, you may or may not have noticed, but I wrote this article as I installed SLED. I want to watch a movie now, so subsequent configuration (wireless, 3D acceleration, etc) will take place later. I hope this is good enough for the time being.

Enabling Mouse Scroll in Linux

Ok, just so everyone knows, I will not go into much depth about how to get your scroll button working, but I will cover the basics:

  • Open your xorg.conf file (it's likely to be hanging around /etc/X11/xorg.conf)
  • Find the section related to your mouse (search for the text "mouse" or "pointer")
  • Set your protocol to IMPS/2
  • Add the line below the protocol: Option "Buttons" "5"
  • Add the line below the buttons option: Option "zAxisMapping" "4 5"
  • Save the xorg.conf
  • Restart the X windowing system. If you did you editing from within X (using KDE, GNOME, or other environment) you should be able to hit CTRL-ALT-Backspace to restart X.

These instructions will likely vary depending on your distribution. Some distributions (like Fedora, SuSE, Ubuntu, etc) don't seem to play well with manually-edited files and prefer that you use their graphical interfaces to change settings like this. But you should also not have issues using the scroll button on your mouse with the distributions listed above.

Good luck!

SuSE 10.1 x86_64

Ported From Blogger

The following post was ported from my old blogger account.

I've been using SuSE Linux 10.1 on my laptop ever since the day it was released, and I have to say that I'm quite satisfied with it. I'm usually a Slackware man, myself, but SuSE has become one of my new favorites.

Ever since I first started using Linux some 7 years ago, I've kept an eye on SuSE. I came really close to actually purchasing a boxed copy back around version 7.3 I think. This was mostly because SuSE is so visually appealing. Once openSuSE came about, I was super excited and downloaded the 5 CD set for version 10.0 immediately. To my disappointment, this version didn't play well with my brand new laptop. I didn't feel like finding out why, so I just gently tucked the CDs away in the drawer with all of my other Linux CDs. As soon as the 10.1 CD set was publicly released on May 11th, I grabbed a torrent to get all of the 5 CDs plus the non-OSS add-on CD.

The same day, I popped the first CD in and began the installation. To my surprise, SuSE 10.1 had no qualms with my Radeon 200M, whereas almost all distros that I had tried on this laptop up to this point would lockup once they did anything outside of the wonderful console (besides Fedora Core 5). SuSE 10.1 was 1 up on all the others, especially after seeing the splash screen. Absolutely beautiful. The installation went really smoothly. I opted for the KDE install, as I'm not a big fan of GNOME. And this is despite the fact that the folks at SuSE spent a lot of time and effort making GNOME mesh well with their distro.

Once the installation finished, I began tinkering around in my menus just to see what there was to see. I have to say that things are set up pretty intuitively in KDE to begin with (or maybe I've just been using it for a long time), but SuSE makes it even better. Device recognition is actually beyond my expectations for Linux. Just about anything I pop into a USB port will be recognized within seconds and I will be asked what I want to do with it. Even my HP All-In-One printer/scanner/copier works without a hitch!! This is the first scanner that I've had function in Linux! Excellent. My media reader doesn't seem to be compatible with Linux yet, but that's fine since I rarely use it anyway. I was able to get my Radeon to play well with the proprietary drivers from ATI, and my FPS jumped from around 100 to 1100 when running glxgears. Nice improvement.

One thing that did take a long time to figure out was my wireless. I had only played with wireless one other time in Linux and that was on some generic PCMCIA wireless card in a past roommate's laptop. That seemed to be simple enough to setup, with the help ndiswrapper. However, finding the correct drivers for my internal wireless adapter, and finding them in the 64-bit edition proved to be quite the runaround. Eventually, I was able to get in touch with someone who graciously emailed them to me as an attachment. To my disappointment, however, ndiswrapper didn't seem to do wireless with these drivers either!! Wow. I put wireless tinkering away for a while, but came back to it amidst my boredom. I came across some forum that had the answer to my quest: a file link. The drivers I had received through email were the correct drivers, only they were linked up to some other device identifier. All I needed to do was essentially make an alias of my device identifier and make it point to the identifier used by the drivers. As soon as I did this, ndiswrapper worked like a charm. I was able to see several wireless networks in my area. I did (and still do) have a problem connecting to certain access points, however. For some strange reason, I cannot figure out how to connect to my own wireless router, nor the university wireless. It's rather frustrating, but I can live with an ethernet cable.

Ahh, yes. Linux.