linux文件系统和mount(硬盘,win分区,光驱,U盘)

fdisk –l查看dos/win/ext2分区(partiton,不是slice,slice是solaris分区)

[root@localhost etc]# /sbin/fdisk -l
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot     
Start        
End     
Blocks   Id 
System
/dev/hda1              
1        
991    
7960176   
b  W95 FAT32
/dev/hda2            
992       
1629    
5124735   83 
Linux
/dev/hda3           
1630       
8070   
51737332+   f 
W95 Ext'd (LBA)
/dev/hda4   *       
8071       
9730   
13327776   bf 
Solaris
   这个是主分区,MBR(启动记录扇区)的所在

/dev/hda5           
1630       
1695     
530113+  82  Linux swap /
Solaris
/dev/hda6           
1696       
8070   
51207156   
b  W95 FAT32

linux
下把DOS扩展分区和逻辑分区都按hda1,2,3,4,5,6排列。扩展分区必须在1-4内,逻辑分区必须>4

   fdisk 用法
[root@vm /]# fdisk

Usage: fdisk [-l] [-b SSZ] [-u] device
E.g.: fdisk /dev/hda  (for the first IDE
disk)
  or: fdisk /dev/sdc  (for the
third SCSI disk)
  or: fdisk /dev/eda  (for the
first PS/2 ESDI drive)
  or: fdisk /dev/rd/c0d0  or:
fdisk /dev/ida/c0d0  (for RAID devices)
 ...

mount无参数------显示当前mount上的设备

df -h  常用于代替mount和/sbin/fdisk
–l,来看当前mount情况,因为它不显示“虚mount设备”

# df -h
Filesystem           
Size  Used Avail Use% Mounted on
/dev/hda2            
4.8G  2.9G 
1.7G  65% /
/dev/shm              
93M    
0  
93M   0% /dev/shm
而mount显示的虚mount太多
[root@localhost etc]# mount
/dev/hda2 on / type ext2 (rw)

/dev/proc on /proc type proc
(rw)  
automount(pid1622) on /misc type autofs
(rw,fd=4,pgrp=1622,minproto=2,maxproto=4)
automount(pid1672) on /net type autofs
(rw,fd=4,pgrp=1672,minproto=2,maxproto=4)
 这几个都是虚mount

/dev/hda1 on /mnt/c type vfat (rw) 

linux 下设备名

IDE设备 /dev/hda1
   尾字母hda,hdb表示不同的硬盘
   尾数字hda1,hda2,hda3表示不同的分区
SCSI Device /dev/sd2
光驱 /dev/cdrom
磁带 /dev/rmt/0                              
(常用于tar)
软驱 /dev/fd    或
/dev/fd0

注意,安装linux后,不要随便换硬盘的总线,或硬盘的master/slave,因为hda,hdb,都是自动生成的,换总线后或
master/slave后,会造成/dev 设备文件和fstab内容不匹配

为什么/var都建议单独一个分区?
   
/var分区是存放logfile以及系统变动文件的文件系统(/var/tmp和/var/lib/mysql之类的都很大)
    所以不要把/var文件系统包括再root分区里,以免有恶意程序恶意扩大日志文件来dos根分区。

为什么建议/home也单独一个分区?
一来也是为了保护/分区
二来单独分区可以单独处理,比如在其他系统下mount,tar等

/etc/fstab-------开机自动mount
windows分区

vi /etc/fstab

/dev/hda4   
/mnt/wind   
vfat   
defaults,iocharset=utf8,umask=000
0 0

文件系统    mount
point  
分区格式           
mount参数
                  
     
     
 
    umask=000指定加载后的目录的权限问题,
                   
     
   
  
    都是0,向所有用户开放读写权限

mount [option] 
filesystem [mount-point]

-t vfat or
ext2    -t
:Type
 
ext2   
linux分区
 
vfat   
dos/win分区
  不设-t,缺省mount认为是vfat
-o
utf8   
utf8是编码格式,否则中文会有问题

cat
/proc/filesystems      
--------获得系统支持的文件系统类型

[root@localhost dev]# cat /proc/filesystems
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   sockfs
nodev   binfmt_misc
nodev   debugfs
nodev  
usbfs
nodev   pipefs
nodev   futexfs
nodev   tmpfs
nodev   eventpollfs
nodev   devpts
       
