Posts Tagged ‘ linux ’

Handy grub rescue USB

This post is aimed at everyone who has a USB stick that’s over 3 MB in size. If you do not have such a thing, skip to the grub rescue prompt stuff where you’ll have some information on how to boot into your usual kernel from one.

Grub error.

The worst thing that can happen to you, especially when you’re playing around with your partitions or upgrading. And sometimes, you don’t even get to goto the grub rescue prompt when your MBR gets corrupted. So you end up searching through your cd/dvd pouch for a live cd and realise – damn! I gave it all out to my friends. I recently figured you can have a handy USB stick  to avoid this. There a a couple of ways to do it, one is just to have a partition which has the data of a “live” pen-drive, which can be created from any existing live cd around. The instructions can be found here, believe there is an application installed in ubuntu which does exactly this as well, but then this means you’ll have to sacrifice a significant amount of your disk space for just contingency situations. There is another method, which involves you creating a small partition of about 3-5 MB on your USB stick. Which IMHO is not a lot of space in the modern day USB sticks. So, here goes the method:

1) Choose your favourite partition editing method and resize and existing partition to 5 MB smaller. I usually use “partitioneditior” or “GParted”.

2) Create a new ext3 or ext4 partition using the 5MB generated above.

3) Mount the new partition, lets say its in /mnt/usb

4) Goto a shell, and

