第八章 Linux磁盘与文件系统管理

  • 学习笔记
    • 认识EXT2文件系统
      • 硬盘物理组成
      • 分区
      • 文件系统
      • Linux的EXT2文件系统(inode)
      • EXT2/EXT3文件的访问与日志文件系统的功能
      • Linux文件系统的运行
      • 载入点
      • Linux支持的其他文件系统
    • 文件系统的简单操作
      • 磁盘与目录的容量
      • 连接文件:ln
    • 磁盘的分区、格式化、检验与载入
      • 分区:fdisk
      • 磁盘格式化
      • 磁盘检验:fsck、badblocks
      • 磁盘载入与卸载
      • 修改磁盘参数
    • 设置启动载入
      • mount还可以做哪些事情:
      • 启动载入 /etc/fstab 和 /etc/mtab
    • 建立虚拟内存
      • 建立虚拟内存设备
      • 建立虚拟内存文件
  • 课后习题及答案

学习笔记

认识EXT2文件系统

硬盘物理组成

硬盘:柱面、磁道、扇区

柱面:分区时的最小单位

扇区:硬盘上最小的存储物理单位量
一般扇区大小为:512字节(bytes)

硬盘容量的基本计算公式:磁盘容量=柱面数 * 磁头数 * 扇区数 * 512btyes

分区

磁盘分区( Partition )的重点:就是记录每一个分割区( Partition )的起始与结束磁柱

『如果你要分割硬盘时,并且已经预计规划使用掉 MBR 所提供的 4 个 partition ( 3P + E 或 4P )那么磁盘的全部容量需要使用光,否则剩下的容量也不能再被使用』。 不过,如果你仅是分割出 1P + 1E 的话,那么剩下的空间就还能再分割两个 primary partition !

文件系统

逻辑块(Block):在分区进行文件系统的格式化时所指定的“最小存储单位”,这个最小存储单位以扇区大小为基础(因为扇区为硬盘的最小物理存储单位)

块大小=2的n次方 * 扇区大小

考虑块的规划时,同时考虑以下问题:
① 文件读取的效率
② 文件大小可能造成硬盘空间的浪费

Linux的EXT2文件系统(inode)

Ext2 文件系统中,文件分为两部分来存储:1.文件属性(inode存储) 2.文件内容(块存储)

格式化ext2分区时,需要指定inode 和块大小

Block 是记录『档案内容数据』的区域,至于 inode 则是记录『该档案的相关属性,以及档案内容放置在哪一个 Block 之内』的信息。 简单的说, inode 除了记录档案的属性外,同时还必须要具有指向( pointer )的功能,亦即指向档案内容放置的区块之中,好让操作系统可以正确的去取得档案的内容

node 记录的信息(当然不止这些):
① 该档案的拥有者与群组(owner/group);
② 该档案的存取模式(read/write/excute);
③ 该档案的类型(type);
④ 该档案建立或状态改变的时间(ctime)、最近一次的读取时间(atime)、最近修改的时间(mtime);
⑤ 该档案的容量;
⑥ 定义档案特性的旗标(flag),如 SetUID… ;
⑦ 该档案真正内容的指向 (pointer);

目录:
分配一个 inode 与至少一块 Block 。 inode 记录该目录的相关属性,并指向分配到的那块 Block ;而 Block 则是记录在这个目录下的相关连的文件(或目录)的关连性!

档案:
分配至少一个 inode 与相对于该文件大小的 Block 数量。 例如:假设我的一个 Block 为 4 Kbytes ,而我要建立一个 100 KBytes 的文件,那么 linux 将分配一个 inode 与 25 个 Block 来储存该文件!

以 /etc/crontab 这个文件的读取为例:

注:
① Blocks 与 inodes 在一开始格式化时 (format) 就已经固定了;
② 一个 partition(分区) 能够容纳的档案数与 inode 有关;
③ 一般来说,每 4Kbytes 的硬盘空间分配一个 inode ;
④ 一个 inode 的大小为 128 bytes;
⑤ Block 为固定大小,目前支持 1024/2048/4096 bytes 等;
⑥ Block 越大,则损耗的硬盘空间也越多。
⑦ 关于单一档案:
若 block size=1024,最大容量为 16GB,若 block size=4096,容量最大为 2TB;
⑧ 关于整个 partition:
若 block size=1024,则容量达 2TB,若 block size=4096,则容量达 32TB。
⑨ 文件名最长达 255 字符,完整文件名长达 4096 字符。

