+ -
当前位置:首页 → 问答吧 → mkfs 时的一个现象,已解决

mkfs 时的一个现象,已解决

时间:2009-12-28

来源:互联网

fdisk查看分区信息如下
[root@vkill'host ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x06e39518

Device Boot Start End Blocks Id System
/dev/sdb1 1 14 112423+ c W95 FAT32 (LBA)
/dev/sdb2 * 15 28 112455 83 Linux
/dev/sdb3 29 261 1871572+ 5 Extended
/dev/sdb5 29 261 1871541 c W95 FAT32 (LBA)

当我用mkfs格式化分区时tab提示如下
[root@vkill'host ~]# mkfs.vfat /dev/sdb
sdb sdb1

发现没有sdb3 之类的,我用mkfs直接写分区名时提示如下
[root@vkill'host ~]# mkfs.vfat /dev/sdb5
mkfs.vfat 3.0.1 (23 Nov 2008)
/dev/sdb5: No such file or directory

不知道啥原因,我第一次fdisk分区时只分了一个区,我把那一个mkfs 后mount 到了 /mnt ,我再次想fdisk 分区时忘记了先umount,而就导致了这个现象,我想问下有没有在不重启linux的情况下解决这个问题的方法那?



解决方法见7楼

作者: he200377   发布时间: 2009-12-28

cat /proc/partitions显示什么内容,会不会分区之后没有重新读入分区表?如果磁盘上有busy分区(当前挂接)fdisk/sfdisk是不能重新刷新分区表的,parted有时能成功刷新,不过如果是猜测的这种情况最好能重新启动一次。

作者: lifc   发布时间: 2009-12-28

打开那文件如下
[root@vkill'host ~]# cat /proc/partitions
major minor #blocks name

8 0 4194304 sda
8 1 2931831 sda1
8 2 1 sda2
8 5 497983 sda5
8 6 763056 sda6
8 16 2097152 sdb
8 17 2096451 sdb1

从这里看确实是没有刷新过来。
不过打开这个我发现了个东西,呵呵,就是 major 和 minor ,知道这个的话那就可以自己 mknod 了,我试试看

作者: he200377   发布时间: 2009-12-28

重新拔插看看

作者: ch_fb   发布时间: 2009-12-28

我mknod 了个 /dev/sdb2 问题依旧,不知道为啥,我操作如下

[root@vkill'host ~]# mknod /dev/sdb2 b 8 18
[root@vkill'host ~]# mkfs.ext2 /dev/sdb2
mke2fs 1.41.3 (12-Oct-2008)
mkfs.ext2: No such device or address while trying to determine filesystem size

scsi硬盘的major number 都是8,我g了半天确实是这样,搜索到一篇文章没看懂,这下懂了
文章地址http://www.lanana.org/docs/device-list/devices.txt

中间这段
8 block SCSI disk devices (0-15)
0 = /dev/sda First SCSI disk whole disk
16 = /dev/sdb Second SCSI disk whole disk
32 = /dev/sdc Third SCSI disk whole disk
...
240 = /dev/sdp Sixteenth SCSI disk whole disk

Partitions are handled in the same way as for IDE
disks (see major number 3) except that the limit on
partitions is 15.

现在回头再来看,明白了,但是我mknod为啥还是不行那?

作者: he200377   发布时间: 2009-12-28

引用:
作者: ch_fb
重新拔插看看
呵呵,我更想要的是过程,如果就只为结果的话,我重启就好了

作者: he200377   发布时间: 2009-12-28

呵呵,问题解决啦,参加了下面这篇文章的 9.4 章节

文章地址 http://www.ibiblio.org/pub/Linux/doc...ory-HOWTO.html


解决方法就是
# fdisk /dev/sdb
Choose p; check partition table
If satisfied, choose w

作者: he200377   发布时间: 2009-12-28

如果内核没有重新读入分区表创建多少个设备入口也没用啊。实在不想重启(比如重要服务器)要么umount掉全部分区然后sfdisk -R /dev/sdb(或者在fdisk里面保存退出),但对于root文件系统所在分区行不通,这种情况只能装个parted好像可以强制重新认分区。

作者: lifc   发布时间: 2009-12-28

引用:
作者: lifc
如果内核没有重新读入分区表创建多少个设备入口也没用啊。实在不想重启(比如重要服务器)要么umount掉全部分区然后sfdisk -R /dev/sdb(或者在fdisk里面保存退出),但对于root文件系统所在分区行不通,这种情况只能装个parted好像可以强制重新认分区。
呵呵,谢谢,我误打误撞到的,你说的完全正确,这下理解了,还好刚才我忍住没重启,要不又少学点东西啦

作者: he200377   发布时间: 2009-12-28

作者: he200377   发布时间: 2009-12-28