n_K, on 18 January 2013 - 02:39, said:
Yep. When installing arch, do NOT make a seperate boot partition on your hard drive, make that on the USB as ext2 and mount that as /mnt/boot, so eg;
mount /dev/sda2 /mnt
mount /dev/sdf1 /mnt/boot
then in the grub commands, use the sdf or USB drive, I'm not sure if you even need to provide the drive anymore or if grub picks it up from what device /boot is mounted on.
That is one way to pull it off, but there is a slight problem with that method. Namely, since your kernel is located on a partition on your flash drive, you will need to have it installed and mounted each time you perform a kernel update. Furthermore, when you install a new kernel in most distributions (although not Arch or Gentoo AFAIK), your grub.cfg will be regenerated - potentially causing some inconsistency.
A better method would be to leave /boot on your hard drive, and opt not to write GRUB to the MBR. Then install GRUB to the EXT2 partition on your flash drive, and write a grub.cfg that will automatically launch GRUB from your hard disk (via core.img or by loading the config file). The advantages of this method are that you don't need to have the flash drive mounted to perform kernel updates or anything else related to your system, just to boot it. You can safely remove the flash drive after Linux starts booting because init never mounts the flash drive or requires any files from it. Additionally, you have the option of limiting which installations it will automatically boot by probing for your /boot partition's UUID, including a custom "recovery kernel", or scripting other cool stuff. It takes more work than the first method initially, but its easier in the end (not to mention more elegant, which I believe is the Arch philosophy - and a leading reason why pacman should be put out of its misery).