EXT2/EXT3文件的访问与日志文件系统的功能

假设仅有一个块组(block group):
SuperBlock(超级块)
如前所述, Superblock 是记录整个 filesystem(文件系统) 相关信息的地方, 没有 Superblock ,就没有这个 filesystem 了。 它记录的信息主要有:

  • block 与 inode 的总量;
  • 未使用与已使用的 inode / block 数量;
  • 一个 block 与一个 inode 的大小;
  • filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等文件系统的相关信息;
  • 一个 valid bit(有效位) 数值,若此文件系统已被挂载,则 valid bit 为 0 ,若未被挂载,则 valid bit 为 1 。

Group Description(组描述):纪录此 block 由由何处开始记录;
Block bitmap(块位图):此处记录那个 block 有没有被使用;
Inode bitmap(inode 位图):此处记录那个 inode 有没有被使用;
Inode table(inode 表):为每个 inode 数据存放区;
Data Blocks(数据块):为每个 block 数据存放区。

关于上述提到的相关信息时,可以使用 dumpe2fs 这个指令来读取

当我们新增一个档案(目录)时:
① 根据 inode bitmap / block bitmap 的信息,找到尚未被使用的 inode 与 block , 进而将档案的属性与数据分别记载进 inode 与 block ;
② 将刚刚被利用的 inode 与 block 的号码 (number) 告知 superblock、inode bitmap、block bitmap 等,让这些 metadata(元数据) 更新信息。

一般将inode表与块区域称为数据存放区,其他如超级块、块位图与inode位图等称为元数据

E2fsck:数据一致性检查

Linux文件系统的运行

Linux 通常采用异步处理方式

载入点

目录与文件系统能产生对应的入口点,即载入文件系统的入口,载入点一定是目录而不是文件

Linux支持的其他文件系统

  • 传统文件系统::ext2、minix、ms-dos、fat、iso9660
  • 日志式文件系统:ext3、reiserfs、ntfs、ibm的jfs、sgi的xfs
  • 网络文件系统:nfs、smbfs

系统支持的文件系统:

[root@linux ~]# ls -l /lib/modules/`uname -r`/kernel/fs

目前启用的文件系统:

[root@linux ~]# cat /proc/filesystems

文件系统的简单操作

磁盘与目录的容量

  1. df

     [root@linux ~]# df [-ahikHTm] [目录或文件名]参数:-a  :列出所有的文件系统,包括系统特有的 /proc 等文件系统;-k  :以 KBytes 的容量显示各文件系统;-m  :以 MBytes 的容量显示各文件系统;-h  :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;-H  :以 M=1000K 取代 M=1024K 的进位方式;-T  :连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;-i  :不用硬盘容量,而以 inode 的数量来显示
    

查出的数据
Filesystem:代表该文件系统是在那个 partition 啊,所以列出装置名称;
1k-blocks:说明底下的数字单位是 1KB 呦! 可利用 -h 或 -m 来改变容量;
Used:顾名思义,就是使用掉的硬盘空间啦!
Available:也就是剩下的磁盘空间大小;
Use%:就是磁盘的使用率啦! 如果使用率高达 90% 以上时, 最好需要注意一下了,免得容量不足造成系统问题喔! (例如最容易被灌爆的 /var/spool/mail 这个放置邮件的磁盘)
Mounted on:就是磁盘挂载的目录所在啦! (挂载点 )

  1. du

     [root@linux ~]# du [-ahskm] 文件或目录名称参数:-a  :列出所有的档案与目录容量,因为默认仅统计目录底下的档案量而已。-h  :以人们较易读的容量格式 (G/M) 显示;-s  :列出总量而已,而不列出每个各别的目录占用容量;-k  :以 KBytes 列出容量显示;-m  :以 MBytes 列出容量显示;
    

