例如:无法卸载的设备为/dev/vdd1,运行以下命令:
PS: 如果bash在使用此磁盘,会发现bash退出了,新开bash 并再次查看fuser -mv /dev/vdd1
确认是否还有占用进程。
找到PID对应的进程或者服务,然后杀死或者停止相应服务即可。
此案例中即使使用上述所有 *** 作删除占用的进程,但还是提示磁盘busy,使用kill去杀进程,发现进程号一直在变化,惊觉可能是某个服务进程一直在运行,使用fuser -m -v /dev/vdd1 去查看详细的进程信息,发现是docker服务一直在占用。
解决方案:停止docker服务
装载:1、启动vm,选择vm->Settings,按向导添加一块SCSI磁盘。进入Linux系统。
2、 fdisk -l 会看到有一块新的设置,如果你先前有一块硬盘(sda1, sda3...),新加的这块应该是(/dev/sdb)。
[root@localhost ~]# fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda3 14 1044 8281507+ 83 Linux
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk /dev/sdb doesn't contain a valid partition table
3、分区:
[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1044, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044):
Using default value 1044
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]# fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda3 14 1044 8281507+ 83 Linux
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 1044 8385898+ 83 Linux
4、格式化:
[root@localhost ~]# mkfs -t ext3 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1048576 inodes, 2096474 blocks
104823 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
5、装载:
[root@localhost ~]# mount /dev/sdb1 /u01/app/oracle
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G 5.8G 576M 92% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 233M 0 233M 0% /dev/shm
/dev/sdb1 7.9G 147M 7.4G 2% /u01/app/oracle
6、编辑fstab文件(不然重启电脑后系统将不会保存之前的挂载 *** 作):
[root@localhost ~]# vi /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
/dev/sdc1 /u03 ext3 defaults 1 1
/dev/sdb1 /u01/app/oracle ext3 defaults 1 1
# Beginning of the block added by the VMware software
.host:/ /mnt/hgfs vmhgfs defaults,ttl=5 0 0
# End of the block added by the VMware software
卸载:
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G 5.8G 576M 92% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 233M 0 233M 0% /dev/shm
linux使用umount命令来卸载挂载的文件。例如:\x0d\x0aumount /mnt/net1\x0d\x0a\x0d\x0aumount命令说明\x0d\x0aumount命令用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。\x0d\x0a语法\x0d\x0aumount(选项)(参数)\x0d\x0a选项\x0d\x0a-a:卸除/etc/mtab中记录的所有文件系统;\x0d\x0a-h:显示帮助;\x0d\x0a-n:卸除时不要将信息存入/etc/mtab文件中;\x0d\x0a-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统;\x0d\x0a-t:仅卸除选项中所指定的文件系统;\x0d\x0a-v:执行时显示详细的信息;\x0d\x0a-V:显示版本信息。\x0d\x0a参数\x0d\x0a文件系统:指定要卸载的文件系统或者其对应的设备文件名。\x0d\x0a实例\x0d\x0a下面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息:\x0d\x0a通过设备名卸载\x0d\x0aumount -v /dev/sda1\x0d\x0a/dev/sda1 umounted\x0d\x0a通过挂载点卸载\x0d\x0aumount -v /mnt/mymount/\x0d\x0a/tmp/diskboot.img umounted\x0d\x0a如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前目录为挂载点里的某个目录:\x0d\x0aumount -v /mnt/mymount/\x0d\x0aumount: /mnt/mymount: device is busy\x0d\x0aumount: /mnt/mymount: device is busy\x0d\x0a有时,导致设备忙的原因并不好找。碰到这种情况时,可以用lsof列出已打开文件,然后搜索列表查找待卸载的挂载点:\x0d\x0alsof | grep mymount 查找mymount分区里打开的文件\x0d\x0abash 9341 francois cwd DIR 8,1 10242 /mnt/mymount\x0d\x0a从上面的输出可知,mymount分区无法卸载的原因在于,francois运行的PID为9341的bash进程。\x0d\x0a对付系统文件正忙的另一种方法是执行延迟卸载:\x0d\x0aumount -vl /mnt/mymount/ 执行延迟卸载\x0d\x0a延迟卸载(lazy unmount)会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源。卸载可移动存储介质还可以用eject命令。下面这条命令会卸载cd并d出CD:\x0d\x0aeject /dev/cdrom 卸载并d出CD欢迎分享,转载请注明来源:内存溢出
评论列表(0条)