fdisk -l无法发现硬盘

csndxiazai 2012-05-18 10:08:04
我现在裁剪一个live linux系统,镜像在内存中加载启动,要读写硬盘上的ntfs文件,但现在第一步我用fdisk -l无法找到硬盘,用df命令也只有tmpfs信息。

说明:这些都是在虚拟机中运行的,安装windows时选择了scsi,编译linux时在config中也选择了scsi相关的支持

请大家帮忙分析一下,谢谢~
...全文
1432 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
deep_pro 2012-05-21
  • 打赏
  • 举报
回复
我看错了 以为你还停留在前一个阶段
12楼的说法仅限于fdisk -l 这一步过不去的情况
csndxiazai 2012-05-21
  • 打赏
  • 举报
回复
解决了,参考:http://www.linuxforums.org/forum/kernel/139453-libata-sata.html

加入ntfs-3g已经可以读写ntfs了

但lspci显示依然是不正常,我再排查下

谢谢deep_pro!
deep_pro 2012-05-21
  • 打赏
  • 举报
回复
既然你的lspci不正常 ,那就只能手动探测了
检查/sys/bus/pci/devices/ 下每一个设备的class ,因为是vmware,很可能就是总线0 ,槽位10 ,功能号0 的这个pci设备,例如
cat /sys/bus/pci/devices/0000\:00\:10.0/class
如果class为 0x010000 则表示是scsi控制器,你至少应该在/sys/bus/pci/devices/找到一个class是0x010000的设备。
如果你找不到,则表示你根本没有为虚拟机添加scsi硬盘。

如果你找到了,请提供verder和device id,例如
cat /sys/bus/pci/devices/0000\:00\:10.0/vendor
cat /sys/bus/pci/devices/0000\:00\:10.0/device

最后,如果你找到了一个class为 0x010000的pci设备,例如总线0 ,槽位10 ,功能号0 的这个pci设备,检查是否已经和驱动匹配成功
方法 ls /sys/bus/pci/devices/0000\:00\:10.0/ ,应该含有driver子目录
csndxiazai 2012-05-21
  • 打赏
  • 举报
回复
csndxiazai 2012-05-21
  • 打赏
  • 举报
回复
lspci依然全部显示:(null)class 0000:0000

ls /sys/bus/pci/device:
0000:00.00.0 0000:00.0f.0 0000:00.15.3
.......

截个图吧:

deep_pro 2012-05-21
  • 打赏
  • 举报
回复
如果可能 dmesg的全部也沾来
deep_pro 2012-05-21
  • 打赏
  • 举报
回复
你现在选scsi没用
还是把你的
lspci
ls /sys/bus/pci/device
ls /sys/bus/pci/drivers
3条命令的结果沾来看看
csndxiazai 2012-05-21
  • 打赏
  • 举报
回复
兄台都还在不,有碰到类似问题的,给点建议吧,谢谢~
csndxiazai 2012-05-21
  • 打赏
  • 举报
回复
汇报下:

scsi选择了:
SCSI target support
SCSI disk support

sata方面则根据建议选了全部

fdisk -l 返回依然为空


在/var/dmesg中的部分信息:
SCSI subsystem initialized
libata version 2.0 loaded.

系统命令用的busybox,目前不知道怎么往外发送文件




deep_pro 2012-05-18
  • 打赏
  • 举报
回复
首先要保证有Sata控制器的驱动,然后才轮到scsi
把你的
lspci
ls /sys/bus/pci/drivers
2条命令的结果沾来看看
Wenxy1 2012-05-18
  • 打赏
  • 举报
回复
硬盘没有驱动起来,看看/dev目录下是否有硬件设备文件。
csndxiazai 2012-05-18
  • 打赏
  • 举报
回复
谢谢deep_pro, 我重编译下
再向大家汇报
deep_pro 2012-05-18
  • 打赏
  • 举报
回复
lspci 目的是要你看pci总线上有哪些sata控制器,你去搜搜 pci配置空间
根据class 能识别出scsi 控制器
http://hi.baidu.com/binggoomin/blog/item/986196c27fffd01df8dc61a6.html
根据verid devid能识别出制造商,用来选驱动

ls /sys/bus/pci/drivers 是看有哪些sata控制器的驱动,你看到的9个驱动里没有一个是sata控制器的驱动
你要做通用的支持多的,就把Serial ATA and Parallel ATA drivers --->下的全选了得了
csndxiazai 2012-05-18
  • 打赏
  • 举报
回复
谢谢,两位兄台的恢复!

deep_pro:
我试了下lspci这个命令,显示都是(null)class 0000:0000
.config是我看着网上的一个选项说明自己一个个选择的,是少选了什么东西么?

ls /sys/bus/pci/drivers
的返回也只有9个文件夹:8319cp 8319too ehci_hcd gxfb net2280 ochi_hcd pcieport-driver serial uhci-hcd

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