LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1125|回复: 8

根分区在lvm2上如何引导?

[复制链接]
发表于 2008-12-30 18:15:20 | 显示全部楼层 |阅读模式
照着gentoo的lvm2安装指南过了一遍,又重新把根分区挪到一个lv内,/boot还在外面,请问该如何引导?grub.conf怎样写

在网上找的资料大多是用lvmcreate_initrd,可是这个脚本现在好像没有,不做initrd行不行?

我的内核已经编译成支持lvm2了(不使用模块),但是不知道grub里kernel后的root=?该怎样写,/dev/mapper/vg-lv?试过不行。。。/dev/vg/lv也不行,/dev/dm-x也不行,谁能知道一下?或者提供一下文档链接?lvm的man我看过,好像没有:-(
发表于 2008-12-30 19:51:47 | 显示全部楼层
http://www.the-infinite.org/arch ... oot-off-root-lv.txt
也许这个能帮你,只是这篇文章配置的是lilo
回复 支持 反对

使用道具 举报

发表于 2008-12-30 20:32:20 | 显示全部楼层
genkernel可以生成可以引导的initramfs
回复 支持 反对

使用道具 举报

发表于 2008-12-30 20:33:29 | 显示全部楼层
  1. title gentoo-2.6.25-r8 LVM2 gentoo_grub thinkpad
  2. root (hd0,7)
  3. kernel /kernel-genkernel-x86-2.6.25-thinkpad-r8  ro dolvm resume=swap:/dev/mapper/gvg-lvswap video=uvesafb:1024x768-32@60,mtrr:3,ywrap splash=verbose,fadein,theme:emergence console=tty1 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/mapper/dvg-lvdebianroot usbcore.autosuspend=1 pcie_aspm.policy=powersave
  4. initrd /initramfs-genkernel-x86-2.6.25-thinkpad-r8
  5. #
复制代码

使用genkernel 来生成initramfs,
配置/etc/genkernel.conf

以下是几个关键的设置,主要是不要clean 之前的object 还有加上lvm参数支持
  1. # Run 'make oldconfig' before compiling this kernel?
  2. OLDCONFIG="yes"
  3. # Run 'make menuconfig' before compiling this kernel?
  4. MENUCONFIG="no"
  5. CLEAN="no"
  6. # Run 'make mrproper' before configuration/compilation?
  7. MRPROPER="no"
  8. # Mount BOOTDIR automatically if it isn't mounted?
  9. MOUNTBOOT="yes"
  10. # Make symlinks in BOOTDIR automatically?
  11. # SYMLINK="no"
  12. # Save the new configuration in /etc/kernels upon
  13. # successfull compilation
  14. SAVE_CONFIG="yes"
  15. # Use Color output in Genkernel?
  16. USEcolor="yes"
  17. # Clear build cache dir
  18. # CLEAR_CACHE_DIR="yes"
  19. # Genkernel uses an independent configuration for MAKEOPTS, and does not source
  20. # /etc/make.conf . You can override the default setting by uncommenting and
  21. # tweaking the following line. Default setting is set up by
  22. # ${GK_SHARE}/${ARCH_OVERRIDE}/config.sh . The recommended value for -j
  23. # argument is: <number of processors>*<number of cores per processor>+1
  24. # MAKEOPTS="-j2"
  25. # Add in LVM support from static binaries if they exist on the system, or
  26. # compile static LVM binaries if static ones do not exist.
  27. LVM="yes"
复制代码

我一般都 genkernel all
你只要initramfs的话就 genkernel initrd得了
  1. $ df -hT
  2. 文件系统      类型    容量  已用 可用 已用% 挂载点
  3. rootfs      rootfs     15G   15G  225M  99% /
  4. /dev/mapper/dvg-lvdebianroot
  5.           reiserfs     15G   15G  225M  99% /
  6. rc-svcdir    tmpfs    1.0M  104K  920K  11% /lib/rc/init.d
  7. udev         tmpfs     10M  132K  9.9M   2% /dev
  8. shm          tmpfs    496M     0  496M   0% /dev/shm
  9. /dev/mapper/gvg-lvhome
  10.           reiserfs     15G  9.5G  5.6G  63% /home
  11. /dev/mapper/gvg-lvdata
  12.           reiserfs     15G   13G  3.0G  81% /home/lvdata
  13. /dev/sda8     ext3    279M  102M  164M  39% /boot
  14. /dev/sda1  fuseblk     17G   11G  6.4G  62% /media/sda1
  15. /dev/sda5  fuseblk     40G  3.4G   37G   9% /media/sda5
  16. /dev/sda6  fuseblk     29G   16G   13G  56% /media/sda6
  17. /dev/sda7     vfat     20G  7.8G   12G  41% /media/sda7
  18. /dev/mapper/gvg-lvroot
  19.           reiserfs     20G  8.8G   12G  44% /mygentoo
复制代码
回复 支持 反对

使用道具 举报

发表于 2008-12-30 21:18:58 | 显示全部楼层
也做了一次LVM2的跟文件系统,但感觉万一LVM出问题时会很麻烦,后来就又把跟文件系统分出来,再吧几个大文件目录挂到LVM2里边,这样万一出问题还可以单用户登录来处理。

/dev/sda2                /                ext3                noatime                0 1
/dev/sda1                /boot                ext2                noatime                1 2
/dev/vg/usr                /usr                ext3                noatime                0 2
/dev/vg/portage                /usr/portage        reiserfs        noatime                0 2
/dev/vg/home                /home                ext3                noatime                0 2
/dev/vg/opt                /opt                ext3                noatime                0 2
/dev/vg/var                /var                ext3                noatime                0 2
/dev/vg/swap                none                swap                sw,pri=1        0 0

amd64的系统,initrd文件有需要再上传给你,本坛限200k附件,怕怕。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-31 02:15:34 | 显示全部楼层
一觉醒来已经凌晨两点了。

多谢楼上几位大哥的回复。我试验了把现在用来上网的Sabayon 4 的inirtd拿来用,已成功,又按照axlrose的指导gen了一个initrd,也成功了。但这不是我的目的。

我本来的root就在外面,现在还没删,直接引导就行了。我多拷了一份root到lv做试验,只是想搞明白,为什么一定要用initrd?我的内核已经可以不使用模块支持lvm2,那是不是就应该在引导的时候能识别出lv的设备名?

一句话,我能不能在不要initrd的情况下引导位于lvm上的根分区?如果可以的话,我想这更符合kiss。期待解答。
回复 支持 反对

使用道具 举报

发表于 2008-12-31 11:13:24 | 显示全部楼层
07年的时候折腾了2周,并没有发现不用initrd引导lvm上的根分区,其中的关键是不通过initrd虚拟/的方式根本不能识别lvm分区(要读取/etc/lvm.conf 之类的配置文件,这是个先有鸡还是先有蛋的问题)这样也就无从引导了. 所以就目前而言只能通过initrd来引导位于lvm上的根分区了
回复 支持 反对

使用道具 举报

发表于 2008-12-31 20:57:23 | 显示全部楼层
解开initrd看下init脚本你应该明白了。
多了下面两行:
vgscan
vgchange -a y
这两个命令都是LVM2的包提供的,也就是说,只有内核没initrd的时候,虽然有了LVM支持,但没有激活。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-1 08:16:14 | 显示全部楼层
Post by tlze;1932369
解开initrd看下init脚本你应该明白了。
多了下面两行:
vgscan
vgchange -a y
这两个命令都是LVM2的包提供的,也就是说,只有内核没initrd的时候,虽然有了LVM支持,但没有激活。
受教了。昨日寝室断电,今晨显示器坏掉了,现在同学的机器上没有linux,只好以后再看。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表