连接文件:ln

  1. 硬连接或实际连接

    只是在某个目录下新增一个该文件的关联数据而已,上层目录的关联数据都指向同一个inode处

    硬连接设置链接文件时,磁盘空间与inode的数目一般都不会变

    由于硬连接实在同一个分区上建立数据关联,所以硬连接是有限制的:
    ① 不能跨文件系统
    ② 不能连接目录

  2. 符号连接(即快捷方式)

    符号链接 = windows下的快捷方式 建立会占用inode与块,为一个新文件

     [root@linux ~]# ln [-sf] 来源文件 目标文件参数:-s  :如果 ln 不加任何参数就进行连结,那就是hard link,至于 -s 就是symbolic link-f  :如果 目标文件 存在时,就主动的将目标文件直接移除后再建立!
    
  3. 目录的连接数量

    当我们建立一个新的目录时, 『新的目录的 link 数为 2 ,而上层目录的 link 数则会增加 1 』

磁盘的分区、格式化、检验与载入

新增硬盘:
① 对磁盘进行分区,以建立可用的 partition ;
② 对该 partition 进行格式化( format ),以建立系统可用的 filesystem;
③ 若想要仔细一点,则可对刚刚建立好的 filesystem 进行检验;
④ 在 Linux 系统上,需要建立挂载点 ( 亦即是目录 ),并将他挂载上来;

分区:fdisk

[root@linux ~]# fdisk [-l] 设备名称
参数:
-l  :输出后面接的装置所有的 partition 内容。若仅有 fdisk -l 时,则系统将会把整个系统内能够搜寻到的装置的 partition 均列出来。Command (m for help): m   <== 输入 m 后,就会看到底下这些指令介绍
Command actiona   toggle a bootable flagb   edit bsd disklabelc   toggle the dos compatibility flagd   delete a partitionl   list known partition typesm   print this menun   add a new partitiono   create a new empty DOS partition tablep   print the partition tableq   quit without saving changess   create a new empty Sun disklabelt   change a partition's system idu   change display/entry unitsv   verify the partition tablew   write table to disk and exitx   extra functionality (experts only)
# 这里注意一下,使用 fdisk 这支程序是完全不需要背指令的,因为按下 m 之后,
# 立刻就会有一堆指令说明跑出来了!在上面的指令当中,比较重要的有:
# d 删除一个磁盘分区槽、 n 新增一个磁盘分区槽、 p 将目前的磁盘分区槽列出来、
# q 不储存离开!这个重要! w 写入磁盘分区表后离开!这个危险!

以 /dev/hdb 仅有 /dev/hdb1 为例:

  1. 删除分区
    ① fdisk /dev/hdb :先进入 fdisk 画面;
    ② p :先看一下扇区的信息,假设要删除 /dev/hdb1;
    ③ d :这个时候会要你选择一个 partition ,就选 1 ;
    ④ w (or) q :按 w 可储存到磁盘数据表中,并离开 fdisk ;当然, 如果反悔了,直接按下 q 就可以取消刚刚的删除动作了。

  2. 新增分区
    ① fdisk /dev/hdb :先进入 fdisk 画面中;
    ② n:新增一个分区, 如果已经具有 extended 分区时,那么系统会问,要新增的是 Primary 还是 Logical ,而如果您还没有 extended ,那么系统仅会问你要新增 Primary 还是 Extended。除此之外,如果您已经用完了四个 P + E 的话,那么就仅有 Logical 可以选择啦!如果是选择 primary 的话,请按 p ,否则请按 e (extended) 或 l (logical);
    ③ p :由于选择为 primary 所以就会按下 p ;
    ④ 1-4 :primary 只允许四个, 所以这里请按尚未被使用的那一个分区;
    ⑤ w :储存离开

  3. 操作环境说明

    以 root 的身份进行硬盘的 partition 时,最好是在单人维护模式底下比较安全一些

磁盘格式化

