این آموزش رو از دوست بسیار عزیزم آقای توکل یاد گرفتم ببینین می تونین یه کاری بکنین
fdisk -l پارتیشنهای شما را نشان خواهد داد. خب با این حساب شما با دستور mount هم می توانید بفهمید لینوکس تان روی است به مثال کامپیوتر من دقت کنید:
من knoppix و ubuntu دارم و کامپیوترم از روی knoppix بود شده است. ابتدا یک پنجره ترمینال باز میکنم. سپس با کاربر root وارد میشود (دستور su) خب حالا تایپ میکنم:
fdisk -l
و جواب میگیرم:
Disk /dev/hda: 122.9 GB, 122942324736 bytes
255 heads, 63 sectors/track, 14946 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 255 2048256 6 FAT16
/dev/hda2 256 14946 118005457+ f W95 Ext'd (LBA)
/dev/hda5 256 2805 20482843+ b W95 FAT32
/dev/hda6 2806 5237 19535008+ 83 Linux
/dev/hda7 5238 14598 75192201 83 Linux
/dev/hda8 14599 14946 2795278+ 82 Linux swap / Solaris
حالا دستور اینکه لینوکسم واقعا روی چه پارتیشنی بوت شده؟
یا به /etc/fstab نگاه میکنم ببینم که پارتیشنی که / است چیست؟
vi /etc/fstab
یا با mount نگاه به پارتیشنهای مانت شده می اندازیم برای من در fstab اینها بود:
# /etc/fstab: filesystem table.
#
# filesystem mountpoint type options dump pass
/dev/hda7 / ext3 defaults,errors=remount-ro 0 1
proc /proc proc defaults 0 0
/dev/fd0 /floppy vfat defaults,user,noauto,showexec,umask=022,utf8=true 0 0
usbfs /proc/bus/usb usbfs devmode=0666 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
/dev/cdrom /cdrom iso9660 defaults,ro,users,noexec,noauto,utf8=true,umask=000 0 0
/dev/dvd /dvd iso9660 defaults,ro,users,noexec,noauto 0 0
# Added by KNOPPIX
/dev/hda1 /mnt/hda1 vfat noauto,users,exec,umask=000,utf8=true 0 0
# Added by KNOPPIX
/dev/hda5 /mnt/hda5 vfat noauto,users,exec,umask=000,utf8=true 0 0
# Added by KNOPPIX
/dev/hda6 /mnt/hda6 ext3 noauto,users,exec,umask=000,utf8=true 0 0
# Added by KNOPPIX
/dev/hda8 none swap defaults 0 0
/dev/sda1 /mnt/flash vfat noauto,users,exec,umask=000,utf8=true 0 0
خب که این خط آبی شده نمایانگر پارتیشن اصلی است.
خب حالا ببینیم آن خطی که بنفش است ( پارتیشن ubuntu من است) را چگونه استفاده کنیم؟
باید با دستور :
mount /dev/hda6
ابتدا مانت شود. بعد با دستور :
chroot /mnt/hda6
تغییر ریشه بدهیم.
حالا در محیط ubuntu هستیم می توانیم ببینیم که چطور منوی گراب ساخته می شود:
vi /boot/grub/menu.lst
و برای من اینچنین بود: (خطهای اضافی را نیاوردم)
title Ubuntu, kernel 2.6.12-9-386
root (hd0,5)
kernel /boot/vmlinuz-2.6.12-9-386 root=/dev/hda6 ro quiet splash
initrd /boot/initrd.img-2.6.12-9-386
savedefault
boot
خب بگذارید آنرا موشکافی کنیم:
root (hd0,5)
یعنی اینکه پارتیشنی که / است در هارد شماره صفر (اولین هارد) و پارتیشن شماره ۵ (ششمین پارتیشن است) این روش برای آدرس دهی در یونیکس است که هاردها از ۰ شروع شده و پارتیشن هر کدام هم از صفر. که معادل hda6 در لینوکس است.
kernel /boot/vmlinuz-2.6.12-9-386 root=/dev/hda6 ro quiet splash
کرنل بوت شونده را آدرس دهی میکند. دقت کنید دیگر / شناخته شده و یعنی فایلی که در مسیر /boot/vmlinuz-2.6.12-9-386t و در پارتیشنی که به عنوان / معرفق کردیم وجود دارد.
initrd /boot/initrd.img-2.6.12-9-386
هم نشان از initrd است که برای بارگذاری بسیاری از ماژولهای هسته کاربرد دارد. و مانند کرنل در پارتیشن / است.
خب هر چیز را که لازم بود شناختیم.
پس برای من باید این کار را انجام دهم تا منوی اولیه درست شود:
با دستور exit از ubuntu خارج می شوم بعد
کد:
kwrite /boot/grub/menu.lst &
kwrite /mnt/hda6/boot/grub/menu.lst &
هر دو منو را باز میکنم.
حالا آن خطوطی که برایubuntu هست را به knoppix اضافه میکنم یعنی خطوطی که در /mnt/hda6/boot/grub/menu.lst هست و مربوط به ubuntu هست را به /boot/grub/menu.lst اضافه میکنم.
حالا فایل /boot/grub/menu.lst را ذخیره میکنم.
کار تمام است.