原创 在linux下挂装USB移动硬盘or优盘以及卸载★★★★★

2011-6-14 21:14 3077 9 9 分类: MCU/ 嵌入式
主  题:
怎样在RH9下挂装USB移动硬盘
怎样在RH9下挂装USB移动硬盘
回复人: zhangyu_smx_(飞飞的叶子) ( ) 信誉:100 2003-06-16 03:19:14Z 得分:0
?
关注
Top
回复人: spark_li(晕忽忽(恶人谷:通讯连长)) ( ) 信誉:100 2003-06-16 17:53:56Z 得分:0
?
mkdir /mnt/usb
mount -t msdos /dev/sda1 /mnt/usb
mount -t vfat /dev/sda1 /mnt/usb

Top
回复人: gordonxiong(独狼) ( ) 信誉:99 2003-06-17 12:03:32Z 得分:0
?
不行啊,以下是出错信息
mount: /dev/sda1 is not a valid block device

Top
回复人: mtwaterc(山水居士) ( ) 信誉:100 2003-06-17 12:35:42Z 得分:5
?
大部分情况下,mount /dev/sda0 /mnt就可以了,不是sda0\1,就试试sdb0\1,或者sda、sdb

Top
回复人: gordonxiong(独狼) ( ) 信誉:99 2003-06-17 15:05:29Z 得分:0
?
都试过了,就是不行啊
  
[root@angel root]# mount -t vfat /dev/sda /mnt/win
mount: /dev/sda is not a valid block device
[root@angel root]# mount -t vfat /dev/sda0 /mnt/win
mount: special device /dev/sda0 does not exist
[root@angel root]# mount -t vfat /dev/sdb0 /mnt/win
mount: special device /dev/sdb0 does not exist
[root@angel root]# mount -t vfat /dev/sdb /mnt/win
mount: /dev/sdb is not a valid block device
[root@angel root]# mount -t vfat /dev/sdaa /mnt/win
mount: /dev/sdaa is not a valid block device
[root@angel root]# mount -t vfat /dev/sdaa1 /mnt/win
mount: /dev/sdaa1 is not a valid block device
[root@angel root]# mount -t vfat /dev/sdba /mnt/win
mount: /dev/sdba is not a valid block device
我用的是IMB BLUEGHOST 10G的USB硬盘.

Top
回复人: spark_li(晕忽忽(恶人谷:通讯连长)) ( ) 信誉:100 2003-06-17 18:04:05Z 得分:20
?
艾,忘记了给你说这一步

fdisk -l /dev/sda0
看能找到你的u盘否
Top
回复人: zhangyu_smx_(飞飞的叶子) ( ) 信誉:100 2003-06-19 01:23:58Z 得分:0
?
关注
Top
回复人: zhiqiu(萬花叢中過,不染一縷香!) ( ) 信誉:100 2003-06-19 07:04:56Z 得分:5
?
安装第二块硬盘
摘要
怎样安装第二块硬盘(2002-09-02 13:40:19)
 
By Wing, 出处:Linuxaid
  当计算机上安装的软件和存储的数据达到一定数量时,通常会感到硬盘空间会紧张,这时可能需要加装新硬盘,这里就介绍在Linux下加装新硬盘的过程。在Linux下安装硬盘分以下几步:
  1、购买新硬盘一块,当然,最重要的还是把硬盘在机器上装好。
  2、假如要加装的硬盘容量为1.2G,它的逻辑位置是 /dev/hdb(IDE1上的副盘,如果是IDE2上的主盘则为/dev/hdc,IDE2上的副盘则为/dev/hdd),首先要执行fdisk做逻辑分区:fdisk /dev/hdb
 command(m for help):
  如果这个硬盘是全新的,就在上面的命令后输入n,意思是建立新分区。
  接着程序提示:
  command action e extend p primary partion(1-4) p:输入p创建主分区 Partion number(1-4):1 指定第1个分区 First cylinder(1-621):1 指定第一个分区的起始柱面 Last cylinder or +size or +sizeM or +sizeK([1]-621): 如果只分一个区就输入621,将全部的容量都分给第一个分区。 Command(m for help):p   这里输入p检查刚才所做的操作是否正确: Disk /dev/hdb:64 heads,63 sectors,621 cylinders Units =cylinders of 4032 *521bytes Device Boot     Begin     Start    End     Blocks     ld      System /dev/hdb1        1        621    621    1251904+   83       Linux native Command(m for help):wq 
  这说明分区成功。最后别忘了输入wq存盘退出!
  3、格式化
  分区完成后,接着要对硬盘进行格式化操作,使它成为Linux系统格式,相应用命令为mke2fs –c /dev/hdb
  4、挂新硬盘
  接下来的动作是要指定一个目录给新硬盘。并让它在一开机时就成外挂进来。这时要修改文件/etc/fstab,在其中加入一行,在这个文件中记录了Linux系统外挂进来的文件格式,加入下面一行:
 /dev/hda1 /home1 ext2 defaults 1 1
  这样,/home1就是新硬盘的目录,这里ext2是Linux系统的文件格式,defaults 1 1则是将此目录的权限设为可读写的。最后就是要建立home1:
