Linux学习笔记(七)
来源:互联网 发布:下载软件那个好 编辑:程序博客网 时间:2024/05/17 18:28
磁盘分区: fdisk
[root@www ~]# fdisk [-l] 装置名称
选项与参数:
-l :输出后面接的装置所有的 partition 内容。若仅有 fdisk -l 时,则系统将会把整个系统内能够搜索到的装置的 partition 均列出来。
范例:找出你系统中的根目录所在磁盘,并查阅该硬盘内的相关信息
[root@www ~]# df / <==注意:重点在找出磁盘文件名而已
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hdc2 9920624 3823168 5585388 41% /
[root@www ~]# fdisk /dev/hdc <==仔细看,不要加上数字喔!
Command (m for help): <==等待你的输入!
Command (m for help): m <== 输入 m 后,就会看到底下这些指令介绍
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition <==删除一个partition
l list known partition types
m print this menu
n add a new partition <==新增一个partition
o create a new empty DOS partition table
p print the partition table <==在屏幕上显示分割表
q quit without saving changes <==不储存离开fdisk程序
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit <==将刚刚的动作写入分割表
x extra functionality (experts only
使用 fdisk 这支程序是完全不需要背指令的!如同上面的表格中,你只要按下 m 就能够看到所有的动作! 比较重要的动作在上面已经用底线画出来了,你可以参考看看。
删除磁盘分区槽
1. fdisk /dev/hdc :先进入 fdisk 画面;
2. p :先看一下分割槽的信息,假设要杀掉 /dev/hdc1;
3. d :这个时候会要你选择一个 partition ,就选 1 啰!
4. w (or) q :按 w 可储存到磁盘数据表中,并离开 fdisk ;
# 练习一: 先进入 fdisk 的画面当中去!
[root@www ~]# fdisk /dev/hdc
# 练习二: 先看看整个分割表的情况是如何
Command (m for help): p
Disk /dev/hdc: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 * 1 13 104391 83 Linux
/dev/hdc2 14 1288 10241437+ 83 Linux
/dev/hdc3 1289 1925 5116702+ 83 Linux
/dev/hdc4 1926 5005 24740100 5 Extended
/dev/hdc5 1926 2052 1020096 82 Linux swap / Solaris
# 练习三: 按下 d 给他删除吧!
Command (m for help): d
Partition number (1-5): 4
Command (m for help): d
Partition number (1-4): 3
Command (m for help): p
Disk /dev/hdc: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 * 1 13 104391 83 Linux
/dev/hdc2 14 1288 10241437+ 83 Linux
# 因为 /dev/hdc5 是由 /dev/hdc4 所衍生出来的逻辑分割槽,因此 /dev/hdc4 被删除。
新增磁盘分区槽
新增磁盘分区槽有好多种情况,因为新增 Primary / Extended / Logical 的显示结果都不太相同。 底下我们先将 /dev/hdc 全部删除成为干净未分割的磁盘,然后依序新增给大家瞧瞧!
# 练习一: 进入 fdisk 的分割软件画面中,并删除所有分割槽:
[root@www ~]# fdisk /dev/hdc
Command (m for help): d
Partition number (1-5): 4
Command (m for help): d
Partition number (1-4): 3
Command (m for help): d
Partition number (1-4): 2
Command (m for help): d
Selected partition 1
# 由于最后仅剩下一个 partition ,因此系统主动选取这个 partition 删除去!
# 练习二: 开始新增,我们先新增一个 Primary 的分割槽,并指定为 4 号看看!
Command (m for help): n
Command action <==因为是全新磁盘,因此只会问extended/primary而已
e extended
p primary partition (1-4)
p <==选择 Primary 分割槽
Partition number (1-4): 4 <==设定为 4 号!
First cylinder (1-5005, default 1): <==直接按下[enter]按键决定!
Using default value 1 <==开始磁柱就选用默认值!
Last cylinder or +size or +sizeM or +sizeK (1-5005, default 5005): +512M
# 这个地方有趣了!我们知道 partition 是由 n1 到 n2 的磁柱号码 (cylinder),
# 但磁柱的大小每颗磁盘都不相同,这个时候可以填入 +512M 来讥系统自动帮我们找出
# 『最接近 512M 的那个 cylinder 号码』!因为不可能刚好等于 512MBytes 啦!
# 如上所示:这个地方输入得方式有两种:
# 1) 直接输入磁柱的号码,你得要自己计算磁柱/分割槽的大小才行;
# 2) 用 +XXM 来输入分割槽的大小,让系统自己捉磁柱的号码。
# +与M是必项要有的,XX为数字
Command (m for help): p
Disk /dev/hdc: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc4 1 63 506016 83 Linux
# 注意!叧有 4 号! 1 ~ 3 保留下来了!
# 练习三: 继续新增一个,这次我们新增 Extended 的分割槽好了!
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e <==选择的是 Extended 喔!
Partition number (1-4): 1
First cylinder (64-5005, default 64): <=[enter]
Using default value 64
Last cylinder or +size or +sizeM or +sizeK (64-5005, default 5005):
<=[enter]
Using default value 5005
# 还记得我们在第三章的磁盘分区表曾经谈到过的,延伸分割最好能够包扩所有
# 未分割的区间;所以在这个练习中,我们将所有未配置的磁柱都给了这个分割槽喔!
# 所以在开始/结束磁柱的位置上,按下两个[enter]用默认值即可!
Command (m for help): p
Disk /dev/hdc: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 64 5005 39696615 5 Extended
/dev/hdc4 1 63 506016 83 Linux
# 如上所示,所有的磁柱都在 /dev/hdc1 里面啰!
# 练习四: 这次我们随便新增一个 2GB 的分割槽看看!
Command (m for help): n
Command action
l logical (5 or over) <==因为已有 extended ,所以出现 logical 分割槽
p primary partition (1-4)
p <==偷偷玩一下,能否新增主要分割槽
Partition number (1-4): 2
No free sectors available <==肯定不行!因为没有多余的磁柱可供配置
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l <==乖乖使用逻辑分割槽吧!
First cylinder (64-5005, default 64): <=[enter]
Using default value 64
Last cylinder or +size or +sizeM or +sizeK (64-5005, default 5005):
+2048M
Command (m for help): p
Disk /dev/hdc: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hdc1 64 5005 39696615 5 Extended
/dev/hdc4 1 63 506016 83 Linux
/dev/hdc5 64 313 2008093+ 83 Linux
# 这样就新增了 2GB 的分割槽,且由于是 logical ,所以由 5 号开始!
一般来说建立分割槽的形式会有底下的数种状况:
· 1-4 号尚有剩余,且系统未有 extended: 此时会出现让你挑选 Primary / Extended 的项目,且你可以指定 1~4 号间的号码;
· 1-4 号尚有剩余,且系统有 extended: 此时会出现让你挑选 Primary / Logical 癿项目;若选择 p 则你还需要指定 1~4 号间的号码; 若选择 l(L 的小写) 则不需要指定号码,因为系统会自动指定逻辑分割槽的文件名号码;
· 1-4 没有剩余,且系统有 extended: 此时不会让你挑选分割槽类型,直接会进入 logical 的分割槽形式。
磁盘格式化
· mkfs
[root@www ~]# mkfs [-t 文件系统格式] 装置文件名
选项与参数:
-t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
范例一:请将上个小节当中所制作出来的 /dev/hdc6 格式化为 ext3 文件系统
[root@www ~]# mkfs -t ext3 /dev/hdc6
mke2fs 1.39 (29-May-2006)
Filesystem label= <==这里指的是分割槽的名称(label)
OS type: Linux
Block size=4096 (log=2) <==block 的大小设定为 4K
Fragment size=4096 (log=2)
251392 inodes, 502023 blocks <==由此设定决定的inode/block 数量
25101 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=515899392
16 block groups
32768 blocks per group, 32768 fragments per group
15712 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (8192 blocks): done <==有日志记录
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
# 这样就建立起来我们所需要的 Ext3 文件系统了!简单明了!
[root@www ~]# mkfs[tab][tab]
mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.msdos mkfs.vfat
# 按下两个[tab],会出现 mkfs 支持的文件格式如上所示!可以格式化 vfat 喔!
mke2fs 是一个很详细但是很麻烦的指令!因为里面的细部设定太多了!现在我们进行如下的假设:
这个档案系统的标头设定为:vbird_logical
我的 block 指定为 2048 大小;
每 8192 bytes 分配一个 inode ;
建置为 journal 的 Ext3 档案系统。
开始格式化 /dev/hdc6 结果会变成如下所示:
[root@www ~]# mke2fs -j -L "vbird_logical" -b 2048 -i 8192 /dev/hdc6
mke2fs 1.39 (29-May-2006)
Filesystem label=vbird_logical
OS type: Linux
Block size=2048 (log=1)
Fragment size=2048 (log=1)
251968 inodes, 1004046 blocks
50202 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=537919488
62 block groups
16384 blocks per group, 16384 fragments per group
4064 inodes per group
Superblock backups stored on blocks:
16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
# 比较看看,跟上面的范例用默认值的结果,有什么不一样的啊?
其实 mke2fs 所使用的各项选项/参数也可以用在『 mkfs -t ext3 ... 』后面,因为最终使用的公用程序是相同的啦! 特别要注意的是 -b, -i 及 -j 这几个选项,尤其是 -j 这个选项,当没有指定 -j 的时候, mke2fs 使用 ext2 为格式化档案格式,若加入 -j 时,则格式化为 ext3 这个 Journaling 的 filesystem 呦!老实说,如果没有特殊需求的话,使用『 mkfs -t ext3....』不但容易记忆,而且就非常好用啰!
磁盘检验:fsck、badblocks
1:fsck
[root@www ~]# fsck [-t 档案系统] [-ACay] 装置名称
选项与参数:
-t :如同 mkfs 一样,fsck 也是个综合软件而已!因此我们同样需要指定档案系统。不过由于现今的 Linux 太聪明了,他会自动的透过 superblock 去分辨档案系统,因此通常可以不需要这个选项的啰!请看后续的范例说明。
-A :依据 /etc/fstab 的内容,将需要的装置扫瞄一次。/etc/fstab 于下一小节说明, 通常开机过程中就会执行此一指令了。
-a :自动修复检查到的有问题的扇区,所以你不用一直按 y 啰!
-y :与 -a 类似,但是某些 filesystem 仅支持 -y 这个参数!
-C :可以在检验的过程当中,使用一个长条图来显示目前的进度!EXT2/EXT3 的额外选项功能:(e2fsck 这支指令所提供)
-f :强制检查!一般来说,如果 fsck 没有发现任何 unclean 的旗标,不会主动进入细部检查的,如果您想要强制 fsck 进入细部检查,就得加上 -f 旗标啰!
-D :针对档案系统下的目录进行最佳化配置。
范例一:强制的将前面我们建立的 /dev/hdc6 这个装置给他检验一下!
[root@www ~]# fsck -C -f -t ext3 /dev/hdc6
fsck 1.39 (29-May-2006)
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
vbird_logical: 11/251968 files (9.1% non-contiguous), 36926/1004046 blocks
# 如果没有加上 -f 的选项,则由于这个档案系统不曾出现问题,
# 检查的经过非常快速!若加上 -f 强制检查,才会一项一项的显示过程。
范例二:系统有多少档案系统支持的 fsck 软件?
[root@www ~]# fsck[tab][tab]
fsck fsck.cramfs fsck.ext2 fsck.ext3 fsck.msdos fsck.vfat
这是用来检查与修正档案系统错误的指令。注意:通常只有身为 root 且你的档案系统有问题的时候才使用这个指令,否则在正常状况下使用此一指令, 可能会造成对系统的危害!通常使用这个指令的场合都是在系统出现极大的问题,导致你在 Linux 开机的时候得进入单人单机模式下进行维护的行为时,才必须使用此一指令!另外, 如果你怀疑刚刚格式化成功的硬盘有问题的时后,也可以使用 fsck 来检查一硬盘呦!其实就有点像是 Windows 的 scandisk 啦!此外,由于 fsck 在扫瞄硬盘的时候,可能会造成部分 filesystem 的损坏,所以『执行 fsck 时, 被检查的 partition 务必不可挂载到系统上!亦即是需要在卸载的状态喔!』
2badblocks
[root@www ~]# badblocks -[svw] 装置名称
选项与参数:
-s :在屏幕上列出进度
-v :可以在屏幕上看到进度
-w :使用写入的方式来测试,建议不要使用此一参数,尤其是待检查的装置已有档案时!
[root@www ~]# badblocks -sv /dev/hdc6
Checking blocks 0 to 2008093
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found.
刚刚谈到的 fsck 是用来检验档案系统是否出错,至于 badblocks 则是用来检查硬盘或软盘扇区有没有坏轨的指令! 由于这个指令其实可以透过『 mke2fs -c 装置文件名 』在进行格式化的时候处理磁盘表面的读取测试, 因此目前大多不使用这个指令啰!
- Linux学习笔记(七)
- Linux学习笔记(七)
- Linux学习笔记(七)
- Linux学习笔记(七)
- Linux学习笔记(七)
- linux学习笔记(七)
- LINUX学习笔记(七)
- Linux学习笔记七
- Linux学习笔记七
- Linux 学习笔记(七)增加硬盘
- Linux学习笔记(七)--文件系统管理
- Linux Shell学习笔记七
- [Linux]C++学习笔记(七)
- Linux学习笔记之七
- 学习笔记(七)
- Linux学习笔记(七)-Linux内核分析
- Linux学习(七)
- Linux系统编程学习笔记(七)内存管理
- HockeyKit框架介绍
- js数组操作大全
- jpeglib使用
- exe4j使用
- Android 如何防止代码被反编译
- Linux学习笔记(七)
- poj1015
- string to int
- android 小笔记一
- 把矩阵0元所在行列设置为0
- MyEclipse启动Address already in use: JVM_Bind<null>:8080
- sqlplus prelim选项 常规情况下sqlplus无法登录
- html静态页面为什么中文乱码
- asp.net水晶报表push模式