[root@linux ~]# mke2fs [-bicLj] 设备名称
参数:
-b  :可以设定每个 block 的大小,目前支持 1024, 2048, 4096 bytes 三种;
-i  :多少容量给予一个 inode 呢?
-c  :检查磁盘错误,仅执行一次 -c 时,会进行快速读取测试;如果执行两次 -c -c 的话,会测试读写(read-write),会很慢~
-L  :后面可以接卷标 (Label),这个 label 是有用的喔!后面会讲~
-j  :本来 mke2fs 是 EXT2 ,加上 -j 后,会主动加入 journal (日志)而成为 EXT3。

格式化为其他文件系统:mkfs.<其他文件系统>

磁盘检验:fsck、badblocks

  1. fsck

     [root@linux ~]# fsck [-AtCary] 设备名称参数:-t  :fsck 可以检查好几种不同的 filesystem ,而 fsck 只是一支综合程序而已。个别的 filesystem 的检验程序都在 /sbin 底下,可以使用 ls -l /sbin/fsck*去检查看看,就知道有几种 filesystem 啰。默认的 FC4 情况下,至少有:ext2, ext3, vfat, msdos 等 filesystem。-A  :依据 /etc/fstab 的内容,将所有的设备都扫瞄一次 (通常开机过程中就会执行此一指令)-a  :自动修复检查到的有问题的扇区,所以你不用一直按 y 键-r  :一定要让用户决定是否需要修复,这与上一个 -a 刚好相反!-y  :与 -a 类似,但是某些 filesystem 仅支持 -y 这个参数,所以您也可以利用 -y 啦!-C  :可以在检验的过程当中,使用一个长条图来显示目前的进度!-f  :强制检查!一般来说,如果 fsck 没有发现任何 unclean 的标志,不会主动进入内部检查的,如果您想要强制 fsck 进入内部检查,就得加上 -f 标志!
    

    Linux 下的fsck = windows 下的scandisk 系统正常使用fsck系统可能出问题

    注意:执行fsck检查的分区务必不可载入到系统,也就是在卸载状态。

  2. badblocks

     [root@linux ~]# badblocks -[svw] 设备名称参数:-s  :在屏幕上列出进度-v  :可以在屏幕上看到进度-w  :使用写入方式来测试,建议不要使用此一参数,尤其是待检查的设备已有文件时!
    
  3. sync

    将缓存数据同步写入硬盘

磁盘载入与卸载

文件系统载入到 Linux 系统:mount

[root@linux ~]# mount -a
[root@linux ~]# mount [-tonL]  装置名称代号  挂载点
参数:
-a  :依照 /etc/fstab 的内容将所有相关的磁盘都挂上来!
-n  :一般来说,当我们挂载文件系统到 Linux 上头时, Linux 会主动的将目前的 partition 与 filesystem 还有对应的挂载点,都记录到 /etc/mtab那个档案中。不过,有些时刻 (例如不正常关机导致一些问题,而进入单人模式)系统无法写入 /etc/mtab 时,就可以加上 -n 这个参数来略过写入 mtab 的动作。
-L  :系统除了利用装置名称代号 (例如 /dev/hda1) 之外,还可以利用 partition 的表头名称 ( Label ) 来进行挂载喔!所以,最好为您的 partition 取一个在您系统当中独一无二的名称吧!
-t  :您的 Linux 支援的文件格式,就写在这里吧!举例来说,我们在上面建立 /dev/hdb5 是 ext3 文件系统,那么要挂载时,就得要加上 -t ext3 来告知系统,用 ext3 的文件格式来挂载该 partition 呢!至于系统支持的 filesystem 类型在 /lib/modules/`uname -r`/kernel/fs 当中。常见的有:ext2, ext3, reiserfs, 等 Linux 惯用 filesystemvfat, msdos 等 Windows 常见 filesystemiso9660 为光盘片的格式nfs, smbfs 等为网络相关文件系统。这部分未来我们会在网络方面提及!若 mount 后面没有加 -t 文件系统格式时,则 Linux 在预设的情况下,会主动以 /etc/filesystems 这个档案内规范的文件系统格式来尝试主动的挂载喔!
-o  :后面可以接一些挂载时,额外加上的参数喔!比方说账号、密码、读写权限等:ro, rw:       此 partition 为只读(ro) 或可擦写(rw)async, sync:  此 partition 为同步写入 (sync) 或异步 (async),这个与我们之前提到的文件系统运作方式有关,预设是 asyncauto, noauto: 允许此 partition 被以 mount -a 自动挂载(auto)dev, nodev:   是否允许此 partition 上,可建立装置档案? dev 为可允许suid, nosuid: 是否允许此 partition 含有 suid/sgid 的文件格式?exec, noexec: 是否允许此 partition 上拥有可执行 binary 档案?user, nouser: 是否允许此 partition 让 user 执行 mount ?一般来说,mount 仅有 root 可以进行,但下达 user 参数,则可让一般 user 也能够对此 partition 进行 mount 。defaults:     默认值为:rw, suid, dev, exec, auto, nouser, and asyncremount:      重新挂载,这在系统出错,或重新更新参数时,很有用!

