`
zsjg13
  • 浏览: 136821 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

管理磁盘和文件系统

阅读更多

本问是我翻译并总结自Linux Bible 8th edition,没有结束,会继续更新。

 

磁盘通常要分区,大多数分区都会有一个结构,叫文件系统。

 

Linux系统中,一些分区会被进行特殊的格式化,用于swap area或LVM physical volumes。

 

磁盘用于永久存储,RAM和swap用于临时存储。例如,当你运行一个命令时,那个命令会被从硬盘中拷贝进RAM中,这样CPU访问它就更快。

 

如果RAM满了(因为运行了太多的进程或某个进程导致了内存泄漏),新的进程将会失败,如果系统没法扩展系统内存。这时,就需要swap area上场了。swap space

就是一个硬盘分区,系统会将RAM中某个时候不用的数据swap out到swap space中,当这些数据再次被用到的时候,再swap in到RAM中。尽管最好是从来都不要exceed

(超过)你的RAM,swaping out比进程失败了要好。

 

还有个特殊的分区叫logical volume manager(LVM)physical volumes。LVM physical volumes可以让我们创建存储空间池,叫volume groups,from those volume

groups, you have a lot more flexibility for growing and shrinking logical volumes than you have resizing disk partitions directly.

 

Linux至少要有一个磁盘分区,被分配到整个Linux文件系统的root(/)中。然而,更常见的是要有多个独立的分区,它们被附到特定的目录上,例如/home,/var,

/tmp。每个分区连接到更大的Linux文件系统上,就是通过将它们挂载到文件系统中的某个点上。

 

注意:mount这个词的意思是将来自于一个硬盘、USB drive、或网络存储设备中的一个文件系统连接到Linux文件系统中的某个点上。是用mount命令来完成的,加上

一些选项来说明这个存储设备的位置以及要将该设备连接到Linux文件系统的哪个目录。当你安装Linux时,每个磁盘分区都被带了一个设备名来创建。

 

/etc/fstab文件中的一个entry告诉Linux每个分区的设备名以及它被挂载到的地方。如果drive没有自动挂接,那就需要管理员在文件系统中创建一个挂载点并将该

disk连接到该点上。Linux能够理解VFAT文件系统,它通常是USB flash drive的默认格式。NTFS文件系统同样受到Linux内核的支持,然而,NTFS通常要求要在Linux

上安装额外的内核驱动。VFAT文件系统通常被用于在不同类型的操作系统间交换文件。NTFS用在现代Windows操作系统中很常见。

 

==========对硬盘进行分区

Linux提供了若干工具用于管理你的硬盘分区。如果你想要添加一个硬盘到你的系统中或修改你已有的磁盘配置,此时你需要知道如何分区你的硬盘。

 

修改分区可导致系统不可启动:我不建议使用你系统的主硬盘来做这个实践,因为一个错误就可导致你的系统无法启动。即使你拿一个USB flash drive来实践,

只要你在/etc/fstab文件中搞了一个错误的entry,就会导致系统在重启时挂在那里。

 

============查看磁盘分区

# fdisk -c -u -l /dev/sdc

对于RHEL6,-c是关闭DOS兼容性模式,-u是show size in sectors,not cylinders。

.一个SCSI(简单计算机系统接口)或USB存储设备,用一个sd? device来表示(例如,sda、sdb、sdc,等等)可以拥有最多16个小设备(例如,主/dev/sdc设备

和/dev/sdc1到/dev/sdc15)。因此一共可以用15个分区。

.对于X86计算机,磁盘可以有最多4个主分区。因此,要想有超过4个分区,这4个中至少要有1个扩展分区。注意,/dev/sdc4是一个扩展分区,它会占据其他3个分区

剩下的磁盘空间。任何在它之后的分区都是逻辑分区,这些分区会使用扩展分区的空间。

 

你的第1个主硬盘通常是/dev/sda。RHEL和Fedora通常至少有1个LVM分区,在它的外面就是其他分区了。

 

============创建一个单分区磁盘

要添加1个新存储设备(硬盘、USB flash drive,或类似设备)到你的计算机中,以便Linux可以使用它,你需要首先将它连接到计算机上,然后给他分区。

大致步骤如下:

1. 安装新硬盘或插入新USB flash drive.

2. 给新磁盘分区

3. 在新磁盘上创建文件系统

4. 挂载文件系统

 

将1个磁盘或flash drive添加到Linux中的最简单的方法就是have the entire disk devoted to a single Linux parttion。你可以有多个分区,每个分区搞个不同

类型的文件系统,放到不同的挂载点上。

 

警告:用fdisk分区时,如果你犯了错误,那就输入q,不保存你的修改。如果你是在某个操作的中途束手无策的,例如添加一个分区,那就完成那个操作,然后当你

看到命令提示符时,输入q。

 

1. 将1个USB flash drive插进一个可用的USB port中。

2. 决定该设备的名字。作为root用户,在shell中输入tail -f /var/log/messages,(tail就是output the last part of files),从显示的消息中可以看出刚

插入的drive的设备名。

3. 从输出中,可以看出你的USB flash drive被发现了,名称是/dev/sdc(你的设备名可能不一样),它还包含了1个分区:/dev/sdc1。

4. 如果USB flash drive自动挂载了,那就unmount it。从你的桌面上,右击这个8G的文件系统icon并选择Unmount或者是作为root用户,你可以输入

umount /dev/sdc1

5. 用fdish命令在这个新磁盘上创建分区。比如,你要格式化第3个USB、SATA或SCSI磁盘(sdc),请输入下面的命令:

# fdisk -c -u /dev/sdc

现在你就在fdisk命令模式中,你就可以用fdisk的那些单个字符的命令集来在分区上工作。

6. 如果你是用一个新的USB flash drive开始的,它可能有了一个分区,而且是一个兼容Windows的文件系统(例如VFAT)。那么用p来查看所有的分区,

用d来删除分区。

7. 要创建1个新分区,就输入n。此时会提示你给它指定分区类型。

8. 选择extended(e)或primary partition(p)。输入p选择primary。

9. 输入partition number。如果你在创建第1个分区,输入数字1。此时会提示这个分区的开始的第1个sector在哪?

10. 选择第1个可用的sector number(只需要按下enter就行)。此时会提示你最后那个sector。

11. 输入分区的size。因为你只是创建1个消耗整个磁盘的分区,那就选择最后1个可用的sector(按下enter接受默认就行)

12. 输入p检查一下你的操作成果

13. 要使对分区表的修改永久生效,输入w。这会写入修改,和Linux内核进行同步,并退出fdisk。

如果你看到下面这条消息,不用担心,下个步骤中你就可以修复它:

WARNING: Re-reading the partition table failed with error 16: 

Device or resource busy

14. 如果fdisk不能对磁盘上的分区表和内核进行通过,最有可能的原因是该磁盘的某个分区仍然挂载着在,所以要unmount该分区,然后尝试运行下面的命令:

# partprobe /dev/sdc

如果partprobe不能工作,那就重启机器,重启后就行了。

15. 尽管分区完成了,然而新分区还不能用。你需要在该分区上创建一个文件系统。 利用mkfs命令,默认,它会创建一个ext2文件系统,Linux可以用它,但,

在大多数情况下,你想要使用一个journaling文件系统(例如ext3或ext4)

# mkfs -t ext4 /dev/sdc1

你可以使用其他命令或选项来创建其他的文件系统类型,例如,mkfs.vfat创建VFAT文件系统,mkfs.msdos for DOS,mkfs.reiserfs for the Reiser文件系统类型。

你想要一个VFAT文件系统,那是你想在Linux、Windows和Mac系统间共享文件。

16. 要能够使用该新的文件系统,你需要创建一个挂载点,并将它挂载到该分区上。

# mkdir /mnt/test

# mount /dev/sdc1 /mnt/test

# df -h /mnt/test

# mount | grep sdc1

17. 用完了该drive,你就可以unmount it,然后你就可以安全地移除该drive了。

# umount /dev/sdc1

18 你不需要设置一个USB flsh drive,让它每次在系统启动时自动挂载,那是因为当你把它插到系统上时会自动挂载。但如果你真想这么做的话,那就要修改

/etc/fstab文件,加入/dev/sdc1 /mnt/test ext4 defaults 0 1,意思是分区(/dev/sdc1)挂载在/mnt/test目录上,是一个ext4文件系统。defaults会让该分区

在系统启动时被挂载。数字0表示不要用dump命令备份来自该文件系统的文件。1表示告诉系统在一定次数的挂载后要检查该分区的错误。

 

============创建一个多分区磁盘

在这个过程中,我创建500M(sdc1和sdc2)、300M(sdc3)、350M(sdc5)和400M(sdc6)这几个分区。sdc4是一个扩展分区,它会消耗所有余下的磁盘空间。sdc5

和sdc6这2个分区的空间就来自于这个扩展分区。

 

像之前一样,插入USB flash drive,并获知该设备的名称(我的是/dev/sdc)。还有,就是当你插入该USB flash drive时,要确保任何自动挂载的分区。

 

提示:当你指定每个分区的size时,输入+号和你要分配给该分区的M字节或G字节数,例如+1024M创建一个1024M字节的分区,+10G就是10G字节分区。要记住

加号+和M或G!如果你忘记了M或G,fdisk将认为你的意思是sectors,结果将不可预料。

1. 用fdisk打开/dev/sdc设备,删除第1个(唯一的)分区,然后添加6个新分区。

# fdisk -cu /dev/sdc

Command (m for help): d

Selected partition 1

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First sector (2048-15667199, default 2048):

<Enter>

Using default value 2048

Last sector,+sectors or +size{K,M,G}(2048-15667199, default 15667199):+500M

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 2

First sector (1026048-15667199, default 1026048): 

<Enter>

Using default value 1026048

Last sector, +sectorsor +size 

{K,M,G}(default 15667199):+500M

Command (m for help): n

Command action

   e   extended

p   primary partition (1-4)

p

Partition number (1-4): 3

First sector (2050048-15667199, default 2050048):

<Enter>

Using default value 2050048

Last sector, +sectorsor +size {K,M,G} (...default 15667199):+300M

Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

e

Selected partition 4

First sector (2664448-15667199, default 2664448): 

<Enter>

Using default value 2664448

Last sector,+sectors or + size{K,M,G}(... default 15667199): 

<Enter>

Using default value 15667199

Command (m for help): n

First sector (2666496-15667199, default 2666496): 

<Enter>

Using default value 2666496

Last sector, +sectors or +size{K,M,G} (...default 15667199): +350M

Command (m for help): n

First sector (...default 3385344): 

<Enter>

Using default value 3385344

Last sector, +sectors or +size {K,M,G} (...default 15667199): +400M

 

2. 在保存之前检查一下分区,也就是输入p。注意,有5个可用的分区(sdc1、sdc2、sdc3、sdc5和sdc6)

3. 默认的分区类型是linux。swap space(type 82),FAT32(type x),以及Linux LVM(type 8e)

Command (m for help): t

Partition number (1-6): 2

Hex code (type L to list codes): 82

Changed system type of partition 2 to 82 (Linux swap / Solaris)

Command (m for help): t

Partition number (1-6): 5

Hex code (type L to list codes): c

Changed system type of partition 5 to c (W95 FAT32 (LBA))

Command (m for help): t

Partition number (1-6): 6

Hex code (type L to list codes): 8e

Changed system type of partition 6 to 8e (Linux LVM)

4. 检查partition table是我想要的结果,然后写入修改:

Command (m for help): p

...

   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1            2048     1026047      512000   83  Linux

/dev/sdc2         1026048     2050047      512000   82  Linux swap / Solaris

/dev/sdc3         2050048     2664447      307200   83  Linux

/dev/sdc4         2664448    15667199     6501376    5  Extended

/dev/sdc5         2666496     3383295      358400    c  W95 FAT32 (LBA)

/dev/sdc6         3385344     4204543      409600   8e  Linux LVM

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

...

5. 检查内核已经知道了对partition table的修改。也就是要查找/proc/partitions里是否有sdc。如果该新设备不在那里,就要运行partprobe /dev/sdc或重启。

# grep sdc /proc/partitions

   8       32    7833600 sdc

   8       33     512000 sdc1

   8       34     512000 sdc2

   8       35     307200 sdc3

   8       36          1 sdc4

   8       37     358400 sdc5

   8       38     409600 sdc6

6. 此时这些分区都已经为不同类型的内容设置好了,但还需要运行一些命令为分区建立文件系统或交换空间。

sdc1,将它搞成一个平常的Linux ext4文件系统,输入

# mkfs -t ext4 /dev/sdc1

sdc2,将它搞成一个交换区域,输入

# mkswap /dev/sdc2

sdc3,将它搞成一个ext2文件系统(默认就是),输入

# mkfs /dev/sdc3

sdc5,将它搞成一个VFAT文件系统,输入

# mkfs -t vfat /dev/sdc5

sdc6,将它搞成一个LVM physical volume type

# pvcreate /dev/sdc6

这些分区现在已经可以被挂载,用作为swap area,或加入到一个LVM volume group中。

 

==========使用Logical Volume Management Partitions

基本的disk partitioning在Linux中有它的不足。如果你用完了磁盘空间会怎样?常见的解决方法就是把数据拷贝到一个更大的磁盘中,用这个大磁盘重启系统。

这样的过程意味着downtime和不高效。

 

Logical Volume Manager(LVM)在处理时常的改变存储需求方面提供了许多灵活性和高效性。利用LVM,physical disk partitions被加入到空间池中,这个空间池

叫作volume groups.根据需要,Logical volumes的空间会从volume groups中得到。这个让你能够:

(1)logical volume还在用的时候,从volume group中给这个logical volume添加更多空间。

(2)如果volume group开始快没空间了,就再往里面加入更多的physical volumes。

(3)从一个physical volume向另一个移动数据,这样你就可以移除小些的磁盘,替换成大点的。此时文件系统还在使用中,所以又是没有downtime。

有了LVM,瘦身文件系统重新开垦磁盘空间就更容易了,尽管瘦身需要unmount the logical volume(不需要重启)。LVM还支持高级特性,例如mirroring和集群。

 

============Checking an existing LVM

下面的命令显示了在我的第1个硬盘上的分区:

# fdisk -cul /dev/sda | grep /dev/sda

Disk /dev/sda: 160.0 GB, 160000000000 bytes

/dev/sda1   *        2048     1026047      512000    83   Linux

/dev/sda2   *     1026048   312498175   155736064    8e   Linux LVM

在这个RHEL系统上,这个160GB的硬盘被划分成一个500MB Linux partition(sda1)和一个Linux LVM partition(sda2)。

然后,我用pvdisplay命令查看该分区是否被用在一个LVM group中:

# pvdisplay /dev/sda2

  --- Physical volume ---

  PV Name               /dev/sda2

  VG Name               vg_abc

  PV Size               148.52 GiB / not usable 2.00 MiB

  Allocatable           yes (but full)

  PE Size               4.00 MiB

  Total PE              38021

  Free PE               0

  Allocated PE          38021

  PV UUID               wlvuIv-UiI2-pNND-f39j-oH0X-9too-AOII7R

  

注意:LVM工具显示磁盘空间用的是MiB和GiB。1MB是1000000 bytes,而1MiB是1048576 bytes。但销售人员倾向于使用MB,因为这看起来硬盘、CDs和DVDs比它们

拥有的容量要多。

# vgdisplay vg_abc

--- Volume group ---

  VG Name               vg_abc

  System ID

  Format                lvm2

  Metadata Areas        1

  Metadata Sequence No  4

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                3

  Open LV               3

  Max PV                0

  Cur PV                1

  Act PV                1

  VG Size               148.52 GiB

  PE Size               4.00 MiB

  Total PE              38021

  Alloc PE / Size       38021 / 148.52 GiB

  Free  PE / Size       0 / 0

  VG UUID               c2SGHM-KU9H-wbXM-sgca-EtBr-UXAq-UnnSTh

  。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

  

==========挂载文件系统

当你启动Linux时,你的硬盘上的所有Linux分区都列在了/etc/fstab文件中并被挂载。

 

mount命令不仅仅用于挂载设备,还用于挂载其他类型的文件系统。例如,它可以挂载来自于网络上的NFS或Samba servers的目录。它还可以被用于挂载来自一个

没有被配置为自动挂载的硬盘或USB flash drive的文件系统。

 

注意:Linux 2.6内核加入了automatic mounting features,并且removable media如何被识别也有了些变动。你不再需要为许多Linux desktop systems手动挂载

removable media。然而,理解如何手动挂载和取消挂载文件系统是一个非常有用的技能,如果你想挂载一个remote filesystems或将分区临时挂载到某个位置。

 

============支持的文件系统

要知道你内核中当前加载进来的文件系统类型,输入 cat /proc/filesystems。

要知道你内核带的文件系统列表,请输入 ls /lib/modules/内核版本/kernel/fs/。实际的modules放在该目录的子目录里。加载一个受支持类型的文件系统,将

会加载对应的文件系统模块(如果还没有被加载)。

 

============启用swap areas

要实际使用一个swap分区,你需要启用它。如果只是临时性的话,可以用swapon命令。

# free -m

             total  used  free  shared  buffers   cached

Mem:          3629  1834  1795       0      226      701

-/+ buffers/cache:   905  2723

Swap:         4095  3995   100

# swapon /dev/sdc2

# free -m

             total  used  free  shared  buffers   cached

Mem:          3629  1834  1795       0      226      701

-/+ buffers/cache:   905  2723

Swap:         4595  4445   600

free命令显示了在开启swap area前后swap的量。swap的量立刻有效,但是是临时的。要将该swap area变成永久的,你需要将其加入到/etc/fstab文件中:

/dev/sdc2  swap   swap    defaults   0 0

因为swap area没有挂载点,所以第2个字段就只是设置成了swap,和分区类型一样。

 

禁用Swap area:

你也许会做这件事,特别是,如果该swap area不再需要了,并且你想要重新开垦被一个swap file所占据的空间或移除一个提供swap分区的USB

drive。

首先,确保swap设备上没有空间被使用(用free命令来查看),然后用swapoff来关闭swap area。

# free -m

             total  used    free  shared  buffers   cached

Mem:          3629  2433    1195       0       99      580

-/+ buffers/cache:  1754    1874

Swap:         4095     0    4095

# swapoff /dev/sdc2

 

============使用fstab文件来定义可挂载的文件系统

你每天都在用的本地计算机上的硬盘分区和远程文件系统可能已被配置为在你启动Linux时就自动挂载。/etc/fstab文件包含了每个分区的定义。

# /etc/fstab

/dev/mapper/vg_abc-lv_root             /        ext4  defaults  1 1

UUID=78bdae46-9389-438d-bfee-06dd934fae28 /boot ext4  defaults  1 2

/dev/mapper/vg_abc-lv_home       /home   ext4  defaults      1 2

/dev/mapper/vg_abc-lv_swap       swap    swap  defaults      0 0

# Mount entries added later.

/dev/sdb1                        /win    vfat ro             1 2

192.168.0.27:/nfsstuff          /remote  nfs  users,_netdev  0 0

//192.168.0.28/myshare          /share   cifs guest,_netdev  0 0

# special Linux filesystems

tmpfs                           /dev/shm tmpfs defaults      0 0

devpts                        /dev/pts devpts gid=5,mode=620 0 0

sysfs                         /sys     sysfs  defaults       0 0

proc                          /proc    proc   defaults       0 0

 

我们注意到/、/home以及swap的设备名都以/dev/mapper开头,那是因为它们都是logical volumes(它们的空间来自于空间池,又称为LVM group)。

 

/boot分区是在它自己的物理分区/dev/sda1上。然而没有用/dev/sda1,而是用了一个UUID。为什么用一个UUID而不是/dev/sda1来标识该设备呢?那是因为假如

你插入了另一个磁盘并启动了机器,很可能新磁盘被标识为/dev/sda,就会导致系统在那个磁盘的第1个分区上查找/boot的内容。

 

要查看你系统上存储设备的UUID,就用blkid命令。

 

/dev/sdb1 /win vfat ro 1 2——我连了一个老的Windows系统的hard drive,ro是只读。

下面2个表示的都是远程文件系统。nfs是NFS share的意思。_netdev告诉Linux在挂载shares之前先等待网络准备好了。

192.168.0.27:/nfsstuff          /remote  nfs  users,_netdev  0 0

//192.168.0.28/myshare          /share   cifs guest,_netdev  0 0

 

大多Windows系统用的是NTFS文件系统。然而,不是每个Linux系统都支持它。Fedora里的ntfs-3g包可以支持NTFS。其他的NTFS支持可以从Linux-NTFS项目找到。

 

解释:

第1列:表示一个文件系统的设备的名称。该字段可以包含LABEL或UUID选项。这样你就不需要用设备名了。优点就是因为分区是用volume name来识别的,你可以将

一个volume移到一个不同的设备名并且不需要改变fstab文件。

第2列:文件系统中的挂载点。

第3列:文件系统类型

第4列:用defaults火逗号隔开的选项列表(没有空格)

第5列:是一个数字,它表示该文件系统是否需要被dumped(就是说是否要备份它的数据)。1是需要,0是不需要。该字段不再那么有用了,因为大多数Linux管理员使用

更强大的备份选项。0经常用作该字段的值。

第6列:是一个数字,它表示使用用fsck来检查该文件系统(when the time comes for it to be checked):1表示它第1个被检查,2表示在那些标为1的后面检查,

0表示不检查。

 

============使用mount命令挂载文件系统

Linux系统在你每次启动时会自动运行mount -a(mount所有文件系统)。

 

任何用户都可以输入mount(不带选项)来查看本地Linux系统当前挂载了哪些文件系统。

$ mount

/dev/sda3 on / type ext4 (rw)

/dev/sda2 on /boot type ext4 (rw)

/dev/sda1 on /mnt/win type vfat (rw)

/dev/proc on /proc type proc (rw)

/dev/sys on /sys type sysfs (rw)

/dev/devpts on /dev/pts type devpts (rw,gid=5,mode=620)

/dev/shm on /dev/shm type tmpfs (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/cdrom on /media/MyOwnDVD type iso9660 (ro,nosuid,nodev)

 

一般的,手动挂载的最常见的设备就是removable media,例如DVDs或CDs。然而,根据你所用的desktop的类型,CDs和DVDs会自动为你挂载,当你插入它们时。

 

然而,有些时候,你可能会发现手动挂载一个文件系统很有用。例如,你想要查看一个老硬盘里的内容,因此你把它安装为计算机的第2个磁盘。如果这个磁盘里

的分区没有自动挂载,那就需要手动挂载了。举个例子,要只读方式挂载一个拥有老的ext3文件系统的磁盘分区sdb1,你可以输入:

# mkdir /mnt/temp

# mount -t ext3 -o -ro /dev/sdb1 /mnt/temp

 

使用mount命令的另一个原因是挂在一个分区修改它的挂载选项。比如说你想重新挂载/dev/sdb1,把它搞成读写,但你又不像unmount它(也许是因为其他人在用)。

# mount -t ext3 -o remount,rw /dev/sdb1

 

============Mounting a disk image in loopback

如果你下载了一个CD或floppy disk image,你想看看里面有什么内容,其实你无需将其刻录到CD或floppy也能看其内容。

# mkdir /mnt/mycdimage

# mount -o loop whatever-i386-disk1.iso /mnt/mycdimage

现在你就可以切换到/mnt/mycdimage目录中查看它的内容,或者拷贝或使用它的任何内容。所以说很有用啊,因为你从下载的CD images中就能得到你想要安装的软件

,而无需将image刻录到CD。你还可以在NFS上共享该挂载点,这样你就可以从另一台计算上安装软件。当完事时,输入umount /mnt/mycdimage就行了。

 

============使用umount命令

当你用完了一个临时文件系统,或你想要临时unmount一个永久的文件系统,就使用umount命令。要使用umount,你可以给它一个目录名或设备名,例如:

# umount /mnt/test

这会unmounts在/mnt/test挂载点的设备。也可以这样写:

# umount /dev/sdb1

通常,最好是用目录名(/mnt/test),因为如果该设备被挂载在多个地方,umount就会失败。

 

如果你遇到一个消息说:device is busy, the umount request has failed because either 

an application has a fi le open on the device or you have a shell open with a directory on 

the device as a current directory.

那么你要停止那些进程或切换到那个设备外的目录中,然后再尝试该命令。

 

如果设备忙的话,你也可以用-l选项,就是延迟unmount的意思,当该设备不忙的时候就会自动unmount。

 

要unmount一个不再可用(例如,服务器挂了)的NFS文件系统,你需要用umount -f选项强制unmount该NFS文件系统。

 

lsof /mnt/test和fuser-v /mnt/test都可以查明是谁在占用我的设备。

 

==========使用mkfs命令创建一个文件系统

你可以在一个磁盘上或你选定的一个分区上创建一个文件系统(当然文件系统类型要支持)。

 

在创建一个新文件系统之前,请确保:

(1)你已经正确地为磁盘分好了区(用的是fdisk命令)

(2)设备名要正确,不然你就会失误覆盖了磁盘上的数据。

(3)如果该分区已挂载着在,请unmount它

# mkfs -t ext3 /dev/sdc1

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics