magedu pro 第六周作业

1、请详细描述 系统的启动流程(详细到每个过程系统做了哪些事情)。

由于篇幅过长,已单独写成一篇博客,详见:《CentOS 系统启动流程

2、为运行于虚拟机上的 CentOS 6 添加一块新硬件,提供两个主分区。

  • (1)为硬盘新建两个主分区;并为其安装
  • (2)为硬盘的第一个主分区提供内核和 ramdisk 文件;为第二个分区提供 rootfs 。
  • (3)为 rootfs 提供 、 ls 、 程序及所依赖的库文件。
  • (4)为 grub 提供配置文件。
  • (5)将新的硬盘设置为第一启动项并能够正常启动目标主机。

Continue reading “magedu pro 第六周作业”

magedu pro 第六周作业

magedu pro 第四周作业

1、创建一个10G分区,并格式为ext4文件系统;

(1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;
(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;

# 创建分区

[hzz@ ~]$ sudo  /dev/sdb
欢迎使用  (util- 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x9cfbcaa9 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-31457279,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-31457279,默认为 31457279):+10G
分区 1 已设置为  类型,大小设为 10 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re- partition table.
正在同步磁盘。
[hzz@magedu ~]$

# 格式化分区并按要求创建 ext4 文件系统

[hzz@magedu ~]$ sudo mkfs.ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=MYDATA
OS type: 
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks
104857 blocks (2.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=273678336
320 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
        16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104, 
        2048000, 3981312

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成   

[hzz@magedu ~]$ 

# 确认默认挂载属性(Default mount options)

[hzz@magedu ~]$ sudo tune2fs -l /dev/sdb1
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   MYDATA
Last mounted on:          <not available>
Filesystem UUID:          d857478c-911f-4888-a4ee-2fbbf22671a1
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_ dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       
Inode count:              655360
Block count:              5242880
Reserved block count:     104857
Free blocks:              5121266
Free inodes:              655349
First block:              0
Block size:               2048
Fragment size:            2048
Group descriptor size:    64
Reserved GDT blocks:      512
Blocks per group:         16384
Fragments per group:      16384
Inodes per group:         2048
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Thu Jul 27 20:49:22 2017
Last mount time:          n/a
Last write time:          Thu Jul 27 20:49:22 2017
Mount count:              0
Maximum mount count:      -1
Last checked:             Thu Jul 27 20:49:22 2017
Check interval:           0 (<none>)
Lifetime writes:          65 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      cb8604c6-6cfd-4aae-9734-0c775d88a2c1
Journal backup:           inode blocks
[hzz@magedu ~]$ 

# 如默认存在 acl ,则去掉另配(练习操作)

[hzz@magedu ~]$ sudo tune2fs -o ^acl /dev/sdb1
tune2fs 1.42.9 (28-Dec-2013)
[hzz@magedu ~]$ sudo tune2fs -l /dev/sdb1     
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   MYDATA
Last mounted on:          <not available>
Filesystem UUID:          d857478c-911f-4888-a4ee-2fbbf22671a1
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       
Inode count:              655360
Block count:              5242880
Reserved block count:     104857
Free blocks:              5121266
Free inodes:              655349
First block:              0
Block size:               2048
Fragment size:            2048
Group descriptor size:    64
Reserved GDT blocks:      512
Blocks per group:         16384
Fragments per group:      16384
Inodes per group:         2048
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Thu Jul 27 20:49:22 2017
Last mount time:          n/a
Last write time:          Thu Jul 27 20:53:33 2017
Mount count:              0
Maximum mount count:      -1
Last checked:             Thu Jul 27 20:49:22 2017
Check interval:           0 (<none>)
Lifetime writes:          65 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      cb8604c6-6cfd-4aae-9734-0c775d88a2c1
Journal backup:           inode blocks
[hzz@magedu ~]$ 

[hzz@magedu ~]$ sudo tune2fs -o acl /dev/sdb1 
tune2fs 1.42.9 (28-Dec-2013)
[hzz@magedu ~]$ sudo tune2fs -l /dev/sdb1    
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   MYDATA
Last mounted on:          <not available>
Filesystem UUID:          d857478c-911f-4888-a4ee-2fbbf22671a1
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       
Inode count:              655360
Block count:              5242880
Reserved block count:     104857
Free blocks:              5121266
Free inodes:              655349
First block:              0
Block size:               2048
Fragment size:            2048
Group descriptor size:    64
Reserved GDT blocks:      512
Blocks per group:         16384
Fragments per group:      16384
Inodes per group:         2048
Inode blocks per group:   256
Flex block group size:    16
Filesystem created:       Thu Jul 27 20:49:22 2017
Last mount time:          n/a
Last write time:          Thu Jul 27 20:54:15 2017
Mount count:              0
Maximum mount count:      -1
Last checked:             Thu Jul 27 20:49:22 2017
Check interval:           0 (<none>)
Lifetime writes:          65 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      cb8604c6-6cfd-4aae-9734-0c775d88a2c1
Journal backup:           inode blocks
[hzz@magedu ~]$ 

# 按要求挂载分区

[hzz@magedu ~]$ sudo mkdir -p /data/mydata
[hzz@magedu ~]$ sudo mount -o noexec,noatime /dev/sdb1 /data/mydata   
[hzz@magedu ~]$ mount |  mydata
/dev/sdb1 on /data/mydata type ext4 (rw,noexec,noatime,seclabel,data=ordered)
[hzz@magedu ~]$

Continue reading “magedu pro 第四周作业”

magedu pro 第四周作业

为什么虚拟主机会有 inode 限制

背景

最近一个虚拟主机群里经常会有群成员问, 节点是什么,为什么有 inode 节点不足的告警。在我的印象中,很多国内的虚拟主机商在销售主机时,很少会提及 inode 限制,大多只是 内存磁盘容量 。虽然 inode 节点的限制对于一般的博客网站来说影响不大(文件站和图片站除外),但也有很多主机商设置了 inode 告警,来提醒用户注意,由此引发了以上及以下讨论。

Continue reading “为什么虚拟主机会有 inode 限制”

为什么虚拟主机会有 inode 限制

Btrfs 文件系统简介

简介

文件系统似乎是内核中比较稳定的部分,多年来,人们一直使用 ext2/3,ext 文件系统以其卓越的稳定性成为了事实上的 标准文件系统。近年来 ext2/3 暴露出了一些扩展性问题,于是便催生了 ext4 。在 2008 年发布的 2.6.19 内核中集成了 ext4 的 dev 版本。 2.6.28 内核发布时,ext4 结束了开发版,开始接受用户的使用。似乎 ext 就将成为 文件系统的代名词。然而当您阅读很多有关 ext4 的文章时,会发现都不约而同地提到了 ,并认为 ext4 将是一个过渡的文件系统。 ext4 的作者 Theodore Tso 也盛赞 并认为 将成为下一代 Linux 标准文件系统。 Oracle,IBM, Intel 等厂商也对 表现出了极大的关注,投入了资金和人力。

—— 来自 ibm.com

Continue reading “Btrfs 文件系统简介”

Btrfs 文件系统简介

magedu pro 第二周作业

1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

# 常用的文件管理类命令有:cp,mv,rm

# cp是一个拷贝命令,常用参数:
# -i # 交互式
# -r # 递归
# -a # 全属性复制(包含-dR --preserve=all)
# 示例:

[hzz@e25f88eebde1 ~]$ cp -i test.txt /tmp/
cp: overwrite '/tmp/test.txt'? y
[hzz@e25f88eebde1 ~]$

[hzz@e25f88eebde1 ~]$ ls -ld test
drwxrwxr-x 2 hzz hzz 6 Dec  9 08:09 test
[hzz@e25f88eebde1 ~]$ cp -r test /tmp/    
[hzz@e25f88eebde1 ~]$ ls -ld /tmp/test
drwxrwxr-x 3 hzz hzz 17 Dec  9 08:11 /tmp/test
[hzz@e25f88eebde1 ~]$

[hzz@e25f88eebde1 ~]$ ln -s test.txt test123
[hzz@e25f88eebde1 ~]$ cp -a test123 /tmp/test
[hzz@e25f88eebde1 ~]$ ls -l /tmp/test
total 0
lrwxrwxrwx 1 hzz hzz 8 Dec  9 08:17 test123 -> test.txt
[hzz@e25f88eebde1 ~]$

# mv命令相当于windows下的剪切粘贴,可用于移动文件或文件夹,也可用户给文件或文件夹重命名。
# 常用参数有-i和-f,参数功能和cp命令的类似。
# 使用示例:

[hzz@e25f88eebde1 ~]$ touch 123
[hzz@e25f88eebde1 ~]$ mkdir 123dir
[hzz@e25f88eebde1 ~]$ ls
123  123dir

# 移动文件
[hzz@e25f88eebde1 ~]$ mv 123 123dir/
[hzz@e25f88eebde1 ~]$ tree
.
`-- 123dir
    `-- 123

1 directory, 1 file
[hzz@e25f88eebde1 ~]$ 

# 重命名
[hzz@e25f88eebde1 ~]$ mv 123dir 456dir
[hzz@e25f88eebde1 ~]$ tree
.
`-- 456dir
    `-- 123

1 directory, 1 file
[hzz@e25f88eebde1 ~]$

# rm命令用于删除文件和文件夹,常用的参数有-i,-r和-f,参数功能和cp命令的类似。
# 人为操作尽量使用-i选项,避免使用-f选项,除非是删除含有大量文件的文件夹并进行反复确认。
# 使用示例:

[hzz@e25f88eebde1 ~]$ rm -ir 456dir/
rm: descend into directory '456dir/'? y
rm: remove regular empty file '456dir/123'? y
rm: remove directory '456dir/'? y
[hzz@e25f88eebde1 ~]$

Continue reading “magedu pro 第二周作业”

magedu pro 第二周作业

Bash 变量、配置及测试运算简介

变量说明

根据变量的生效范围为标准:

  • 本地变量:生效范围为当前 进程,对当前 进程之外的进程或当前 的子进程和父进程均无效。
  • 环境变量:生效范围为当前 shell 进程及其子进程。
  • 局部变量:生效范围为当前 shell 进程中某代码片段(函数)。

  • 位置变量: $1$2$3 等来表示,用于让脚本在脚本代码中调用通过外部脚本或命令行传递给它的参数。

  • 特殊变量: $?$0$*$@$# 等来表示,系统自带用户存储特殊数据。

Continue reading “Bash 变量、配置及测试运算简介”

Bash 变量、配置及测试运算简介

magedu basic 第一次作业

1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。

Linux的主流发行版本分为:slackware、debian及redhat。

其中很多发行商通过以上三个版本的开源代码进行二次开发甚至于三次开发,得出的主流版本结构图如下:

slackware

    suse

        sles:suse的企业级发行版

        opensuse:suse的开源发行版



debian:唯一一个由社区组织维护的发行版

    :debian的二次发行版,也是迄今为止最能被用户接受的linux桌面系统。

        mint:ubuntu的二次发行版,debian的三次发行版,有多种桌面版本供用户选择。

    deepinos:由深之度(深度)公司开发的一款切合国人使用习惯的桌面linux系统,起先基于ubuntu,现基于debian。





    rhel:redhat的企业版

    fedora:redhat的社区维护版,目的用于测试最新的软件和驱动。

    :由redhat开源代码用完全兼容rhel的格式重新编译而成,后被redhat招安,成为官方开源版本。

Continue reading “magedu basic 第一次作业”

magedu basic 第一次作业