-remount 重新载入

umount【分区&磁盘&设备卸载】 卸载 –f强制卸载

通过 mount --bind 的功能,可以将某个目录载入到其他目录,而并不是整块文件系统。

修改磁盘参数

  1. mknod

     [root@linux ~]# mknod 设备名称 [bcp] [Major] [Minor]参数:设备种类:b  :设置设备名称为一个储存外部设备文件,例如硬盘等;c  :设置设备名为一个输入外部设备文件,例如鼠标/键盘等;p  :设置设备名称为一个 FIFO 文件;Major :主要设备代码;Minor :次要设备代码;
    
  2. e2label

     [root@linux ~]# e2label 设备名称  新的Label名称
    

    主要的功能是用来修改『磁盘的表头数据』,也就是 label (卷标)

  3. tune2fs

     [root@linux ~]# tune2fs [-jlL] 设备号参数:-j  :将 ext2 的 filesystem 转换为 ext3 的文件系统;-l  :类似 dumpe2fs -h 的功能~将 superblock 内的数据读出来~-L  :类似 e2label 的功能,可以修改 filesystem 的 Label 喔!
    
  4. hdparm

    DMA模式(direct memary access)是一种不经过cpu而直接从内存取得数据的交换模式

     [root@linux ~]# hdparm [-icdmXTt] 设备名称参数:-i  :系统在开机的过程当中,会利用本身核心的驱动程序(模块)来测试硬盘,利用 -i 参数,可将这些测试值取出来,这些值不一定是正确的,不过,却可以提供我们一个参考值的依据!-c  :设定 32-bit (32位)存取模式。这个 32 位存取模式指的是在硬盘在与 PCI 接口之间传输的模式,而硬盘本身是依旧以 16 位模式在跑得!预设的情况下,这个设定值都会被打开,建议直接使用 c1 即可!-d  :设定是否启用 dma 模式, -d1 为启动, -d0 为取消;-m  :设定同步读取多个 sector 的模式。一般来说,设定此模式,可降低系统因为读取磁盘而损耗的效能~不过, WD 的硬盘则不怎么建议设定此值~一般来说,设定为 16/32 是优化,不过,WD 硬盘建议值则是 4/8 。这个值的最大值,可以利用 hdparm -i /dev/hda 输出的 MaxMultSect来设定喔!一般如果不晓得,设定 16 是合理的!-X  :设定 UtraDMA 的模式,一般来说, UDMA 的模式值加 64 即为设定值。并且,硬盘与主板芯片必须要同步,所以,取最小的那个。一般来说:33 MHz DMA mode 0~2 (X64~X66)66 MHz DMA mode 3~4 (X67~X68)100MHz DMA mode 5   (X69)如果您的硬盘上面显示的是 UATA 100 以上的,那么设定 X69 也不错!-T  :测试暂存区 cache 的存取效能-t  :测试硬盘的实际存取效能 (较正确!)
    

设置启动载入

mount还可以做哪些事情:

① 载入软盘
② 载入 Windows 磁盘
③ 载入 U 盘

启动载入 /etc/fstab 和 /etc/mtab

