Linux主分区,扩展分区,逻辑分区[final]

本文详细介绍MBR分区原理,包括磁盘分区类型、分区数量限制及其实际应用。解释了主分区与扩展分区的区别,并给出了如何合理规划磁盘空间的建议。

[root@dbtest ~]# fdisk  /dev/sda

/dev/sda 表示一個scsi磁盤(或者劃分RAID后的給出的類似一塊磁盤的區域,比如
10块盘劃分一個RAID5 ; 如果10块盘划分為4塊RAID10,6塊RAID5, 那么磁盤编号
类似 /dev/sda, /dev/sdb ) ,


[root@dbtest ~]# fdisk -l
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          65      522081   83  Linux
/dev/sda2              66        7714    61440592+  83  Linux
/dev/sda3            7715       12813    40957717+  83  Linux
/dev/sda4           12814       19457    53367930    5  Extended
/dev/sda5           12814       14118    10482381   83  Linux
/dev/sda6           14119       14640     4192933+  83  Linux
/dev/sda7           14641       14901     2096451   82  Linux swap / Solaris
/dev/sda8           14902       15162     2096451   83  Linux
/dev/sda9           15163       15227      522081   83  Linux

一個磁盘可以划分为4 个 (Primary + Extended) 的扇区, 最多可以设置P+P+P+P
或者P+P+P+E , P代表主分区,E代表扩展分区。扩展分区本身不可用,需要进一步
在扩展分区区域划分逻辑分区才能使用  。比如上面sda1,2,3 是三个主分区,sd4
是扩展分区,Extended是后面逻辑分区的综合,后面的5,6,7,8,9是扩展分区下
划分的逻辑分区 。Id 中83表示普通分区,85表示扩展分区,详见:

ID System
82 Linux swap
83 Linux
85 Linux extended
8e Linux LVM

 

 

 

参考资料 : 

-----------------------------------------------------------------------

MBR(Master Boot Recorder)主要开机扇区,放置硬盘的信息。MBR 可以说是整个硬盘最重要的地方了,因为在 MBR 里面记录了两个重要的东西,分别是:开机管理程序,与磁盘分区表 ( partition table )。所以我们所做的硬盘分区,也就是在修改partition table。

由于这个 MBR 区块的容量有限,所以,当初设计的时候,就只有设计成 4 个分区纪录,这些分区记录就被称为 Primary ( 主分区 ) 及 Extended ( 扩展分区 ) ,也就是说,一颗硬盘最多可以有 4 个 Primary + Extended 的扇区,其中,Extended 只能有一个,因此,你如果要分区成四块磁盘分区的话,那么最多就是可以:

P + P + P + P

P + P + P + E

的情况来分区了。需要特别留意的是,如果上面的情况中, 3P +E 只有三个『可用』的磁盘,如果要四个都『可用』,就得分区成 4P 了!( 因为 Extended 不能直接被使用,还需要分区成 Logical 才行)

思考一:如果我要将我的大硬盘暂时分区成四个 partition ,同时,还有其它的空间可以让我在未来的时候进行规划,那么该如何分区?

由刚刚的说明,我们可以知道, Primary + Extended 最多只能有四个 partition,而如果要超过 5 个 partition 的话,那么就需要 Extended 的帮忙。因此,在这个例子中,我们千万不能分区成四个 Primary 为什么呢?假如您是一个 20 GB 的硬盘,而 4 个 primary 共用去了 15 GB ,您心想还有 5 GB 可以利用对吧?错!剩下的 5 GB 完全不能使用,这是因为已经没有多余的 partition table 纪录区可以记录了,因此也就无法进行额外的分区,当然啰,空间也就被浪费掉了!因此,请千万注意,如果您要分区超过 4 槽以上时,请记得一定要有 Extended 分区区,而且必须将所有剩下的空间都分配给 Extended ,然后再以 logical 的分区区来规划 Extended 的空间。

本文来自: (www.91linux.com) 详细出处参考:http://www.91linux.com/html/article/partition/20080804/13081.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-676000/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-676000/