ext2               
Linux用的文件系统
nodev   ramfs
nodev   hugetlbfs
       
iso9660           
光盘片用的文件系统
nodev   mqueue
nodev   selinuxfs
nodev   rpc_pipefs
nodev  
autofs           
autofs 光盘、软盘的自动加载

vfat              
Win95/98/2000文件系统
 

Solaris 的/proc下没有filesystems,全是进程文件

最简单的mount "dos/win分区"步骤

1. Fdisk -l
[root@localhost macg]# /sbin/fdisk -l
Disk /dev/hda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device
Boot     
Start        
End     
Blocks   Id 
System
/dev/hda1              
1        
991    
7960176   
b  W95 FAT32
/dev/hda2            
992       
1629    
5124735   83 
Linux
/dev/hda3           
1630       
8070   
51737332+   f 
W95 Ext'd (LBA)
/dev/hda4  
*       
8071       
9730   
13327776   bf 
Solaris
Partition 4 does not end on cylinder boundary.
/dev/hda5           
1630       
1695     
530113+  82  Linux swap /
Solaris
/dev/hda6           
1696       
8070   
51207156   
b  W95 FAT32

2. mount
[root@localhost macg]# mount -t vfat /dev/hda6 /mnt/d
D盘为什么是6,因为是扩展分区上的逻辑分区
,逻辑分区都大于4
[root@localhost macg]# ls /mnt/d
avi                  
game                
military         
temp
CloneCD.v5.2.1.1.rar 
ghostmp3cdmaker.rar 
Nero_6.6.1.4.zip 
The.Hot.the.Cool.&amp_.the.Vicious.1976.dvdrip.cd2.avi

Diablo
II            
image.ccd           
nero.rar         
treat1
Drivers              
image.img           
Recycled         
UltraISO_8.2.0.1665.zip
dvdoutput            
image.sub           
short            
yao

umount卸载的参数要针对文件系统(filesystem),而不是mount
point
umount  
/dev/hda6

mount 软盘

#mount -t ext2 /dev/fd0
/mnt/fd

注意在取出软盘之前要unmount
/mnt   
否则会导致信息丢失

注意mount光驱,不能用-t vfat/ext2,要用-t
iso9660

# mount -t ext2 /dev/cdrom /mnt/c
mount: block device /dev/cdrom is write-protected, mounting
read-only
mount: wrong fs type, bad option, bad superblock on
/dev/cdrom,
      
missing codepage or other error
      
In some cases useful info is found in syslog - try
      
dmesg | tail  or so
# mount -t vfat /dev/cdrom /mnt/c
mount: block device /dev/cdrom is write-protected, mounting
read-only
mount: wrong fs type, bad option, bad superblock on
/dev/cdrom,
      
missing codepage or other error
      
In some cases useful info is found in syslog - try
      
dmesg | tail  or so
# mount -t iso9660 /dev/cdrom /mnt/c
mount: block device /dev/cdrom is write-protected, mounting
read-only
# ls /mnt/c
stuck  

redhat下,真正的光驱设备文件是设备文件,其他的都是链接

# ls -l
crw-------  1 root root  10, 134
Feb  7  2007 apm_bios
crw-------  1 root root 
14,   4 Feb 
7  2007 audio
lrwxrwxrwx  1
root
root       
3 Feb  7  2007 cdrom
-> hdb
lrwxrwxrwx  1
root
root       
3 Feb  7  2007 cdwriter
-> hdb
crw-rw----  1 root
root  
5,   1 Feb 
7  2007 console
lrwxrwxrwx  1
root
root       
3 Feb  7  2007 dvd
-> hdb
lrwxrwxrwx  1
root
root       
3 Feb  7  2007 dvdwriter
-> hdb
brw-r-----  1 root
disk  
3,   9 Feb 
7  2007 hda9
brw-rw----  1
root disk   3, 
64 Feb  7  2007
hdb
看dmesg
[root@localhost dev]# dmesg
hdb: ATAPI 48X DVD-ROM DVD-R
CD-R/RW drive, 2048kB Cache

写保护错误write-protected,但仍旧mount上(read-only)