系统载入的限制;
① 根目录 / 是必须挂载的,而且一定要先于其它 mount point 被挂载进来。
② 其它 mount point 必须为已建立的目录,可任意指定﹐但一定要遵守必须的系统目录架构原则
③ 所有 mount point 在同一时间之内,只能挂载一次。
④ 所有 partition 在同一时间之内,只能挂载一次。
⑤ 如若进行卸除,您必须先将工作目录移到 mount point(及其子目录) 之外。

/etc/fstab 内容总共有6栏:
① 磁盘设备号或该设备的卷标
② 载入点(mount point)
③ 分区的文件系统
④ 文件系统参数
⑤ dump备份命令
0 表示不备份 1表示备份 2表示备份但该分区的重要性比1小
⑥ 是否以 fsck 检验分区
0 表示不检验 1 表示要检验 2 也表示检验不过1会较早被检验

建立虚拟内存

1.设置一个swap分区

2.建立一个虚拟内存文件

建立虚拟内存设备

设置swap分区:

1.fdisk建立分区

2.mkswap格式化建立的分区

3.启用swapon

4.添加到/etc/fstab中开机挂载

建立虚拟内存文件

设置虚拟内存文件:

1.dd命令建立swap文件 例如:dd if=/dev/zero of=/swapfile bs=1M count=1000

2.格式化虚拟内存文件 mkswap

3.启用虚拟内存文件 swapon

4.添加/etc/fstab挂载虚拟内润文件以便开机挂载启动

swapoff 关掉虚拟内存