mkdir home1
  5、重新开机
 sync;sync;reboot
  这样,当再一次进入Linux时,系统就会把新安装的硬盘外挂进来了。


Top
回复人: gordonxiong(独狼) ( ) 信誉:99 2003-06-20 16:53:52Z 得分:0
?
还是不行啊
[root@angel angel]# /sbin/fdisk -l /dev/sda0
[root@angel angel]# mount -t vfat /dev/sda0 /mnt/win
mount: special device /dev/sda0 does not exist

Top
回复人: Jedimaster(死亡不是终结) ( ) 信誉:98 2003-06-21 01:57:41Z 得分:5
?
先fdisk -l /dev/sda
没问题再 mount -t msdos /dev/sda1 /mnt/usb
Top
回复人: Exper(芝麻开门) ( ) 信誉:100 2003-06-21 10:34:36Z 得分:0
?
haha 我也会了
Top
回复人: jacksg() ( ) 信誉:98 2003-06-21 11:29:18Z 得分:0
?
你使用dmesg | grep usb看看usb信息是否有出错信息,如果有的话,那就是内核挂接错误,你需要重新编译内核了。
Top
回复人: wangguoqin1001(王国钦) ( ) 信誉:100 2003-06-21 15:48:45Z 得分:15
?
在linux下挂usb硬盘是一个讨论已久的问题。对于名牌的usb硬盘,你可以查查看,可能可以找到解决方法;若是这块硬盘售价在2000元以下,还是等一阵子吧。
注:以上说的是usb硬盘,不适用于usb闪存。
==============================================================
 
U盘在LINUX在下也被看做SCSI设备,所以如果你SCSI硬盘,那么U盘的地址就不是上面说的那个了如果有两块SCSI硬盘,两块硬盘的地址就分别是/dev/sda和/dev/sdb那么U盘的地址就事/dev/sd
 
-----------------
另外,我在网上看到用命令 # dmesg|more ,应该可以看到U盘的版本\容量,还有LINUX把U盘看做是SCSI设备,还能看到它的设备名, 但是我打那个命令只能找到: Initializing USB Mass Storage driver... usb.c: registered new driver usb-storage usb_control/bulk_msg: timeout scsi1 : SCSI emulation for USB Mass Storage devices udf: registering filesystem 等等,找不到设备名. 请教是怎么回事拉>? PS:我是在WINXP(host)+vmware LINUX9.0(guest) 主机上能找到U盘的
-----------------
我是这样做的,首先在/etc/fstab文件里加了一条/dev/sda1 /mnt/usb vfat default 0 0 ,保存之后在终端里输入 mkdir /mnt/usb mount /dev/sda1 这样我就可以在/mnt/usb目录下看到U盘资料了 .
----------------
=====================================================================
icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

其实我前面都看了几篇文章:
首先用
fdisk -l
没看见usb设备, 于是
modprobe usb-storage
modprobe scsi_mod
modprobe sd_mod
然后再:
mount -t vfat /dev/sda1 /mnt/usb
但还是报:
/dev/sda1 is not a valid block device

然后用
dmesg |more
输出如下:
...

usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb-uhci.c: $Revision: 1.275 $ time 17:59:01 Mar 13 2003
usb-uhci.c: High bandwidth mode enabled
PCI: Found IRQ 10 for device 00:07.2
PCI: Sharing IRQ 10 with 00:0b.0
usb-uhci.c: USB UHCI at I/O 0xe000, IRQ 10
usb-uhci.c: Detected 2 ports
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
hub.c: 2 ports detected
usb-uhci.c: v1.275:USB Universal Host Controller Interface driver
usb.c: registered new driver hiddev
usb.c: registered new driver hid
hid-core.c: v1.8.1 Andreas Gal, Vojtech Pavlik <vojtech@suse.cz>;
hid-core.c: USB HID support drivers
mice: PS/2 mouse device common for all mice
hub.c: new USB device 00:07.2-1, assigned address 2
Adding Swap: 538136k swap-space (priority -1)
usb.c: USB device 2 (vend/prod 0x5e3/0x702) is not claimed by any active driver.SCSI subsystem driver Revision: 1.00
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
usb-uhci.c: interrupt, status 2, frame# 729
scsi0 : SCSI emulation for USB Mass Storage devices
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 2
USB Mass Storage support registered.
usbdevfs: USBDEVFS_CONTROL failed dev 2 rqt 128 rq 6 len 18 ret -84
usbdevfs: USBDEVFS_CONTROL failed dev 2 rqt 128 rq 6 len 18 ret -84
usb-uhci.c: interrupt, status 2, frame# 841
usb.c: USB disconnect on device 00:07.2-1 address 2
hub.c: new USB device 00:07.2-1, assigned address 3
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 3
...
usb.c: USB disconnect on device 00:07.2-1 address 3
hub.c: new USB device 00:07.2-2, assigned address 4
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 4
...

