-
python实例31[自动挂载虚拟盘]
2013-03-24 19:29:51在windows上使用subst和netuse Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->import osimport subprocess def RunCommand(cmd): return ...在windows上使用subst和netuse
import os
import subprocess
def RunCommand(cmd):
return subprocess.call(cmd)
def RunCommandWithOutput(cmd):
p=subprocess.Popen(cmd, shell=True, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
(stdoutdata, stderrdata) = p.communicate()
return p.returncode, stdoutdata, stderrdata
def SubstDriveToPath(drive, path):
substcmd = "subst" + " " + drive + " " + path
return RunCommandWithOutput(substcmd)
def UnSubstDriveToPath(drive):
unsubstcmd = "subst" + " " +drive + " " + "/d"
RunCommand(unsubstcmd)
def SubstDriveToPathF(drive, path):
UnSubstDriveToPath(drive)
UnNetuseDriveToPath(drive)
return SubstDriveToPath(drive, path)
def NetuseDriveToPath(drive, path):
netusecmd = "net use" + " " + drive + " " + path
return RunCommandWithOutput(netusecmd)
def UnNetuseDriveToPath(drive):
unnetusecmd = "net use" + " " + drive + " " + "/del"
RunCommand(unnetusecmd)
def NetuseDriveToPathF(drive, path):
UnSubstDriveToPath(drive)
UnNetuseDriveToPath(drive)
return NetuseDriveToPath(drive, path)
def AutoSubstorNetuse(path):
successful = False
if(not os.path.isdir(path) or not os.path.exists(path)):
print("path is not existed or is not a directory")
return successful
netuse = False
if(path.startswith("\\\\")):
netuse = True
useddrive = ""
for drive in "ZYXWVUTSRQPONMLKJIHGFEDCBA":
fulldrive = drive + ":"
if(netuse):
(returncode, outdata, errdata) = NetuseDriveToPath(fulldrive, path)
if(returncode == 0):
useddrive = fulldrive
break
else:
(returncode,outdata,errdata) = SubstDriveToPath(fulldrive,path)
if(returncode == 0):
useddrive = fulldrive
break
if(not useddrive == ""):
successful = True
return successful, useddrive
(returncode, outdata, errdata) = SubstDriveToPathF("Y:", "C:\\test")
(returncode1, outdata1, errdata1) = NetuseDriveToPathF("X:", "\\\\remotemachinenameorip\\shared")
(returncode, drive) = AutoSubstorNetuse("C:\\test")
(returncode, drive) = AutoSubstorNetuse("\\\\remotemachinenameorip\\shared")强制挂载到某个虚拟盘:
SubstDriveToPathF()
NetuseDriveToPathF()
自动查找没有使用的盘来挂载:
AutoSubstorNetuse()
完!
-
Linux下挂载Windows硬盘
2007-06-29 22:02:00文件系统有很多种类型,比windows的fat、fat32;Linux的ext、 ext2或ext3;FreeBSD的ufs等等。在使用Linux的过程,也常常Linux操作系统使用虚拟文件系统VFS,通过VFS可以直接存取其 它已被内核支持的各种文件系统,...学习操作系统时我们都了解到文件系统是操作系统的重要组成部分之一。文件系统有很多种类型,比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盘,以及解决加挂中关于中文显示/用户密码等的问题。 -
Oracle VM VirtualBox共享文件夹/Windows映射网络盘到Ubuntu以及linux系统无法挂载U盘
2019-10-24 23:46:561.Oracle VM VirtualBox共享文件夹 两句话: sudo mkdir /home/hhn/...首先在win下某个盘建立ubuntushare文件夹,然后在虚拟器上建立文件夹winshared 即可! 每次开机后都需要挂载一下,不是说好的自动挂载...1.Oracle VM VirtualBox共享文件夹
两句话:
sudo mkdir /home/hhn/winshared
sudo mount -t vboxsf ubuntushare /home/hhn/winshared
首先在win下某个盘建立ubuntushare文件夹,然后在虚拟器上建立文件夹winshared
即可!
每次开机后都需要挂载一下,不是说好的自动挂载的么,奇怪
1、Ubuntu的Samba服务,实现Windows映射网络盘到Ubuntu
可以通过Samba服务器将VM 下安装的Ubuntu 的文件映射到windows系统下,从而实现在windows下对虚拟机中的文件进行编辑。
具体步骤如下:
1、sudo apt-get install samba
安装samba服务器
2、vim /etc/samba/smb.conf 添加:
[Marble]
comment = marble
path = /home/marble/Desktop
writeable = yesvalid user = marble
注意一下哈,marble 是我的用户名,请更换。
上面的[Marble] 对应映射中\\serverIP\Marble中的“Marble”
path对应window网络盘中的根目录
3、sudo sampasswd -a marble
进行创建账号
4、service sambd restart
重启服务器,这一步不能省掉
5、ifconfig 查到ip地址:
借得图,不过这里需要说明得是第二个显示条得 inet add才是ip地址。
6、使用查到的IP地址在windows中添加映射
右键我的电脑-> 映射网络驱动器 -> \\192.168.96.132 \marble(输入\\IP地址\yang,按提示输入用户名密码即可)
//将marble换为自己的用户名。
2、linux系统无法挂载U盘
以海思板子需要挂载U盘为例子。
插上U盘后会出现以下:
[ 2407.650440] usb 1-3.3: new high speed USB device number 7 using s5p-ehci
[ 2407.887332] usb 1-3.3: New USB device found, idVendor=0951, idProduct=1666, bcdDevice=0100
[ 2407.894249] usb 1-3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2407.901651] usb 1-3.3: New USB device Class: Class=0, SubClass=0, Protocol=0
[ 2407.908558] usb 1-3.3: Product: DataTraveler 3.0
[ 2407.913150] usb 1-3.3: Manufacturer: Kingston
[ 2407.917488] usb 1-3.3: SerialNumber: 50E5495131F7B0A0495A3E9A
[ 2407.945454] scsi3 : usb-storage 1-3.3:1.0
[ 2408.981773] scsi 3:0:0:0: Direct-Access Kingston DataTraveler 3.0 PMAP PQ: 0 ANSI: 6
[ 2409.002820] sd 3:0:0:0: Attached scsi generic sg0 type 0
[ 2410.472934] sd 3:0:0:0: [sda] 60632064 512-byte logical blocks: (31.0 GB/28.9 GiB)
[ 2410.482241] sd 3:0:0:0: [sda] Write Protect is off
[ 2410.486619] sd 3:0:0:0: [sda] No Caching mode page present
[ 2410.491237] sd 3:0:0:0: [sda] Assuming drive cache: write through
[ 2410.503131] sd 3:0:0:0: [sda] No Caching mode page present
[ 2410.507269] sd 3:0:0:0: [sda] Assuming drive cache: write through
[ 2410.527868] sda: sda1
[ 2410.549386] sd 3:0:0:0: [sda] No Caching mode page present
[ 2410.553692] sd 3:0:0:0: [sda] Assuming drive cache: write through
[ 2410.585133] sd 3:0:0:0: [sda] Attached SCSI removable disk然后你输入命令行,发现,挂载U盘失败
~ # mount /dev/sda1 /mnt/udisk/
mount: mounting /dev/sda1 on /mnt/udisk/ failed: No such device or address
~ # mount /dev/sda /mnt/udisk/
mount: mounting /dev/sda on /mnt/udisk/ failed: Invalid argument接下来就是步骤:亲测有用
1.查看/dev
~ # ls /dev/
/dev中没有sdb1这个设备节点2.手动创建节点
~ # mknod /dev/sda1 b 8 1
3.挂载U盘
~ # mount /dev/sda1 /mnt/udisk/
~ # ls /mnt/udisk/
linux挂载U盘成功
-
ESXI虚拟机如何挂载移动硬盘或U盘
2017-11-22 19:20:00背景:最近要迁移数据,由于公司的服务器大部分都采用esxi虚拟化的架构,所以只能想办法直接把移动硬盘挂载到虚拟机 来拷贝数据。下面讲解方法: 环境:Esxi 5.5 u2 + windows2008R2虚拟机 方法: 登录Vcenter... -
虚拟机linux下挂载本地硬盘
2010-11-15 17:19:00看到网上很多人都说虚拟机装的linux下挂载不了windows的硬盘,以下是个人的经验,本人尝试了,用这个方法,在linux下完全可以挂载: 在linux下用fdisk -l查找windows XP下的其它分区,结果没有看到,这是非常很正呀... -
挂载电脑上的硬盘共享文件夹到VM虚拟机中
2016-04-28 16:36:00挂载电脑上的硬盘共享文件夹到VM虚拟机中 因为程序要在linux和windows下分别运行,最终在linux下编译,每次都用U盘来回拷贝很是麻烦,我的Ubuntu是可以直接在虚拟机设置中的选项里进行共享文件夹的设置的,但是... -
Mount指令用来挂载iso光盘镜像
2012-12-15 20:02:16先得建立一个目录用来做挂载点,没有这个是不行的 # mkdir /iso ...接着就挂载镜像了 ...# mount -t iso9660 -o loop/home/phx/...真方便,不用像windows那样先得装虚拟光驱才能看挂载iso镜像文件,直接 -
ubuntu 双硬盘挂载 windows分区自动挂载
2019-09-25 11:57:20sudo fdisk -l 查看硬盘情况 1:新建一个目录,例:old 2:mount /dev/sdb1 old 3:cd old 4:ls (就可以看到新硬盘的内容了) ...挂载虚拟卷的方法 1:sudo vgchange -ay /dev/ubuntu 2:sudo... -
Centos的SAMBA服务配置、smb权限、windows访问失败、共享挂载失败、共享目录挂载、虚拟用户映射
2018-05-21 19:45:50挂载光盘2.修改yum源,安装相应的包3.配置相关文件 /etc/samba/smb.conf复制文件末尾内容:; [public] (共享名,也就是共享文件夹的名字。默认情况用户的家目录也会共享); comment = Public Stuff (对该共享... -
Linux 光盘挂载步骤
2018-06-17 15:08:00mount -t fs_type device dir 挂载操作 常见的文件系统类型 Windows :ntfs、fat32 ...2、挂载 确保光盘已连接,VM虚拟机为例 右下角光盘小图标右击或双击进行连接,设置设备状态 3、检查 4、... -
在Linux中挂载U盘
2009-10-14 09:45:00在Linux上使用U盘与Windows下有所区别,需要先挂载,当成文件访问,后才能使用(不过在Ubuntu下好像不用挂载就可以直接使用)。 如果想在虚拟机上使用U盘,有一点需要注意的是,必须把虚拟打开并且不能窗口最小化。... -
linux挂载本地windows分区或目录
2019-02-23 22:05:00一、linux挂载本地windows硬盘分区 向虚拟机Centos添加本地windows硬盘 注:(添加物理硬盘后,在centos操作会直接写入本地硬盘) 操作步骤: 虚拟机 > 设置 > 添加 > 硬盘 > 下一步 > 虚拟磁盘... -
虚拟机linux下优盘的挂载
2017-11-28 01:25:26在windows操作系统中, 挂载通常是指给磁盘分区(包括被虚拟出来的磁盘分区)分配一个盘符。 在linux操作系统中, 挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。 我们要访问存储设备中的文件,... -
Linux 如何 mount 挂载 iso 虚拟光驱
2011-12-14 09:29:00mount -o loop ISO的位置 /mnt/cdrom/ 命令格式: mount [-t vfstype] [-o options] device dir 其中: 1.-t vfstype ...常用类型有: 光盘或光盘镜像:iso9660 DOS fat16文件系统:msdos Windows 9x fat32文... -
在Linux下制作虚拟光盘的方法
2008-02-13 00:35:001. 制作镜像文件 cp /dev/cdrom windows.iso 2. 虚拟光盘挂载 mount -o loop windows.iso /media/cdrom 3. 目录虚拟管盘 mkisofs -r -o windows.iso /boot -
在VMware环境下U盘的挂载与共享
2017-11-12 15:28:00众所周知,U盘可以在实体机XP操作系统中中使用,而win98/2000等老版本操作系统则需要安装U盘驱动程序方可使用...操作环境:实体机WindowsXP、虚拟机VMware8.0、 虚拟操作系统Windows系列。实现方案:U盘在VMware架... -
DIY强大的虚拟化环境-esxi挂载iscsi存储
2013-12-01 02:04:27这一章节的内容有:1.U盘安装esxi5.1到U盘【安装到usb读卡器tf卡上】2.esxi5.1挂载windows2012iscsi存储【没有共享存储是搭不出学习企业级虚拟化环境滴】===插好U盘开机》按F11[不同主板各不相同]调出选择启动项》从... -
挂载银行前置机Ukey到windows server2012虚拟机的操作记录
2017-10-12 08:46:00通过KVM的WebVirtMgr管理平台创建windowsserver2008虚拟机,安装参考:kvm虚拟化管理平台WebVirtMgr部署-完整记录(安装Windows虚拟机)-(4),挂载Ukey或U盘到虚拟机的操作记录如下: 1 2 3 4 5 6 7 8 9 10 11 ... -
在WINDOWS7下无U盘安装WINDOWS10
2018-07-03 22:15:00第一步:下载cn_windows_10_business_editions_version_1803_updated_march_2018_x64_dvd_12063730.iso ...第三步:创建一个空的分区,可以是从其他盘里分出来,也可以创建VHD虚拟镜像 第四步:在CMD下用ima... -
mount挂载
2019-10-04 13:11:33Windows:光盘文件------>光驱设备------>CD驱动器(图标)访问点Linux: 光盘文件------>光驱设备------>目录(访问点) 1.通过图形将光盘镜像文件,放入虚拟光驱设备。2.查看光驱设备3.进行挂载:让...
-
xadmin一个django插件
-
pageHelper分页
-
GNU:GCC -O 优化等级
-
最大公约数和最小公倍数
-
大实数加法
-
Spring IOC初始化流程
-
通过相互作用的空间双脉冲效应增强激光烧蚀
-
spring容器中维护的bean是什么,是实例对像么
-
Galera 高可用 MySQL 集群(PXC v5.7+Hapro)
-
状态模式
-
Theoretical Machine Learning solution 2
-
beckett:Beckett是一个基于约定的框架,用于围绕HTTP API构建Python客户端-源码
-
LayUI 树形表格禁用复选框级联
-
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
-
试题 算法训练 字串统计
-
工程制图 AutoCAD 2012 从二维到三维
-
MySQL 函数、用户自定义函数
-
激光与物质相互作用及其精密工程应用
-
HashMap.putVal方法解析
-
基于透射相位梯度超表面的宽带频率扫描欺骗表面等离子极化平面天线