课后习题及答案

  1. 如何在Linux系统中增加一个新硬盘,请详述流程?

    安装硬盘:关掉 Linux 主机电源,调整 Hard Disk 的 Jump (master 或 slave),串接在 IDE 的接口,请注意,留意你增加的硬盘所串接的 IDE 接口为哪一个插槽,例如你插在 IDE2 的 Master ,则你的硬盘应为 hdc;此外,需要特别留意的是,目前的机器中,如果是 ATA 66 以上的扁平电缆(那种很密的扁平电缆),那么 master 或者是 slave 在扁平电缆上的顺序是固定的!底端的是 Mater 而中间的是 Slave ,这点请稍微注意呦!

    新增硬件于BIOS:开启计算机后,按 del 键进入 BIOS,选择 IDE Hard Disk Detector 字样的选项, 让BIOS去捉硬盘,然后再选择 Save and Exit;不过,较新的机器通常都可以自动侦测了!但是, 如果你的机器是旧型的,那么还是手动来增加硬盘吧!

    Linux 系统侦测:如果你的 Linux 系统有启动 kudzu 这个服务时,那么开机就会自动去侦测新的硬件装置! Fedora Core IV 预设是有开启这项服务的,除非你关掉他了!OK,假设你有开启这项服务,那么开机进入 Linux 的时候,系统会告诉你有捉到一个新的硬件,你可以按 『configure』由系统直接安装即可;

    格式化硬盘:以 root 的身份进入 Linux 后,执行以下两个程序:fdisk /dev/hd[a-d] 与 mke2fs /dev/hd[a-d][1-16] 。

    建立 mount point:假设我的这颗硬盘要挂在 /disk3 下面,那么就需要 : mkdir /disk3

    开机自动加载( mount ):再来则是以 vi 修改 /etc/fstab 档案,让每次开机把这个硬盘直接挂入系统中。

    安装完成:你可以使用 mount -a 来将全部的装置重新挂载一遍,或者是重新启动就可以啦!

  2. 假设条件:原先规划的 /home 只有1GB,但当前用户很多,所以容量不足。我想增加一个8GB的旧硬盘,如何做?

    将硬盘加入 Linux 系统中:利用刚刚上一题的方式将你的硬盘加入到 Linux 系统中,亦即是使用 fdisk 与 mke2fs 建立了 ext2 的文件格式的硬盘!好了,假设该硬盘的代号为 /dev/hdc1 好了!

    挂载新硬盘:由于我需要将新旧扇区都挂上来,这样才有办法将数据由旧硬盘移到新硬盘上面,OK! 我就建立一个暂存的目录,称为 /disk-tmp:
    mkdir /disk-tmp
    mount -t ext2 /dev/hdc1 /disk-tmp
    如此一来则 /disk-tmp 就是新挂上来那颗 8 GB 的硬盘啦!

    移动数据:好了!现在开始将数据 copy 到新挂上的硬盘上面吧!
    cd /home
    tar -zcvf /disk-tmp/home.tar.gz *
    cd /disk-tmp
    tar -zxvf home.tar.gz
    上面的指令会将目前旧有的 /home 底下的东西完全的压缩之后移动到 /disk-tmp/home.tar.gz 这个压缩文件,然后再到 /disk-tmp 底下将他解压缩!这样数据就复制到新挂上来的硬盘啦! 卸除旧的,挂上新的:好了,那么我们就开始来测试一下吧!你可以这样做:
    umount /home
    mount -t ext2 /dev/hdc1 /home
    注意呦!如果你的 /home 底下原本就没有挂载扇区的话,那么你就可以直接将 /home 底下的数据都砍掉,然后在挂上新的那颗硬盘就好了!而 home.tar.gz 这个档案就可以用作为备份之用!

    开机执行:同样的,如果要设定成开机就挂上这颗新的硬盘,那就修改 /etc/fstab 档案吧!

  3. 如果分区 /dev/hda3 有问题,但它是被载入的,如何改变?

    umount /dev/hda3
    fsck /dev/hda3

  4. 我们常说,启动的时候“发现硬盘有问题”,请问,这个问题是指“文件系统的损坏”,还是指“硬盘的损坏”?

    特别需要注意的是,如果您某个 filesystem 里面,由于操作不当,可能会造成 Superblock 数据的损毁, 或者是 inode 的架构损毁,或者是 block area 的记录遗失等等,这些问题当中,其实您的『硬盘』还是好好的, 不过,在硬盘上面的『文件系统』则已经无法再利用!一般来说,我们的 Linux 很少会造成 filesystem 的损毁, 所以,发生问题时,很可能整个硬盘都损毁了。但是,如果您的主机常常不正常断电,那么, 很可能硬盘是没问题的,但是,文件系统则有损毁之虞。此时,重建文件系统 (reinstall) 即可! 不需要换掉硬盘啦! _

  5. 我有两个文件,分别是 file1 与 file2,这两个文件互为硬连接文件,请问,若将 file1 删除,然后再以类似vi的方式重新建立一个名为 file1 的文件,file2 是否会被更改?

    当我删除 file1 之后, file2 则为一个正规档案,并不会与他人共同分享同一个 inode 与 block ,因此,当我重新建立一个档名为 file1 时,他所利用的 inode 与 block 都是由我们的 filesystem 主动去搜寻 meta data ,找到空的 inode 与 block 来建立的, 与原本的 file1 并没有任何关连性喔!所以,新建的 file1 并不会影响 file2 呢!