fdisk -l /dev/sda1
没有结果返回
fdisk -l /dev/sda也没有结果返回


请问到底是怎么回事呢?

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

没人理睬
up 一下

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

你的U盘是不是usb 2.0的?

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

maybe /dev/sda2 or /dev/sdb1...etc

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

to icedust 也不是。正像fabiozhang所说的那样。我也想知道???

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

我的servern也一样的问题,2.6.0-2.6.0-test3

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

从sda1 到 sda5,  从 sdaa1 到 sdab 5 都试过了,还是不行。
有高手可以看看这几句吗? (dmesg |more)

scsi0 : SCSI emulation for USB Mass Storage devices
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 2
USB Mass Storage support registered.

系统应该是支持usd,而且检测到的吧。
但不认sda1, ... sda5 是block device

因为

fdisk -l /dev/sda1

没有结果返回

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

还是没高手理睬
明天拿公司的linux 7.0试试

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

up

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

给一个特别的安装方法,看对楼主是否有帮助:

测试系统:
#uname -a
Linux note 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux

移动硬盘
纽曼硬盘盒

1.安装与内核相匹配的 src 包。这里的说明,以我的2.4.20-8为准。如有不同,请做相应
调整。

2.进入源码的目录,我的是/usr/src/linux-2.4.20-8/

3.查看Makefie文件,原因是有可能版本不相同。
我用的是rh9的原来的内核,并安装其原来的srck包,但是最后加载模块的时候就说版本不
匹配。
晕~
查看该文件开头的“EXTRAVERSION =”的值,我把它改成-8。

4.修改“drivers/usb/storage/unusual_devs.h”
查找:
UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0x0001,
"EagleTec",
"External Hard Disk",
US_SC_SCSI, US_PR_BULK, NULL,
US_FL_FIX_INQUIRY ),
改成下面的形式:
UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0x9999,
"Genesys",
"USB DISK",
US_SC_SCSI, US_PR_BULK, NULL,
US_FL_FIX_INQUIRY | US_FL_MODE_XLATE | US_FL_START_STOP ),

5.运行一下命令
#cp /boot/config-2.4.20-8 .config
#make mrproper
#make oldconfig
#make dep
#make modules <=我的p41.8,256ddr运行了30多分钟

6.将编译好的“drivers/usb/storage/usb-storage.o”复制到
/lib/modules/2.4.20-8/kernel/drivers/usb/storage/下。

7.执行:
#modprobe -r usb-storage
#modprobe usb-storage

8.加载
mount -t vfat -o iocharset=gb2312,code=cp936 /dev/sda1 /mnt/temp/

注意,我看到一些文章说fdisk -l可以看到usb硬盘。可是我没有看到,但是加载成功。

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

如果系统能够识别,在设备管理里是可以看到的。

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

我今天装的RH 2.0,也是没有MOUNT上去,我用的是AMW的优盘,我想不应该是2.0的原因,以前也有一个优盘,也是2.0的,就可以使用!

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

-->
直接用mount -t ntfs -o iocharset=cp936 /dev/sda /mnt/usb
试试 不用/dev/sda1

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

都给加精华了 但问题还是没解决啊?
给个可行的方法啊

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

我的机器插上移动硬盘后, fdisk -l 怎么也看不到;
试了好久,后来mount /sda1 /mnt/usb竟然可以使用,这时fdisk -l就可以看到移动盘了

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

在linux下,usb硬盘会被认为是一个scsi硬盘
如果你是一块scsi硬盘装的linux
fdisk -l 可以看到usb硬盘应该 sdb
make /mnt/usb
mount /dev/sdb1 /mnt/usb
如果是一块ide硬盘装的linux
fdisk -l 可以看到 hda 和 sda
make /mnt/usb
mount /dev/sda1 /mnt/usb

