超算DAY1·Linux的安装与摧毁

第一天·Linux的安装与摧毁

Linux的安装

由于硬件因素的限制,本次Linux发行版安装实验采用虚拟机的方式进行。由于Linux只是一个操作系统内核,基于Linux构建的操作系统繁多,但据我的经验来看,各种Linux发行版的安装方法都基本一致,而且各大发行版及其衍生版基本上都提供了人性化的安装程序。本次实验中的Linux发行版采用为服务器量身打造的CentOS 6.9。

本实验的系统环境:

  • 操作系统:macOS 10.13.5 High Sierra
  • 虚拟化平台:VMWare Fusion Pro 10.1.2
  • Linux发行版:CentOS 6.9 Final
实验步骤

1. 镜像的获取

Linux镜像通常是光盘映像文件,打包成(*.iso)发布,用户可将ISO镜像刻录到各种物理介质中,然后从这些介质中启动ISO进行安装操作或LiveCD测试。

下载好的镜像如下:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/0/1.png

2. 在虚拟机中安装Linux发行版

和物理机类似,在虚拟机中引导ISO启动,即可进入CentOS的安装过程:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/0/2.png

进行光驱检测之后选择系统语言、时间地区:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/0/3.png

将网卡eth0激活,免得安装完成之后再使用ifconfig激活:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/0/4.png

以上设置完成后就进入了最关键的一个阶段:分区划分。Linux中任何硬件都是以文件的形式表示的,比如第一块硬盘被称为sda,第二块被称为sdb,以此类推。在硬盘分区上,Linux会将一块硬盘分为4个主分区,分别是sda1sda2sda3sda4,在sda4下又可分出若干个逻辑分区,命名从sda5开始。这些代表硬盘的文件被放置在/dev下,所以我们若想表达“第一块硬盘的第一个分区”,应该是/dev/sda1。(凭先前记忆所写,不一定完全正确)。

在本次实验中,我采用了LVM技术对硬盘进行分区。其好处是可伸缩性强。

https://scexp.oss-cn-beijing.aliyuncs.com/day1/0/5.png

格式化硬盘后,进入Bootloader安装阶段。Bootloader是引导系统启动的重要组成部分。

https://scexp.oss-cn-beijing.aliyuncs.com/day1/0/6.png

再进行一些设置,就进入了安装阶段:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/0/7.png

https://scexp.oss-cn-beijing.aliyuncs.com/day1/0/8.png

最后引导启动成功:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/0/9.png

Linux的摧毁

1. rm -rf /* –no-preserve-root

这是最具有杀伤力的一条命令,rm命令是类UNIX中删除文件的命令。在删除非空目录时,使用-r, --recursively选项可以递归删除目录中所有的文件,进而删除整个目录。-f, --force可以直接跳过rm的确认对话,直接执行。

/*表示根目录下所有文件,*是一个正则通配符,匹配任何文件。

执行效果如下:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/1/2.png

/bin/etc等目录中大量重要文件缺失导致系统无法启动:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/1/3.png

2. 破坏/etc/fstab

修改/etc/fstab中的UUID,修改前后对比如下:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/2/1.png

https://scexp.oss-cn-beijing.aliyuncs.com/day1/2/2.png

重启后引导启动失败:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/2/3.png

/etc/fstab是记录各个分区基本信息的文件,如果这个文件有任何错误,系统都将无法启动成功。

3. 修改根目录权限

使用chmod命令对/执行权限修改操作,权限值为000。类UNIX系统采用的r(可读)w(可写)x(可执行)权限模式由u(所有者)g(所有者所在组)o(其他人)组成,每一组的权限都有rwx三个权限位,满权限为(?)rwxrwxrwx,如果哪个组缺少哪个权限,该权限位就应该置零。例如某文件的go组缺失可写权限,则该文件的权限可写成-rwxr-xr-x,二进制表示为111101101,以三个数字为一组,每组将二进制转为八进制,可得权限值为755

在本例中,我对根目录执行以下操作:

chmod 000 -R /

即将空权限赋予根目录及其所有子目录和文件:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/3/2.png执行除cd外的任何命令都被禁止,文件也无法访问。重启虚拟机CPU报错:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/3/3.png

4. 使用dd命令将/dev/zero写入/dev/sda

在类UNIX 操作系统中, /dev/zero 是一个特殊的文件,当你读它的时候,它会提供无限的空字符(NULL, ASCII NUL, 0x00)。其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件。BSD就是通过mmap把/dev/zero映射到虚地址空间实现共享内存的。可以使用mmap将/dev/zero映射到一个虚拟的内存空间,这个操作的效果等同于使用一段匿名的内存(没有和任何文件相关)。
摘自维基百科

https://scexp.oss-cn-beijing.aliyuncs.com/day1/4/1.png

将磁盘中的内容全部清除,再次启动时机器直接忽略(因为是空磁盘了):

https://scexp.oss-cn-beijing.aliyuncs.com/day1/4/2.png

5. 删除vmlinuz文件

vmlinuz文件是经过cpio压缩之后的可引导的虚拟内核映像文件,通常位于/boot下,删除它之后系统自然无法成功启动:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/5/1.png

重启之后,因未能加载内核而导致失败:

https://scexp.oss-cn-beijing.aliyuncs.com/day1/5/2.png

参考

[1]. /dev/zero - 维基百科,自由的百科全书
[2]. vmlinux - 维基百科,自由的百科全书

将最新的文章发送到你的邮箱

展示评论