LinuxSir.cn,穿越时空的Linuxsir!

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

今天碰到一个超级奇怪的问题

[复制链接]
发表于 2005-3-26 16:43:23 | 显示全部楼层 |阅读模式
我系统原来的分区是这样的:

  1. /dev/hda1 fat32 winxp
  2. /dev/hda5 fat32
  3. /dev/hda6 fat32
  4. /dev/hda7 ntfs
  5. /dev/hda8 fat32
  6. /dev/hda9 fat32
  7. /dev/hda10 fat32
  8. /dev/hda11 swap
  9. /dev/hda12 /boot
  10. /dev/hda13 /home
  11. /dev/hda14 /
  12. /dev/hda15 /var
复制代码

昨天在XP下装SoftICE把XP搞崩溃了。重装的时候干脆把C盘一分为二,把分出来的第二个分区改成逻辑分区,在第一个分区装了98,在第二个分区装了XP。分区变成这个样子:

  1. /dev/hda1   *           1         131     1052226    b  W95 FAT32       98  
  2. /dev/hda2             132        9726    77071837+   f  W95 Ext'd (LBA)
  3. /dev/hda5             132        1305     9430123+   b  W95 FAT32       xp
  4. /dev/hda6            1306        1371      530113+   b  W95 FAT32
  5. /dev/hda7            1372        2519     9221278+   b  W95 FAT32
  6. /dev/hda8            2520        3846    10659096    7  HPFS/NTFS
  7. /dev/hda9            3847        5875    16297911    b  W95 FAT32
  8. /dev/hda10           5876        7023     9221278+   b  W95 FAT32
  9. /dev/hda11           7024        8298    10241406    b  W95 FAT32
  10. /dev/hda12           8299        8420      979933+  82  Linux swap
  11. /dev/hda13           8421        8444      192748+  83  Linux       /boot
  12. /dev/hda14           8445        8687     1951866   83  Linux       /home
  13. /dev/hda15           8688        9173     3903763+  83  Linux       /
  14. /dev/hda16           9174        9726     4441941   83  Linux       /var
复制代码

我当时想,这样一来,由于fstab中指向了错误的分区,系统肯定不能正常启动了。
我从网上down了grub for dos,从/dev/hda13把原来的menu.lst拷过去,把

  1. root                (hd0,11)
  2. kernel                /vmlinuz-2.6.8-2-686 root=/dev/hda14 ro
复制代码

改为:

  1. root                (hd0,12)
  2. kernel                /vmlinuz-2.6.8-2-686 root=/dev/hda15 ro
复制代码

启动Linux,系统正常地启动了。我觉得好奇怪,就打开fstab看一看,结果是这个样子:

  1. # /etc/fstab: static file system information.
  2. #
  3. # <file system> <mount point>   <type>  <options>       <dump>  <pass>
  4. proc            /proc           proc    defaults        0       0
  5. /dev/hda15      /               ext3    defaults,errors=remount-ro 0       1
  6. /dev/hda13      /boot           ext3    defaults        0       2
  7. /dev/hda14      /home           ext3    defaults        0       2
  8. /dev/hda16      /var            ext3    defaults        0       2
  9. /dev/hda12      none            swap    sw              0       0
  10. /dev/hdc        /media/cdrom0   iso9660 ro,user,noauto  0       0
  11. /dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
复制代码

正好和现在的分区吻合。
这是怎么回事?我已不知道原来的fstab是什么样子,但我想肯定不是这样的啊。
难道Linux会根据root=/dev/hda15 ro 自动改fstab吗?

请高手指教!
发表于 2005-3-26 17:11:13 | 显示全部楼层
我系统原来的分区是这样的:

代码:
/dev/hda1 fat32 winxp
/dev/hda5 fat32
/dev/hda6 fat32
/dev/hda7 ntfs
/dev/hda8 fat32
/dev/hda9 fat32
/dev/hda10 fat32
/dev/hda11 swap
/dev/hda12 /boot
/dev/hda13 /home
/dev/hda14 /
/dev/hda15 /var

你能分这么多个主分区吗?用什么工具做的....我想你是记错了吧...
回复 支持 反对