mkdir -p /mnt/usb/boot/grub
cp /usr/lib/grub/i386-pc/* /mnt/usb/boot/grub/
echo ‘(hdY) /dev/sdX ‘ /mnt/usb/boot/grub/
sudo grub-install –root-directory=/mnt/usb /dev/sdX

Note, the X and Y above should be the device letter/number for the USB stick.
That’s it. Next time you boot with this USB stick, you’ll get a grub prompt which you can use to boot from.

From the grub prompt, booting is in 3 steps.

1) Specify the root partition
2) Specify the kernel image
3) Specify the corresponding initrd.
And boot.

So, the commands for those are:

root (hdX,Y)

[If you just have one hard disk, X is probably 0, and Y is the root partition. Don’t worry if you’re not sure, there is tab completion and the next step will make things clear]

kernel (hdX,Y)/boot/vmlinuz-foo-bar [Where foo bar can be tab completed to the latest kernel that you have]
initrd (hdX,Y)/boot/initrd-foor-bar [Again, -foo-bar should correspond to the kernel chosen above]

If you’re unable to tab complete and locate the kernel, you’ve chosen the wrong values for X and Y. Try with something else, one hint is the partition type will be some ext*.

Now, just type boot. And you’ll be booted into your above specified kernel. You can then run grub install and restore things back to normal working conditions 🙂

So, at the cost of 5 MB ( You’ll only need 3 if you think 5 is too much) on your USB stick, and some ten minutes of your time, you have a way to boot when your grub fails – yes, no more running around in search of a live cd. And oh, netbook users – you don’t really have a choice do you? 😉

Moc – The terminal music player for all your needs.

For terminal junkies, music players often come as a small trouble, you never
find a good ncurses based player that’ll offer all the functionality of a GUI
based music player ( of course the GUI player is amarok! ).

To name a few, global shortcuts is almost always  absent, and more importantly,
the concept of a play queue is absent in many. I recently found that MOC
supports queuing, and well, an easy way to control it using krunner. So yAy!

Here’s a small description of MOC and a quick-use cheat-sheet:

From terminal, the command “mocp” fires up the ncurses interface(and starts the
server), its themeable, can generate, save and load playlists and provides a
directory/file listing to enable the same. It also starts playing files from a
directory if you simply navigate to the directory and play the first file.
Read more here.

Now, that’s pretty much the functionality of many terminal based players. What
makes MOC awesome is that it supports queuing.
Plus, I find the interface very _usable_. What more, its key mapping can be
completely customized.

Commands within MOC are really intuitive, you can simply open it and start
using it, press h to display the current key mapping if you are unable to figure

Now, for the seamless “global” control: I realised, instead of having to
navigate to the mocp window or fire up a new shell to control the player, you
can control it with krunner. So, just Alt+F2, and use the following commands for
mocp followed by

-q –enqueue Add the files given on command line to the queue.
-p –play Start playing from the first item on the playlist.
-l –playit Play files given on command line without modifying the
-s –stop Stop playing.
-f –next Play next song.
-r –previous Play previous song.
-x –exit Shutdown the server.
-G –toggle-pause Toggle between play/pause.
-v –volume (+/-)LEVEL Adjust PCM volume.
-k –seek N Seek by N seconds (can be negative).
-j –jump N{%,s} Jump to some position of the current track.
-o –on <controls> Turn on a control (shuffle, autonext, repeat).
-u –off <controls> Turn off a control (shuffle, autonext, repeat).
-t –toggle <controls> Toggle a control (shuffle, autonext, repeat).

I don’t about anyone else, but I found this pretty cool, I don’t have to shift
to a new shell and still be able to do everything that I can with the player
That’s it for now, signing off.

Grub – What will you do with the black screen of failure?

Grub errors – One of the most common/frustrating errors an average Linux user faces. What’s more frustrating is that there are so many threads in so many forums on this issue that its simply impossible to try out all of them, and the probability of hitting the right one is quite low.

So, here’s a method that I use, something that hasn’t failed me till date.

Step 1 : Procure a debian based live cd (essentially something which uses grub) { This BTW is a tip to all Linux users, ALWAYS have a live CD with you, don’t go around in a wild goose chase for it just when you have problems, Murphy always beats you to it. }
And boot into it.

Step 2: Type the following commands, I’m not going to explain in detail what these do, they are pretty simple commands anyway.

sudo mkdir /mnt/root
sudo mount /dev/sdXY /mnt/root [ here sdXY is your root partition, my case it was sda2 ]
sudo mount -t proc none /mnt/root/proc [Hint: Use tab completion here, you’ll know if you’re using the right sdXY]
sudo mount -o bind /dev /mnt/root/dev
sudo chroot /mnt/root /bin/bash

Step 3: Now, type ls, you’ll see a familiar list of files. Yes, you’re in a root shell of your hard disk. Now, you can do any changes you need to do from “your” bash.

Step 4: [The Fix]

EDIT: Seems, things are a lot easier when you deal with grub-pc these days. Your life is much easier. All you have to do is to:

sudo grub-install /dev/sdX [The same X that you had used above]

And you’re done 🙂

If even that fails for you, the one below might work. Atleast it did for me the last time I tried it.

More commands to be executed:


You should be in the grub prompt now.

If it says command not found, you’re in for more work.
The issue is you’re in a newer version of grub, which is grub-pc.
So in order for this fix to work,

aptitude install grub-legacy

and proceed. [Note: the install will probably remove grub and grub-pc, don’t worry]

So, now you’re in grub prompt,

find /boot/grub/stage1

This will give you a list of root partitions in (hdX,Y) format, choose one of them.

root (hdX,Y)
setup (hdX)

This should give you a success result.

If not, make sure you’ve typed the commands in right order and have chosen the right values of X and Y.

{ And how to choose the right values of the (hdX,Y)? If your root partition is at say /dev/sda2, it is (hd0,1) }

Now, more stuff to be taken care of, the issue with grub setup is at times it changes your device map. So make sure you edit the /boot/grub/ment.lst file to have the right values of the root partition and the kernel images, especially if you had grub-pc installed.

Now, exit from the chroot shell, sudo umount /mnt/root and reboot.

You’ll no longer see the grub failure screen or the grub rescue prompt 🙂

HTS voices in festival

Steps to install HTS voices in festival

1. Install festival

2. Download the required hts voice tar.gz package( I recommend the cmu_us_slt_arctic_hts )

3. Untar it in any meaningful directory and copy the directory/festival/lib/voice to /usr/share/festival/voice

4. Now if you try to change the voice in festival by giving the command, (voice_cmu_us_slt_arctic_hts) and do a (SayText “Hello”) , it will give you the following error :
param -r not of type float

5. The show, just begins now, goto /usr/share/festival/voice/us/cmu_us_slt_arctic_hts/festvox

6. Now, vim cmu_us_slt_arctic_hts.scm and search for (“-u” ” 0.500000″).

7. When you get there remove the ” ” for all the float numbers, as in (“-u” 0.50000)
you have to do this for about 6 lines

8. :wq and you are done 🙂

Now open festival again , change the voice and try.
If you had installed my suggested version, you’ll hear a natural feminine voice

9. You can create a .festival rc with the following text and make this permanent
(set! voice_default ‘voice_cmu_us_slt_arctic_hts)