task2

  1. 给出分区大小。
    命令:df -h(print sizes in powers of 1024 (e.g., 1023M))
    task2_第1张图片
    分区

    udev:linux设备管理器,管理/dev目录底下的设备节点
    tmpfs:基于内存的文件系统,使用内存或swap分区来存储文件
    /dev/sda n:访问这些外部设备的端口,代表第一块SATA接口的硬盘的第n个分区
  2. 根据文件路径找到文件管理信息(簇号,文件索引)和文件内容。
    linux中的簇号即为block号
    利用filefrag命令查看文件分布在哪些block里
    task2_第2张图片
    filefrag

    即:文件占有30157个块,这些块是discontinuous分布的,分为四个部分,从截图中可以看到这四个部分的起始块号和结束块号。
    文件索引文件为inode,用stat查看
    task2_第3张图片
    inode

    如何查看文件内容:根据文件的类型不同用不同的命令,如文本文件可用vim filename打开。
  3. 如何安全删除文件
    rm为安全删除文件命令,如果该文件f1只有一个硬链接,且当前没有程序使用该文件,那么文件数据就被删除了,否则,就会出现以下的情况:
  4. 文件的硬链接只有f1,但是当前有进程正在使用f1,data的删除操作并不立即执行,而是等到正在使用f1的所有进程都对f1执行了close操作之后,,再执行data的删除操作,在此期间,进程可对f1进行正常的读写操作,因为已经将i_node复制到内存,可直接通过i_node访问文件数据而不再需要借助f1
  5. 当前无进程引用f1,但该文件有多个硬链接。data的删除操作并不执行,rm的执行结果只是切断了f1->i_node这条连接,也就是说我们无法再通过f1访问i_node了,当然也就不能访问i_node所指向的文件数据了。

删除文件数据的实质是将数据所在内存区域的标志位置为空闲,其中的数据并未清空,只是没有了i_node->data的链接,没有办法获取data的首尾地址,我们无法访问正常data了。

  1. 文件删除后,如何恢复它

linux没有固定的回收站,我们看到的回收站是桌面环境的,用终端删除文件之后不会存在回收站里。

恢复方法:借用extundelete软件。

  1. 确定删除文件所在分区 df -h /home,结果为/dev/sda8
  2. 调用命令sudo ./extundelete /dev/sda8 --restore-all,结束后会在程序的目录下生成一个目录RECOVERED_FILES
  3. 可用grep命令找到所需文件。

5.对文件设置访问权限,会修改该文件在文件系统中的哪些内容?
修改权限命令:chome 777 a.txt

文件数据都储存在"块"中,而储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等则是在inode中。

stat file即可看到文件权限被修改。

你可能感兴趣的:(task2)