使用道具 举报

发表于 2005-3-26 17:48:00 | 显示全部楼层
同楼上问。
按理说你原来必定有两个主分区的:一个hda1 fat32 winxp;另一个扩展分区,一定是hdx (0<x<5)
回复 支持 反对

使用道具 举报

发表于 2005-3-26 20:12:15 | 显示全部楼层
Post by 河边星星
我系统原来的分区是这样的:

代码:
/dev/hda1 fat32 winxp
/dev/hda5 fat32
/dev/hda6 fat32
/dev/hda7 ntfs
/dev/hda8 fat32
/dev/hda9 fat32
/dev/hda10 fat32
/dev/hda11 swap
/dev/hda12 /boot
/dev/hda13 /home
/dev/hda14 /
/dev/hda15 /var

你能分这么多个主分区吗?用什么工具做的....我想你是记错了吧...


人家明明就是一个主分区,其他都是扩展分区,哪来那么多主分区?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-27 13:13:58 | 显示全部楼层
呵呵,5后边的肯定都是扩展分区嘛!
第二段是fdisk -l 的输出结果,第一段是我自己写的,所以没有写/dev/hda2。
我把原来的第一个分区分成两个,就有了两个主分区,一个扩展分区,但要装98,98只认一个主分区,所以就把分出来的第二个主分区划到了扩展分区里,这样就是一个主分区,一个扩展分区。
因为扩展分区里多出了一个分区,所以所有分区的编号都加了一,比如swap原来是hda11,现在成了hda12。
我从98下用grub for dos 引导,menu.lst里把root 什么的都加了一,系统就启动了。按理说不应该呀,我根本没动过fstab,这个文件是怎么变的呢?
回复 支持 反对

使用道具 举报

发表于 2005-3-27 14:37:52 | 显示全部楼层
我請問一下:
你是如何把原?淼闹鞣謪^的空間,化成一個主分區,還有一個邏輯分區的..
是linux 下的disk druid做的嗎?


可能是你最初的fstab用的是e2labe過嗎?
如你原?硎侨珙?下....
[root@redhat root]# cat /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
LABEL=/dbs              /dbs                    ext2    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0
回复 支持 反对

使用道具 举报

发表于 2005-3-27 14:55:38 | 显示全部楼层
楼主是在win下重新进行的分区,
应该使用的是win下的分区工具;
就是把原有的hda1分区删除,重新划分,
使用linux下的fdisk也可以做到。

由于楼主的fstab里不包含需要挂载的win分区,
linux是完全可以自动正确修改的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-27 15:00:30 | 显示全部楼层
我是用的PQ分的区。

原来的fstab文件已经没有了,所以不知道是什么样子的。

Linux竟然可以自己修改fstab文件,真是太有意思了!

PS:我的fstab中有Win下的分区,新的fstab中Win下的分区都没有变,Linux下的分区变了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-27 15:02:17 | 显示全部楼层
Post by 河边星星
我請問一下:
你是如何把原?淼闹鞣謪^的空間,化成一個主分區,還有一個邏輯分區的..
是linux 下的disk druid做的嗎?


可能是你最初的fstab用的是e2labe過嗎?
如你原?硎侨珙?下....
[root@redhat root]# cat /etc/fstab
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot             /boot                   ext3    defaults        1 2
LABEL=/dbs              /dbs                    ext2    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0


我用的是Debin,原来的fstab是Debian自动生成的,我不知道是不是这个样子的。
回复 支持 反对

使用道具 举报

发表于 2005-3-27 15:04:23 | 显示全部楼层
菜鸟问一句:
/dev/hda8            2520        3846    10659096    7  HPFS/NTFS
中的HPFS是什么。hpux专用fs吗???
还有,就是fstab中的内容更新是由于系统启动的时候首先启动内核,然后读分区表,然后查找/分区和swap等,属于自动识别的过程。
比如mount -t vfat /dev/hda5 /home/d  把d盘mount到/home/d上
现在用mount /dev/hda5 /home/d  一样也可以把/dev/hda5     挂到/home/d上面。
回复 支持 反对

使用道具 举报

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

本版积分规则

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