如果fdisk -l 不能检测到usb移动硬盘
换个usb接口试下,不要插在前置usb
因为通常前置usb电压不够,带不起usb移动硬盘

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

在linux下,usb硬盘会被认为是一个scsi硬盘
如果你是一块scsi硬盘装的linux
fdisk -l 可以看到usb硬盘应该 sdb
make /mnt/usb
mount /dev/sdb1 /mnt/usb
如果是一块ide硬盘装的linux
fdisk -l 可以看到 hda 和 sda
make /mnt/usb
mount /dev/sda1 /mnt/usb

如果fdisk -l 不能检测到usb移动硬盘
换个usb接口试下,不要插在前置usb
因为通常前置usb电压不够,带不起usb移动硬盘

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

make /mnt/usb
mount /dev/sda1 /mnt/usb

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

mount: wrong fs type, bad option, bad superblock on /dev/sda2,
       or too many mounted file systems

icon_new.gifRedhat 9.0 加载USB移动硬盘的问题

注意,我看到一些文章说fdisk -l可以看到usb硬盘。可是我没有看到,但是加载成功。
fdisk -l /dev/sd?

原文链接:http://linux.chinaunix.net/bbs/viewthread.php?tid=136381

==================================================================================

Linux下加挂文件系统的小结

学习操作系统时我们都了解到文件系统是操作系统的重要组成部分之一。文件系统有很多种类型,比windows的fat、fat32;Linux的ext、ext2或ext3;FreeBSD的ufs等等。在使用Linux的过程,也常常Linux操作系统使用虚拟文件系统VFS,通过VFS可以直接存取其它已被内核支持的各种文件系统,用起来就像是在普通的 Linux的ext系列文件系统一样。早期的Linux内置支持的文件系统不多,自 kernel 2.0.x 起并支持到 VFAT ,以后逐 渐增加,到目前可以说 决大多数的文件系统都有了支持。只是有一些如NTFS需要重新编译内核才能支持。

 

  Linux在启动过程中,会按照/etc/fstab中的设置,把各个分区上的文件系统加挂到对应到加载点上去。Linux至少需要两个分区才能启动:一个是根分区/,另一个是交换分区,如果在启动时根分区加载失败,Linux就不能完成启动。如果交换分区加载失败,Linux就不能仍能启动,在内存不够的情况下速度就会受很大的影响。根分区的文件系统类型通常是ext、ext2或ext3,但也可以是其它的一些文件系统。

  除了加载了Linux所必需的文件系统外,Linux的用户还经常需要使用其它的各种文件系统,特别是在一台机器上同时安装多个操作系统的时候。比如笔者的机器上同时安装了Linux和Windows2000,其中Windows的C盘采用了NTFS文件系统、D盘采用了FAT32文件系统。而当我在Linux上工作的时候,常常需要访问Windows的C盘和D盘的内容,甚至是网络上的共享目录,Linux下加挂一个文件系统使用的是mount命令,用man mount命令可以得到命令参数的详细解释。下面就来介绍一下在几种情况下以命令行方式加挂文件系统的具体方法:

  1.加挂FAT32文件系统

  最简单的用法
  mount /dev/hda6 /mnt/d

  /dev/hda6是笔者Windows的D盘,/mnt/d是目录加挂点。Linux会识别到/dev/hda6分区的文件系统类型是什么,然后加挂的。当然也可以指定分区的文件系统类型,命令如下:

  mount -t vfat /dev/hda6 /mnt/d

  在实际中操作中,直接加挂一个windows的分区,中文的文件名和目录名会出现乱码,为了避免这种情况可以指定字符集,命令如下:

  mount  /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936
  mount -t vfat /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936

  注意:cp936是指简体中文,cp950是指繁体中文。

  2.加挂NTFS文件系统

  在目前多数的Linux版本上,需要重编译Linux核心才能,加挂NTFS分区(编译方法请参阅其它文章)。核心支持NTFS后,可以用以下命令加挂:

  mount -t ntfs /dev/hda2 /mnt/c

  同样对于中文的文件名和目录名会出现乱码的问题可以指定字符集,不过和加挂vfat分区不同,实际中用以下命令是可行的:

  mount -t ntfs -o iocharset=cp936 /dev/hda2 /mnt/c -r
  mount -t ntfs -o iocharset=cp936,rw /dev/hda2 /mnt/c

  3.加挂U盘上的文件系统

  现在使用U盘的人越来越多了,其实在Linux下使用U盘也非常简单,Linux对USB设备有很好的支持,在你插入U盘后,U盘被识别为一个SCSI盘,通常您用以下命令就能加挂U盘上的文件系统