广州商学院 现代信息产业学院2025—2026学年第1学期 《Linux操作系统与应用》考查内容 一、项目内容 本课程设计考查内容覆盖本学期讲授的全部章节,采用实机操作方式答题,需在科任教师要求截止时间前完成,将各题设计操作结果按步骤编号、截图、并以文字说明操作方法附至题目下方,按照实验报告形式完成,并将完成后的文档提交到学习通。 文档命名方式:学号+姓名.docx 如: 20221209010_张三.docx 考核任务背景说明: 你作为某企业运维工程师,需为公司新购服务器(基于OpenEuler系统)搭建标准化运维环境,涵盖系统安装、用户权限、磁盘管理、网络安全、服务部署全流程。所有操作需在虚拟机中独立完成,确保环境可复现。 1. 任务一:OpenEuler虚拟机环境搭建(10分) 使用VMware Workstation新建虚拟机,安装OpenEuler 24.03 LTS x86_64系统,要求: (1) 总容量20GB,接口类型为SCSI (2) 分区方案:需保留至少5GB未分配空间 (3) 主机名:studentXX-openeuler(XX为学号后两位) (4) 启用root账户,创建初始用户user 2. 任务二:用户与组权限管理(20分) 创建一个基于“班级协作项目”工作环境,便于未来多用户进行操作 (1) 创建组class(GID=学号后三位,如学号20240001则GID=001) (2) 创建用户xxx_user1、xxx_user2(xxx为姓名缩写) (3) 将用户xxx_user1添加至class组 (4) 创建共享目录/data/class_project,属主root,属组class, (5) 在/data/class_project下创建子目录:docs和reports a) docs(仅class组成员可访问) b) reports(仅xxx_user1可写入) c) 使用setfacl为xxx_user2授予reports目录写入权限 (6) 在docs目录创建project_plan.txt,内容为:(xxxxxxx为学生完整学号) “Project Plan for Class Project Student ID: xxxxxxx” (7) 追加个人姓名缩写到project_plan.txt,并展示文件内容 (8) 修改project_plan.txt权限为属主可读写,组内只读 (9) 至xxx_user2,验证其在docs和reports目录的操作权限 (10) 生成/data目录的完整文件树,并检查ACL配置 3. 任务三:磁盘管理与配额(20分) 模拟服务器扩容场景,添加并配置新磁盘 (1) 在VMware中为虚拟机添加1块虚拟磁盘 (容量=学号后一位+1)× 3GB,如学号后两位“05”则18GB (2) 新硬盘设置分区分区类型 分区大小 文件系统类型 挂载目录 主分区1 总容量50% ext4 /mnt/devteam1 逻辑分区 逻辑分区1 总容量30% ext4 /mnt/devteam2 逻辑分区2 总容量20% xfs /mnt/devteam3 注:主分区1与逻辑分1为临时挂载,逻辑分区2为自动挂载 (3) 启用配额,设置xxx_user1对/mnt/devteam3的限额为: 软限制:3,硬限制:5(用dd验证) 已经修改 /etc/fstab 添加 usrquota 参数,卸载并重新挂载 /mnt/devteam3, 使用 xfs_quota -x -c 'limit -u ...' 设置用户配额;多次尝试启用用户配额(quota on -u 和 enable -u),但系统依旧返回错误; (4) 给初始硬盘添加扩展分区,要求完成创建PV,创建VG,创建LV,格式化并挂载LV,以及动态扩容的操作。 分区类型 分区大小 分区命名 文件系统 挂载目录 特殊说明 物理卷(PV) 5G pv_data LVM基础 卷组(VG) 5G vg_storage 可扩展 逻辑卷(LV) 3G lv_www ext4 /var/www 初始分配 扩展后LV 5G lv_www ext4 /var/www 动态扩容 4. 任务四:Shell脚本开发(20分) 编写2个独立脚本,综合应用Shell编程核心语法,实现自动化运维场景: 脚本1:批量用户生命周期管理(script1.sh) (1) 参数传递:支持-a 用户名(添加用户并加入class组)、-d 用户名(删除用户及家目录) (2) 测试条件选择:若用户不存在则提示创建,存在则提示是否强制删除 (3) 全局变量:定义USER_PREFIX="stu",生成标准化用户名(如stu_001) (4) 键盘读取:允许手动输入用户UID范围(如1000-2000) #!/bin/bash # Author: 202312410443_zrs USER_PREFIX="stu" # 全局变量:用户名前缀 GROUP_NAME="class" # 指定组名 # 检查是否为 root 用户运行 if [ "$(id -u)" -ne 0 ]; then echo "错误:此脚本必须以 root 权限运行!" exit 1 fi # 提示用户输入 UID 范围(如 1000-2000) read -p "请输入允许的UID范围(格式:最小-最大,例如1000-2000):" uid_range # 使用 IFS 分割字符串并赋值给 min_uid 和 max_uid IFS='-' read min_uid max_uid <<< "$uid_range" # 初始化选项标志 action="" target_name="" # 解析命令行参数 while getopts "a:d:" opt; do case $opt in a) action="add" target_name="$OPTARG" ;; d) action="delete" target_name="$OPTARG" ;; *) echo "用法: $0 -a <用户名> | -d <用户名>" exit 1 ;; esac done # 根据动作执行逻辑 if [ "$action" = "add" ]; then final_user="${USER_PREFIX}_${target_name}" # 检查用户是否存在 if id "$final_user" &>/dev/null; then echo "用户 $final_user 已存在,无需重复创建。" else # 在指定 UID 范围内寻找可用 UID assigned_uid="" for uid in $(seq "$min_uid" "$max_uid"); do if ! id -u "$uid" &>/dev/null; then useradd -m -u "$uid" -g "$GROUP_NAME" "$final_user" assigned_uid="$uid" break fi done # 判断是否成功分配 if [ -n "$assigned_uid" ]; then echo "✅ 成功创建用户:$final_user,UID=$assigned_uid,已加入组 $GROUP_NAME" else echo "❌ 错误:无可用 UID 可分配,请扩大范围。" exit 1 fi fi elif [ "$action" = "delete" ]; then final_user="${USER_PREFIX}_${target_name}" if id "$final_user" &>/dev/null; then read -p "⚠️ 确认删除用户 $final_user 及其家目录?(y/N): " confirm if [[ "$confirm" =~ ^[Yy]$ ]]; then userdel -r "$final_user" echo "🗑️ 用户 $final_user 及其家目录已删除。" else echo "取消删除操作。" fi else echo "❌ 用户 $final_user 不存在,无法删除。" fi else echo "❌ 未提供有效操作,请使用 -a 或 -d 参数。" exit 1 fi 脚本2:日志分析统计(script2.sh) (1) 循环机制:遍历/var/log下所有.log文件 (2) 随机数应用:模拟日志生成器并输出到/tmp/test.log (3) 算术运算:统计日志文件大小总和输出到屏幕 (4) 键盘读取:允许用户指定日志文件名过滤条件 以上脚本开头注释必须包含学号水印: # Author: 学号_姓名缩写 #!/bin/bash # Author: 202312410443_zrs log_dir="/var/log" # 日志目录 output_file="/tmp/test.log" # 模拟日志输出路径 total_size=0 # 初始化总大小计数器 # 清空旧日志(避免干扰) > "$output_file" echo "🔄 正在生成模拟日志到 $output_file..." # 循环生成 50 条随机日志 for i in {1..50}; do timestamp=$(date '+%Y-%m-%d %H:%M:%S') level=$(shuf -e "INFO" "WARN" "ERROR" "DEBUG" | head -n1) message="Event triggered at $timestamp [module=random_module]" echo "[$timestamp] [$level] $message" >> "$output_file" done echo "✅ 模拟日志生成完毕,共50条记录。" # 请求用户输入过滤关键词 read -p "🔍 请输入要搜索的日志文件关键字(如 messages, secure, .log): " keyword echo "" echo "📁 正在扫描 /var/log 中包含 '$keyword' 的 .log 文件..." # 遍历所有匹配 *.log 的文件 for file in "$log_dir"/*"$keyword"*.log; do if [[ -f "$file" ]]; then size=$(stat -c %s "$file") # 获取字节大小 total_size=$((total_size + size)) human_size=$(numfmt --to=iec $size) # 转换为 KiB/MiB 显示 echo "📄 $file → $human_size" fi done # 输出总大小(人性化单位) human_total=$(numfmt --to=iec $total_size) echo "" echo "📊 匹配日志文件总大小:$total_size 字节 ($human_total)" # 显示模拟日志前10行 echo "" echo "📋 === /tmp/test.log 前10行预览 ===" head -n 10 "$output_file" 提交测试记录包括: ./script1.sh -a stu_$(id -u)测试用户创建(测试xxx_user2) ./script2.sh生成的日志文件/tmp/test.log内容截图 5. 任务五:网络与安全配置(含Samba,Nginx服务)(20分) 验证服务器网络基础功能,排查潜在问题并确保服务可用性 (1) 运行对应命令,截图显示网卡名称、IP地址、MAC地址信息,并说明哪一个字段是对应信息 ens160是网卡,inet 192.168.136.133是IP地址,link/ether是MAC地址。 (2) 使用命令测试连接主机(当前电脑)与外网(百度),并确认防火墙状态 (3) 对防火墙设置开放SSH(22)、HTTP(80)、Samba(445)端口 (4) 查看已安装软件(前5行即可)和当前的软件源 (5) 安装Samba,并用Windows和smbclient测试 a) 创建共享目录/date/samba/xxx_share(xxx为姓名缩写) b) 创建Samba共享账号xxx_smb,并配置/etc/samba/smb.conf: 共享xxx_share,允许xxx_smb读写,其他用户只读 (6) 安装nginx,并本地验证,需显示Nginx欢迎页 (7) 利用MobaXterm工具远程连接管理linux系统,使用命令修改主机名,并重新连接查看到成功 6. 任务六:进程与服务系统管理(10分) 作为企业运维工程师,你需优化公司Web服务器的性能与稳定性。当前服务器运行Nginx服务,但因突发流量导致CPU过载。请通过进程管理、服务控制和资源监控手段解决以下问题: (1) 使用stress-ng工具模拟CPU负载,设置4个CPU进程,持续5分钟 (2) 另开终端显示进行实时进程监控,并把stress-ng进程的PID、CPU占用率、NI值,并截图 (3) 调整其中一个stress-ng进程的NI值调整为-10,并查看当前用户的资源限制 (4) 杀死所有stress-ng进程,并验证当前的资源恢复 (5) 用bash模拟一个多线程任务(启动4个后台sleep线程) (6) 记录进程组的PGID和父进程PID,输出包含进程ID、线程ID、CPU核心编号、CPU占用率,最后再状图显示线程关系,以上记录用截图保存结果 (7) 对已部署Nginx,执行查看状态,设置开机启动,重启,查看依赖关系 (8) 用journalctl查看Nginx最近10条日志,并截图保存 我的名字缩写是zrs,学号是202312410443,现在做到任务五[root@student43-openeuler ~]# ip a show | grep inet inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host noprefixroute inet 192.168.136.133/24 brd 192.168.136.255 scope global dynamic noprefixroute ens160 inet6 fe80::20c:29ff:fed7:91ef/64 scope link noprefixroute inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 [root@student43-openeuler ~]# smbclient //198.168.136.133/zrs_share -U zrs_smb Password for [SAMBA\zrs_smb]: do_connect: Connection to 198.168.136.133 failed (Error NT_STATUS_IO_TIMEOUT) [root@student43-openeuler ~]# smbclient //192.168.136.133/zrs_share -U zrs_smb Password for [SAMBA\zrs_smb]: session setup failed: NT_STATUS_LOGON_FAILURE [root@student43-openeuler ~]# pdbedit -L | grep zrs_smb zrs_smb:1003: [root@student43-openeuler ~]# id zrs_smb uid=1003(zrs_smb) gid=1003(zrs_smb) 组=1003(zrs_smb) [root@student43-openeuler ~]# usermod -aG class zrs_smb [root@student43-openeuler ~]# id zrs_smb uid=1003(zrs_smb) gid=1003(zrs_smb) 组=1003(zrs_smb),443(class) [root@student43-openeuler ~]# chown -R root:class /date/samba/zrs_share [root@student43-openeuler ~]# chmod -R 775 /date/samba/zrs_share [root@student43-openeuler ~]# systemctl restart smb [root@student43-openeuler ~]# smbclient //192.168.136.133/zrs_share -U zrs_smb Password for [SAMBA\zrs_smb]: session setup failed: NT_STATUS_LOGON_FAILURE [root@student43-openeuler ~]# smbclient //10.23.82.200/zrs_share -U zrs_smb Password for [SAMBA\zrs_smb]: session setup failed: NT_STATUS_LOGON_FAILURE [root@student43-openeuler ~]# smbclient -L //10.23.82.200 -U zrs_smb Password for [SAMBA\zrs_smb]: session setup failed: NT_STATUS_LOGON_FAILURE [root@student43-openeuler ~]#
12-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值