CSDN的排版真是烂到家了,真心不好,所有的制表符都被自动删除了,非常影响阅读
博文如有错误请指正,不胜感激
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
目录
- Linux各目录作用(准备知识)
- Linux分区的误区
- 挂载点、分区、文件目录的关系(以windows与Linux对比)
- 桌面环境使用的系统如何分区?(新手的一般分区方案)
- 分区基本知识
- 使用fdisk进行分区
- 使用mnt命令进行挂载
- 启动自动挂载
-------------------------------------------------------
各目录作用(仅列出需要考虑分区的目录)
-------------------------------------------------------
/boot 内核和在启动系统过程中所要用到的文件
/usr 主要程序、 图形接口所需要的档案、额外的函式库、自行安装的软件,以及共享的目录与文件等等
/home 用户家目录
/var/log系统日志
/tmp存放应用程序临时文件
/bin系统实用程序
/dev存放设备文件
/opt存放可安装的软件
/sbin系统管理程序文件
/swap分区够用就行
/ 系统分区
------------------------------------------------------------------------------------------------
系统分区的误区
------------------------------------------------------------------------------------------------
/var/log(一般教程说越大越好)存放系统日志,服务器才用的到,而且新手即使在系统崩溃后也无法看懂日志内容,所以不必单独分区,或说分区给予空间不必太大。
/boot分区100MB因为lilo问题
/swap分区没有必要是内存的两倍,这个真心没必要,那些教程都是老的,是在以前内存不太大的时候建议这样分区,但现在如果你内存有4G,难道你要为虚拟内存分8G吗?根据实际情况,够用就行。
SATA硬盘不存在主从盘问题,主从盘的跳线设置是在以IDE为接口使用两块硬盘出现的情况,所以你的硬盘是STAT接口的时候,不必担心主从盘问题。
-----------------------------------------------------------------------------------------------
挂载点、分区、文件目录的关系(以windows与Linux对比,请对比阅读)
---------------------------------------------------------------------------------------------Linux通过挂载使系统能够访问分区内的资源,挂载点可以是任何目录,如:/,/usr,/home/user1,而且挂载点(即所挂载的目录)及其挂载点之后的子文件子文件夹都存在在所挂载的分区。例:把/dev/sda2挂载到/home/user下,那么/home/user/*都存在在第一块硬盘的第二个分区上(即分区/dev/sda2)。
windows也通过挂载是系统的能够访问分区内的资源,只不过windows是自动挂载(分区完成后重启系统就挂载上了)。挂载点不是任意目录,只能是C,D,E等分区号,即只能挂载在C:\上,而不可挂载在C:\music\上。
总结:简单的说既是windows的目录和分区是关联的,可以理解为C:\就是分区,是挂载点,也是目录。在Linux中分区与目录是相互独立的,Linux的分区可以挂载到任意的目录上,该目录就是挂载点。
------------------------------以下为从网上找的资料,帮助理解----------------------------------------------------------------
Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:C,D,E,F等。Linux的文件结构是单个的树状结构。最顶部的为根目录,即/。在根目录下,分为多个子目录。
对习惯于使用dos或windows的用户来说,有几个分区就有几个驱动器,并且每个分区都会获得一个字母标识符,然后就可以选用这个字母来指定在这个分区上的文件和目录,它们的文件结构都是独立的,非常好理解。但对这些初上手 red hat linux的用户,可就有点恼人了。因为对red hat linux用户来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构。red hat linux中每个分区都是用来组成整个文件系统的一部分,因为它采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
Windows中,盘符既用于表示硬件(硬盘上的分区),又用于表示系统中的路径。而Linux中,硬件就是硬件,路径就是路径,不会混淆在一起,简单直接!
-----------------------------------------------------------------------------------------
新手的一般分区方案(假设有100G的空间,2G的内存空间)
-----------------------------------------------------------------------------------------
最简单方法
挂载点大小说明
/10G一般教程都建议5G,若文件没有属于自己的分区,则都在根分区下,所以不能太小
/swap1G~2G
/home剩余全部
麻烦点的
/10G
/swap1G~2G
/usr10G用于装各种软件
/home剩余全部也可以剩余一部分用于创建分区时的练习^_^
-----------------------------------------------------------------------------------------
分区基本知识
-----------------------------------------------------------------------------------------
- 硬盘属性名词
- IDE接口识别为hd开头,SATA、SCSI、USB接口识别为sd开头
- /dev/sda /dev/sda1 /dev/sda2 a表示第几块硬盘,1和2表示第几分区
- 分区有两种形式:MBR与GTP。
MBR传统分区机制:
- 是应用大多数BIOS的PC设备
- MBR支持32bit与64bit系统
- 分区数量有限
- MBR最大支持不超过2T硬盘
- 占用硬盘开头512字节
446引导代码
16
16
16
16
55AA可启动标识
GTP较新分区机制:
- 支持超过2T磁盘
- 向后兼容MBR(必须支持UEFI)
- UEFI:可以看做BIOS(基本输入输出)的升级
- 必须使用64bit系统
分区是一种软件分区,以MBR为例,分区只是在MBR中(即硬盘头512字节)写入分区信息。
55AA是可启动标识,制作U盘启动盘最重要的就是在MBR写入55AA,表示可启动。
前446的引导代码引导硬盘读取操作系统的启动程序(即init)。
中间每16字节的空间用于记录分区,记录分区从哪个扇区到哪个扇区。如果是扩展分区则记录逻辑分区所在位置,引导系统读取逻辑分区内容。
------------------------------------------------------------------------------------------
使用fdisk进行磁盘分区
------------------------------------------------------------------------------------------
基于MBR的分区工具
root才能使用
fdisk
-l显示已有分区
'磁盘名'
n新分区
分区类型
p主分区——起始柱面————结束柱面
e扩展分区——起始柱面————结束柱面
l逻辑分区——起始柱面————结束柱面
p列出分区号
w保存分区号
t分区号
L列出分区类型
w写入并保存
有时系统不能读取新建的分区,使用partprobe命令可更新。
例:
[root@linux-brids /]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002b1cf
Device Boot Start End Blocks Id System
/dev/sda1 * 1 262 2097152 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 262 1567 10485760 83 Linux
/dev/sda3 1567 2089 4194304 83 Linux
/dev/sda4 2089 2611 4193280 5 Extended
/dev/sda5 2090 2220 1048576 83 Linux
/dev/sda6 2220 2285 524288 82 Linux swap / Solaris
#分区号 起始柱面 结束柱 容量 分区类型 分区类型解释
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
---------------------------------------------------------------------------------------------
为分区创建文件系统(格式化)
---------------------------------------------------------------------------------------------
基础知识
- 直接分区好的分区是不能用的
- 文件系统:操作系统通过文件系统进行文件和数据的管理
- 创建文件系统又名格式化
- 常见文件系统:
fat32NTFSext2/ext3/ext4xfsHFSiso9660
Windows下是fat32和NTFS,现在一般使用NTFS
Linux下一般使用ext系列,现在一般用ext4
文件系统间区别:日志,分区大小,单个文件大小,性能
进行分区
mke2fs
-t '系统类型' 磁盘分区
-b 'blocksize' 块大小,4k
-c 检查坏块
-L label 指定卷标
语法:mke2fs -L 'lable name' /dev/sdb*
-j 建立文件系统日志,ext3ext4默认拥有系统日志
例:
[root@linux-brids ~]# mke2fs -t ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262944 inodes, 1050241 blocks
52512 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1077936128
33 block groups
32768 blocks per group, 32768 fragments per group
7968 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
dumpe2fs '查看分区信息'
带日志的文件系统:两阶段提交
操作前把具体操作内容写入日志
文件系统进行操作
操作成功后,删除日志
通过查询日志进行恢复操作
但丧失性能
给系统打标签
e2label
'系统分区' 显示标签
'系统分区' 写入标签
fsck:检查并修复损坏的文件系统
fsck '磁盘分区'(必须先卸载)
-y 不提示直接修复
系统启动时默认会对磁盘进行fsck检查磁盘
---------------------------------------------------------------------------------------------
文件系统进行挂载与卸载
---------------------------------------------------------------------------------------------
- 创建文件系统后还是不能用,还需要挂载文件系统
- 所有系统都有挂载:Linux,Mac在创建后都会自动挂载
- 挂载到任何地方都可以,建议挂载到/mnt/
- 如果要挂载两个或两个以上的分区,可在/mnt/目录下建立新文件夹,供不同分区挂载
mount(挂载)
显示已挂载的分区(不加参数)
'所要挂载的分区' '挂载点'
-t指定文件系统类型
-o指定挂载选项
ro,rw只读与读写形式挂载
sync,async不使用(使用)缓存
remount重新挂载分区
umount(卸载)
'文件系统or挂载点'
如果该系统正在使用时,无法挂载
fuser -m /mnt查看文件系统使用进程
lsof /mnt查看正在被使用的文件
-----------------------------------------------------------------------------------------------------
自动挂载
-----------------------------------------------------------------------------------------------------
使用mount挂载只是临时挂载,当系统重新启动后,需重新挂载
/etc/fstab:自动挂载配置文件
挂载方式:
设备名:sda1,sdb2
卷标:LABLE='lablename'
UUID
*****************************************************************
UUID=20d82899-3ce5-41ce-bd17-03203a8a34ee / ext4 defaults 1 1
UUID=88f14719-46b0-4c23-9395-6587c0cd37aa /boot ext4 defaults 1 2
UUID=875b9dd3-6219-4280-a0f8-4efb6bf2a9ce /home ext4 defaults 1 2
UUID=5ecfde00-d38f-467c-a8d5-e474098c32c5 /other ext4 defaults 1 2
UUID=0d6dffa4-b4df-490c-a30d-aafdfa4d44c4 swap swap defaults 0 0
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
12 345 6
1设备名,卷标或UUID
2挂载点
3分区文件系统
4文件系统参数:async/sync(异步/同步);auto/noauto(自动/不自动);rw/ro(可写/只读);
5备份命令:1是备份2是不备份
6fsck检验分区:1是校验0是不要校验
实例:为文件系统为ext4的/dev/sdb2分区设置自动挂载,挂载到目录/home/user2下。
步骤:
1. 进入root用户
2. vim /etc/fstab
3. 在里面加入:
/dev/sdb2 /home/user2 ext4 sync,auto,rw 0 0
4. :wq保存退出,重启即可自动挂载