鸟哥的Linux私房菜(基础班)第八章学习笔记相关推荐

  1. 鸟哥的Linux私房菜(基础篇)- 第八章、Linux 磁盘与文件系统管理

    第八章.Linux磁盘与文件系统管理 最近升级日期:2009/08/30 系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分割槽不可太大也不能太小,太大会造成磁盘容量的浪费,太小则会产生文 ...

  2. 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录

    目录 目录 前言 关于这本书 必看知识点 最后 前言 相信部分刚进入这个行业的新同学会对一个问题感到疑惑,为什么从培训学校出来的学员不被欢迎? 这里记录下一些我个人的看法(博主也曾有面试新员工的经历) ...

  3. 鸟哥的Linux私房菜(基础篇)-第二章、 Linux 如何学习(二.3. 有心朝Linux作业系统学习者的学习态度)

    第二章. Linux 如何学习 最近更新日期:2009/08/06 3. 有心朝Linux作业系统学习者的学习态度 3.1 从头学习Linux基础 3.2 选择一本易读的工具书 3.3 实作再实作 3 ...

  4. 鸟哥的linux私房菜-基础学习篇 读书笔记

    从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...

  5. 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)

    鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一) 第零章 计算机概论 0.1 电脑:辅助人脑的好工具 0.1.1 计算机硬件五大组成部分 0.1.2 一切设计的起点: C ...

  6. 鸟哥的Linux私房菜-基础学习篇(第四版):鸟哥-电子书

    内容简介: 本书是知名度颇高的Linux入门书<鸟哥的Linux私房菜基础学习篇>的新版,全面而详细地介绍了Linux操作系统. 全书分为五部分:第一部分着重说明计算机的基础知识.Linu ...

  7. hnc8进linux环境,鸟哥的linux私房菜(基础篇,8、开机关机、在线)命令

    鸟哥的linux私房菜(基础篇,8.开机关机.在线求助)命令 1.exit 注销 Linux 2. 指令太长的时候,可以使用 \ 符号和[Enter] 符号,使指令连续到下一行. 3. 在 Linux ...

  8. 鸟哥的Linux私房菜-基础篇第四版.pdf免费资源下载链接,《鸟哥的Linux私房菜-基础篇》第四版.pdf

    <鸟哥的Linux私房菜-基础篇>第四版.pdf免费资源下载链接(.pdf书籍的优点是便于直接在电脑中保存有电脑就可以阅读,如果觉得这本书给你提供到了很大的帮助,可以去书店补一本纸质版) ...

  9. 鸟哥的Linux私房菜基础学习篇 第0章与第1章的重点探索

    鸟哥的Linux私房菜基础学习篇 第0章与第1章的重点探索 目录 鸟哥的Linux私房菜基础学习篇 第0章与第1章的重点探索 前言 一.计算机概论 1.知识基础 2.知识初阶 3.知识进阶 二.Lin ...

  10. 《鸟哥的Linux 私房菜 基础学习篇(第三版)》——1.2 Torvalds的Linux开发

    本节书摘来自异步社区<鸟哥的Linux 私房菜 基础学习篇(第三版)>一书中的第1章,第1.2节,作者:鸟哥著,更多章节内容可以访问云栖社区"异步社区"公众号查看 1. ...

最新文章

  1. 在Windows Azure公有云环境部署企业应用
  2. linux 大文件切割和合并 tar分割和合并
  3. 变声原理:卷积和传递函数
  4. python基础到实践_一本书搞定Python入门到实践
  5. Angular Material 攻略 04 Icon
  6. [css] 如何解决html设置height:100%无效的问题?
  7. 【ACM】hdu_1862_EXCEL排序_201308091948
  8. Uncaught ReferenceError: FileAsyncWriter is not defined
  9. c#随机数总结,汉字,英文,数字
  10. Domino中运用ajax判断帐号是否存在的简单例子
  11. 181015扇贝有道词霸每日一句
  12. ROS 5.24软路由系统 安装+部署+联网 参考教程(ISO版)
  13. background详解
  14. 网站页面篡改及挂马的应急处置
  15. 需要一个自习室系统,包括收费、灯控、会员管理、微信及前端订座、一卡通终端,会做的私信我,有偿。
  16. AWS 中文入门开发教学 21- 通过 Web 应用连接到 MySQL 数据库服务器
  17. python 白噪声检验 结果-时间序列 平稳性检验 白噪声 峰度 偏度
  18. 微机原理与接口技术重要的知识点
  19. Seq2Seq Attention模型
  20. node.js错误解决:Syntax Error: Error: No ESLint configuration found.

热门文章

  1. python开发erp系统odoo_ODOO快速入门与实战:PYTHON开发ERP指南
  2. 目前 计算机硬件系统,计算机硬件系统练习题.doc
  3. CodeForces-1016C Vasya And The Mushrooms(模拟+思维+前缀和的前缀和) 解题报告 Apare_xzc
  4. 设计模式十四(中介者模式)
  5. 大数据平台数据管控整体解决方案(48页PPT附下载)
  6. 视频垂直翻转播放的效果,如何同时制作多个视频
  7. 【仿淘宝首页】前端网页模板,大学生前端作业分享,html5+css电商网站模板,包含js动效
  8. 一维数组——折半查找法
  9. 嵌入式arm板linux路由表设置
  10. java多线程之线程安全----铁路售票系统的实现