mount /dev/sda1 /usb

  同样对于中文的文件名和目录名会出现乱码的问题可以指定字符集,命令类似于上面对FAT32介绍的:
mount /dev/sda1 /usb -o pagecode=936,iocharset=cp936

  4.加挂Linux系统通过samba共享出来的目录

  利用samba共享出来的目录其实很难说其原来是哪种文件系统,不过这一点不重要,只要它对用户是透明的就好啦。加挂时,我们指定类型为smbfs,在加挂samba共享的分区时,也会出现中文的文件名和目录名乱码情况,可以用以下命令加挂:

  mount -t smbfs -o
  username=terry,password=terry,codepage=936,iocharset=cp936
  //terry-linux/terry  /mp3/
  mount -t smbfs -o
  username=terry,password=terry,codepage=936,iocharset=cp936
  //192.168.100.228/terry  /mp3/

  注意:你可以不直接写password=terry这个参数,系统界时会要你输入密码,这样就可以防止有人直接看到你的密码。视具体情况而定,-o后面的参数可以对应增减。

  5.加挂Window系统共享出来的目录

  在局域网中,常常需要去访问其它Windows系统共享出来的目录,在Linux下,安装了samba后就可以使用samba中带的命令来访问Windows机器的共享资源。

  用smbclient来列出Windows机器的共享资源  
 
  smbclient  -L 192.168.100.111

  根据上面所列出Windows的共享资源后,可以选择需要加挂到本地Linux中去的Windows的共享资源,然后使用smbmount或mount来加挂,请参照下面几条命令:

  smbmount  //192.168.100.111/public /public/
  mount //192.168.100.111/d /mnt/cdrom -o username=terry (这样要在命令行输入密码的)
  mount //192.168.100.111/d /mnt/cdrom -o username=terry$1234 (这样则不必在命令行输入密码)
 
  注:除了上面介绍的命令行方法之外,这时最好的方法就是使用其它的客户端,如LinNeighborhood、networkneighbours、ksmbshare等,请参考其它文章。

  以上介绍的都是命令行的方式,每次使用时都要输入一次,如果你常常要加挂一些文件系统,想在启动时自动加挂应该怎样做呢?下面介绍两种方法:

  方法1.
  把加挂的命令放在/etc/rc.d/rc.local中。

  方法2.
  修改分区配置文件/etc/fstab,在启动时加挂文件系统,下面是我的/etc/fstab文件:
  LABEL=/    /      ext3    defaults      
  1 1
  none      /dev/pts   devpts   gid=5,mode=620
  0 0
  LABEL=/home  /home    ext3    defaults      
  1 2
  none      /proc    proc    defaults      
  0 0
  none      /dev/shm   tmpfs    defaults      
  0 0
  /dev/hda4   swap     swap    defaults      
  0 0
  /dev/cdrom   /mnt/cdrom        iso9660
  noauto,owner,kudzu,ro 0 0
  /dev/hda2   /ntfs     ntfs    defaults,iocharset=cp936  0 0
  /dev/hda6   /win     vfat    defaults,codepage=936,iocharset=  cp936  0 0
  //192.168.100.228/terry /mp3    smbfs  username=terry,password=terry,codepage=cp936,iocharset=cp936 0 0

  请注意最后三行:

  倒数第四行,加挂我的C盘,NTFS格式的
  倒数第三行,加挂我的D盘,FAT32格式的
  倒数第二行,加挂的是我的局域网中另一台安装samba的Linux文件服务器上的一个目录。

  本文总结了一下在Linux上不同情况下几种常见加挂文件系统的方法,包括如何加挂FAT/NTFS/smbfs/U盘,以及解决加挂中关于中文显示/用户密码等的问题。

===============================================================

==============================================================

===============================================================

==============================================================

===============================================================

==============================================================

umount u盘时经常提示: device is busy???

pwd看看你是不是在光驱那个目录里?
关闭有关U 盘的页面

我也是这个问题 就是所有东西都关了 umount还是没用的 总是device is busy

我一般lsof这样解决
例如 挂载到:/mnt/usb
$/usr/sbin/lsof |grep /mnt/usb
找到进程
还有更好的方法吗?

 

我的办法是umount -l /mnt/usb
可能有用

 

Commonly there are 2 reasons why you get the "busy" message that won't let you unmount.

1) You are still somewhere in the mounted file tree (some terminal or program)
2) There is still data in the write cache that has not been written

Solution to one was posted above
For 2) do
Code:
 sync
It should write the remaining data in the write buffer.
This can take a while, wait until the prompt appears again.

Then try to unmount it.

 

 

文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /2 下一条