zoukankan      html  css  js  c++  java
  • Linux文件管理笔记

      1)Linux识别磁盘Linux通过不同的设备节点区分各个分区,节点名字的由磁盘名加分区号组成。例如,驱动器/dev/hba上的第一个分区叫做/dev/hba1,驱动器/dev/sdc上的第七个分区就叫做/dev/sdc7。

      主引导记录(MBR) 引导程序(Bootloader)分区表(Partition Table)

      主分区

      扩展分区

      逻辑分区

      

      

      2)使用fdisk列出分区:

      fdisk最简单的用处是显示已知分区。使用-l命令行选项,

      fdisk可以列出所有已知磁盘的分区表。在下面的例子中,

      fdisk -l 产生系统上两个硬盘的分区表:/dev/hda和/dev/hdb。

      

      

      

      注:使用fdisk编辑分区表时应注意是使用分区名而不是磁盘名。如fdisk /dev/sdb,不应是fdisk /dev/sdb3

      3)fdisk命令列表

      

      

      4)添加一个分区:

      Command(m for help):n

      Command action

      e extend

      p primary partition(1-4)

      建立新分区的命令是n,下一步取决于驱动器的状态。如果不存在扩展分区(现在就是),fdisk会问新的分区是否是扩展分区。如果扩展分区已经存在,fdisk会问新的分区是逻辑分区还是主分区。如果所有的主分区都已经在使用,fdisk就不会再问。

      Selected partition e

      First cylinder (3927-15505,default 3927):  (按下ENTER键)

      因为三个主分区都已经存在,如果管理员要创建两个新分区,需要先扩展一个分区来装他们。键入e命令。接下来,fdisk提示分区的起始柱面。管理员按回车键,接受建议的默认柱面3927(第一个可用的柱面)。

      然后,fdisk询问结束柱面的号码。

      Using default value 3927

      Last cylinder or + size G or +size M+size K(3927-15505,default15505):

      

      因为扩展分区是主分区,它将是磁盘上的第四个(也是最后一个)主分区,因此所有不包括在这个扩展分区中的空间都不能再使用,所以应该使用建议的柱面(也是磁盘上最后的柱面)。

       

       5)扩展分区:

      

      

      

      6)设置交换分区标签:

      Changed system type of partition 5 to 82(Linux swap)

      Command(m for help):p

      

      分区id,以前是“Linux”,现在改为“Linux swap”。

      

      7)删除分区:

            Command(m for help):d

       Partition number(1-6):4

      要注意下列几点:

      如果删除扩展分区,这个空间中包含的所有逻辑分区也将被删除。

      因为分区信息做为一个链表维护,所以必须用连续数字编号。如果第7个分区中的第5号被删除,分区6和7就变成5和6。(对于主分区不适用。)

      

      8)退出fdisk

      Command(m for help):w

      

      

      操作结束后,有两种退出fdisk的方法。

      第一,可用q命令退出fdisk,这将忽略所做的修改。fdisk实用程序会等待明确的指示后才将修改写入,所以用户可随时安全退出。

      如果使用w命令,fdisk会将修改写入然后退出。这是一般退出fdisk的方式,完成指定的编辑。

      9)使修改生效:

      退出时,fdisk会告诉用户这些修改直到下次引导时才会生效。这并不是绝对的。重新引导系统可以让这些修改生效,但运行partprobe命令也可以达到同样的效果。运行partprobe,让内核读取所做的修改,并加以更新。

      [root@VDEDU~]# partprobe

      10)使用/proc/partitions 查看分区

      fdisk -l(只有根用户才能使用)的替代命令是proc文件系统文件/proc/partitions,这个文件也能列出所有的已知分区及其容量(以1024字节的块为单位)

      [root@station root]# cat /proc/partitions

      

      注意:输出中的每个分区(磁盘)突出的主号码和次号码。Linux内核使用和分区的设备驱动程序相关的主号码和次号码,而不是设备节点的名称识别分区。这在内核层错误信息中,经常可以看到。

      11)初始化分区:

      [root@VDEDU root]# mkfs.ext2 /dev/sda6

      

      12)挂载文件系统主要概念:    

      使用mount命令将文件系统的根目录挂载在目录树上已有的目录。这个已有的目录叫做挂载的挂载点。umount命令将未被使用的文件系统从目录树上卸载下来。不同的挂载选项决定挂载的文件系统的能力特征。挂载选项remount赋予已存在挂载新的选项。

      [root@VDEDU root]# mount /dev/sda1 /home

      [root@VDEDU root]# umount /home

      

      13)使用fuser或lsof找到进程

      fuser命令列出正在使用文件的进程ID。为了达到我们的目的,调用这个命令时使用-m命令行选项,它会列出在含有指定文件的文件系统中使用文件的所有进程。

      [root@VDEDU home]# fuser -m /home

      /home:1912c

      lsof(list open file,列出打开的文件)是fuser的替换命令。在作为挂载点的目录上执行时,lsof命令列出文件系统中当前打开的所有文件。

      [root@station]# lsof /home

      

      

      14)使用 mount -o remount重新挂载分区

      mount 命令还能赋予已经挂载的分区新的挂载选项。重新挂载分区时, mount 命令应该 和 remount 选项一起调用,连带相关这个文件系统的任何新选项。

      [root@station root]# date > /home/foo

      [root@station root]# mount -o remount,ro /home

      [root@station root]# date > /home/foo

           -bash: /home/foo: Read-only file system

      [root@station root]# mount -o remount,rw /home

      [root@station root]# date > /home/foo

      15)/etc/fstab 文件主要概念

      /etc/fstab  文件可以用来预定义挂载点。

      如果在调用 mount 命令时给出的信息不全,它会自动在/ etc/fstab 里寻找缺少的信息。

      mount -a 命令会试图将/etc/fstab 文件中列出的(几乎)所有挂载点挂载。

      /etc/fstab 文件中可用设备名称或文件系统标签表示设备。

      文件系统标签不光可以在/etc/fstab 文件中指定设备,它还可以在 mount 命令行和-L 命令行选项一起直接使用,如下所示。

      [root@station root]# dumpe2fs /dev/hda1 | head -1 dumpe2fs 1.32 (09-Nov-2002)

      Filesystem volume name: /boot

      [root@station root]# mount -L /boot /boot

      

      /etc/fstab 文件中添加一行。如:[root@VDEDU root]# mount /dev/sda1 /home。以后每次开机将会自动执行。

      mkswap /dev/sda1 将这块分区作为交换空间

      swapon /dev/sda1 激活交换分区

      dd if=/dev/zero of=/tmp/swap bs=1024k 从/dev/zero里面读,写到/tmp/swap

      

     

      

      

      

  • 相关阅读:
    编译预处理指令:文件包含指令、宏定义指令、条件编译指令
    多文件协作,extern、static、头文件
    函数间参数传递的3种方式
    函数的定义与调用
    编码标准:ASCII、GBK、Unicode(UTF8、UTF16、UTF32)
    插入字符
    Windows Vista for Developers——第四部分:用户帐号控制(User Account Control,UAC)
    C# 获取QQ好友列表信息的实现
    C# 获取QQ群数据的实现
    QQ登陆功能的实现2
  • 原文地址:https://www.cnblogs.com/kawashibara/p/8626771.html
Copyright © 2011-2022 走看看