让U盘扩容小技巧
在使用U盘的时候,我们会经常遇到这种情况:在电脑的USB接口插入U盘使用完毕后,按照常规的操作点击任务栏右下角“拔下或弹出硬件”,接着点击“停止USB Mass Storage Device-驱动器”后,没有出现“USB Mass Storage Device设备现在可安全地从系统卸载”对话框,而是出现了另一个对话框“现在无法停止通用卷设备,请稍候再停止设备”。经过检查,U盘里的程序文件都已关闭,电脑和U盘之间也没有任何数据传输。那为何会出现这个种情况呢?
经过反复研究,猜测U盘插入时在Windows任务管理器中应该会增加一个与之相对应的进程,硬件正常拔出时这个对应的进程自动结束,当这个进程不能正常结束时硬件也就无法正常拔出了。为了验证这个猜想,我们先打开任务管理器,进入“进程”一栏,注意到左下角显示的是:“进程数:23”,再插入U盘,然后把目光集中到“进程数”上,可是,当系统找到硬件,一切显示正常之后,进程数并没有像笔者想像的那样变为24,而是保持23不变。这样看来,U盘插入时并没有与之相对应的进程数,那么这个现象就不好解释了。 正当我们无奈地点击托盘图标,想卸载U盘时,突然发现当点击"停止USB驱动器"后进程数变成了24,也就是说卸载硬件要由一个进程“负责”,当硬件卸载后,这个进程也同时结束。经过多次试验,发现这个进程的名称是rundll32.exe,哈哈,原来是这个熟悉的链接程序。 那么,到底有没有某一个进程和无法卸载硬件有关呢?笔者恰好又碰到了一次"无法停止设备"的机会,就打开任务管理器的进程栏,依次试验,每结束一个看起来相关的进程,就试验看能否拔出硬件。结束了几个无用的进程后,发现有3个相同的rundll32.exe进程同时存在,把这几个进程都结束时,我们发现,硬件可以正常删除了。真是功夫不负有心人,看来症结还在rundll32.exe上。通过这次研究,我们总结出:U盘无法正常卸载时,进程栏中必定还有没有结束的rundll32.exe(当然,有的rundll32.exe可能和系统中正在运行的程序有关),把这几个rundll32.exe进程结束,U盘就肯定能正常卸载了。 温馨提示: 如果经常出现这种无法停止设备的现象,可以建立一个批处理文件,里面输入“taskkill /im rundll32.exe”,保存为delusb.bat,出现故障时运行一下就可以了。这种方法更加方便了。在不同的BIOS进行U盘(USB-HDD方式)启动时,对同一U盘的容量参数---柱面、磁头和扇区数(简称CHS),识别各不相同(证明这一点可以在不同的机器上安装同一版本的linux,然后插入U盘,使用hdparm /dev/sda命令就可以发现CHS在不同机器各不相同,甚至如果U盘可以使用GRUB启动的话,在GRUB里使用geometry (hd0)命令也能看出来),这样在一台机器上分区格式化所产生的的分区表和FAT磁盘参数表是按照这台机器所识别的硬盘的CHS来表达的,换到另一台机器时由于另一台机器识别的CHS不一样,这样就会产生混乱。
所幸的是,分区表和FAT磁盘参数表同时还有一种按照相对扇区数来表达的方式,这种表达方式也同时记录在分区表和磁盘参数表中。这样就看软件使用哪一种数据来工作了,如果使用CHS,那么换一台机器就一定不会正常工作,如果使用LBA方式访问磁盘就不会受影响---当然前提是BIOS支持对U盘使用LBA方式访问即扩展INT13H。而XP对FAT16文件系统分区格式化生成的MBR代码以及DOS各版本均需依靠CHS工作,所以按照通常方法在一台机器制作的启动U盘在另一台机器启动就有可能不成功。经测试移动硬盘在各BIOS中的CHS倒是一致的,与该硬盘直接接在IDE口上的CHS相同,所以移动硬盘的USB启动基本上并无困难。
目前发现的确实受这一问题的影响,从而影响启动的程序有:
1、Windows XP及SP1中文版磁盘管理器分区时所写的MBR
2、USBoot产生的MBR和boot(与1相同)
3、使用bootlace.com将grub for dos 0.41中的grldr.mbr安装至MBR
可能不受这一问题影响的程序有(未经充分测试):
1、ntldr以及随后启动的PE或XP环境(当然了,否则U盘就没法使用了)
2、linux下的install-mbr程序所写的MBR
3、GNU GRUB 0.95和0.97及其使用grub-install命令安装的引导代码
4、syslinux3.36和3.51
5、linux2.4内核以上,基本上linux系统所有程序对FAT文件系统都不会使用CHS
8、grub chs 0.95 0.97(内含的stage1、stage1.5和stage2引导代码)
常见问题:
最新文章:
-
绝对要五星好评!真真真要感谢楼主自在,让我找回了中毒u盘损坏的宝宝周岁艺术照~楼主自在很有耐心,感谢今天一天的帮助~还好没放弃…当真的是一孕傻三年哈哈,两年前u盘中毒了,恢复过也没看看,昨天整理照片时才发现照片丢失损坏了好多~今天全都找回了~开心感谢!
-
U盘格式化时的”分配单元“,指的是簇的大小。簇是文件系统存放文件时最小的单位。一个文件至少会占用一个簇。比如,如果选定簇的大小为4096字节,那么就算要存储的文件只有200字节大,它也会在硬盘上占用一个簇,也就是4097字节的存储空间。
由此可以看出,簇的大小,如果设置得过大,会造成大量的磁盘空间未被利用,浪费了磁盘空间;如果设置得过小,则会导致硬盘上簇的数量过大,硬盘会浪费大量的时间来寻道,性能降低。所以其取值应该兼顾空间和性能的需要,一般用默认值就行了。
-
U盘格式化时的”分配单元“,指的是簇的大小。簇是文件系统存放文件时最小的单位。一个文件至少会占用一个簇。比如,如果选定簇的大小为4096字节,那么就算要存储的文件只有200字节大,它也会在硬盘上占用一个簇,也就是4097字节的存储空间。
由此可以看出,簇的大小,如果设置得过大,会造成大量的磁盘空间未被利用,浪费了磁盘空间;如果设置得过小,则会导致硬盘上簇的数量过大,硬盘会浪费大量的时间来寻道,性能降低。所以其取值应该兼顾空间和性能的需要,一般用默认值就行了。