[root@localhost xinetd.d]# mount -t iso9660 /dev/cdrom
/mnt/c
mount: block device /dev/cdrom is write-protected, mounting
read-only
[root@localhost xinetd.d]# mount -t iso9660 /dev/dvdwriter
/mnt/c
mount: block device /dev/dvdwriter is write-protected, mounting
read-only

mount: /dev/dvdwriter already
mounted or /mnt/c busy
mount: according to mtab, /dev/hdb is already mounted on
/mnt/c
[root@localhost xinetd.d]# ls /mnt/c
autorun  
images               
RELEASE-NOTES      
RPM-GPG-KEY-fedora-rawhide
eula.txt 
isolinux             
RPM-GPG-KEY        
RPM-GPG-KEY-fedora-test
GPL      
README-Accessibility 
RPM-GPG-KEY-fedora  TRANS.TBL

linux 下没什么虚拟光驱的操作,直接mount iso
文件即可

[root@localhost ymp]# mount -o loop RHEL4-U4-i386-AS-disc1.iso
/mnt/d/disk1
[root@localhost ymp]# ls /mnt/d/disk1
autorun           
RELEASE-NOTES-bn.html    
RELEASE-NOTES-U1-it.html    
RELEASE-NOTES-U2-ta.html    
RELEASE-NOTES-U4-en.html
EULA              
RELEASE-NOTES-de.html    
RELEASE-NOTES-U1-ja.html    
RELEASE-NOTES-U2-zh_CN.html 
RELEASE-NOTES-U4-es.html
GPL  

mount iso 文件,必须加 -o loop参数
[root@localhost mnt]# mount /mnt/d/ymp/RHEL4-U4-i386-AS-disc1.iso
/mnt/cd
mount: /mnt/d/ymp/RHEL4-U4-i386-AS-disc1.iso is not a block device
(maybe try `-o
loop'?)

mount 后的iso文件和光盘一样,也是只读的
[root@localhost cd]# chmod +w isolinux/isolinux.bin
chmod: changing permissions of `isolinux/isolinux.bin': Read-only
file system
mount U盘

USB U盘和USB硬盘的对应设备文件和scsi
设备重名

都是/dev/sda
/dev/sdb /dev/sdc

新redhat,插上U盘后,linux自动找到USB设备,可以通过fdisk -l查到

[root@mail home]# /sbin/fdisk -l

Disk /dev/hda: 10.0 GB, 10005037568 bytes
255 heads, 63 sectors/track, 1216 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device
Boot     
Start        
End     
Blocks   Id 
System
/dev/hda1  
*          
1         
13     
104391   83 
Linux
/dev/hda2             
14       
1216    
9663097+  8e  Linux LVM

Disk /dev/dm-0: 9294 MB, 9294577664 bytes
255 heads, 63 sectors/track, 1130 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 536 MB, 536870912 bytes
255 heads, 63 sectors/track, 65 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-1 doesn't contain a valid partition table

Disk /dev/sda: 128 MB, 128974336
bytes
16 heads, 32 sectors/track, 491 cylinders
Units = cylinders of 512 * 512 = 262144 bytes

Device
Boot     
Start        
End     
Blocks   Id 
System
/dev/sda1  
*          
1        
492     
125928+   6 
FAT16
Partition 1 has different physical/logical endings:
    
phys=(499, 15, 32) logical=(491, 15, 32)

虽然设备自动找到了,但mount还必须手工
把 fdisk -l 查到的U盘设备mount到目录中

[root@mail sbin]# mkdir /mnt/usb
[root@mail sbin]# mount /dev/sda1
/mnt/usb
[root@mail sbin]# ls /mnt/usb
10.wma 
16.wma   
5293.mp3 
7406.mp3   
am2-bach.wma    
beethoven4.wma 
do12.wma    
kisin3.mp3 11.wma 
17.wma   
5706.mp3 
7.wma      
am4-bach.wma    
beethoven5.wma 
do15.wma    
mozart570.wma kisin25.mp3

solaris 如何使用usb设备

cd /dev/dsk
ls -l 查看usb设备
mount -F pcfs
/dev/dsk/设备名字  /mountpoint

跟linux不同,linux缺省类型是vfat,所以可以不设-t
vfat
而solaris缺省类型是ufs,所以必须显示设置-F
pcfs

上一篇:C语言100题集合005-删除一维数组中所有相同的数,使之只剩一个


下一篇:Docker私有仓库Registry 搭建