首页 > 系统相关 >创建一个自己的 Linux系统

创建一个自己的 Linux系统

时间:2023-10-29 19:55:23浏览次数:36  
标签:创建 mnt boot dev 系统 sdb Linux bash

简单来说就是一个文件传递的机制,首先创建/安装一个硬盘,然后把前硬盘中的一部分文件先转移到Linux系统上,再通过Linux系统转移到创建的新硬盘,之后用虚拟机,把新硬盘装在其中,就可以在新硬盘上做到一些功能了

前知识准备:

Linux启动流程: 1、首先Linux要通过自检,检查硬件设备有没有故障 2、如果有多块启动盘的话,需要在BIOS中选择启动磁盘 3、启动MBR(主引导记录)中的bootloader引导程序 4、加载内核文件 5、执行所有进程的父进程、老祖宗systemd 6、欢迎界面 在Linux的启动流程中,加载内核文件时关键文件:(1)kernel文件:vmlinuz-3.10.0-957.el7.x86_64 (2)initrd文件:initramfs-3.10.0-957.el7.x86_64.img(这里的img不是指的图像...)    什么是grub: 开源的多操作系统引导加载程序。它通常用于在启动计算机时选择并加载操作系统。

当计算机启动时,GRUB 提供一个菜单,显示可用的操作系统和内核。用户可以选择要启动的操作系统或内核。
多操作系统支持:GRUB 可以引导加载多个操作系统,使用户能够在同一台计算机上安装和使用多个操作系统。

 (说白了就是这个)

什么是selinux:security enhance Linux,安全增强型Linux,由美国国家安全局(NSA)开发的开源项目,通过在内核层面引入安全策略和标签,限制进程的访问和权限   区分bash和vim: bash是一个命令行解释器,vim是一个文本编辑器,即bash是输入指令和操作系统进行交互,而vim是自己编译代码进行运作

1.添加磁盘

 注意,这里选择的是将虚拟磁盘存储为单个文件

初始选择的路径是download文件夹,但是download文件夹是应用安装文件夹,不能用来保存文件,于是就换一个文件夹保存就行了

 

2.进行磁盘分区,格式化

使用fdisk /dev/sdb 将dev文件目录下面的sdb进行格式化

我们将其第一块扇区划分500M,作为引导boot分区

分区结束后会有此效果

 

之后进行文件系统创建mkfs.ext4 /dev/sdb1  mkfs.ext4 /dev/sdb2(注意mkfs和.ext4之间没有空格)

 

3.对磁盘挂载

为什么要挂载到mnt下面呢:因为mnt是临时挂载别的文件系统的一个目录

mkdir -p /mnt/boot /mnt/sysroot (创建多级目录,同时在boot和/之间存在一个_表示同时创建两个)

mount /dev/sdb1 /mnt/boot  mount /dev/sdb2 /mnt/sysroot (把sdb1挂载到boot分区,把sdb2挂载到sysroot分区)

grub2-install --root-directory=/mnt /dev/sdb (将GRUB2引导加载程序安装到/dev/sdb设备,并指定/mnt为根目录[--root-directory=/mnt])

hexdump -C -n 512 /dev/sdb (以字符和16进制的形式显示/dev/sdb前512字节的内容

 

你也可以用hexdump -d -n 256 /dev/sdb(以十进制显示/dev/sdb前256字节的内容)

 

之后就可以进行复制,把文件复制到相应位置

cp -rf /boot/* /mnt/boot/

 出现了这样的情况.... 说明在mnt目录下面有相关的相同文件,一个个yes掉需要很久:(   (创建的时候自带的文件,不是后来加的)

于是可以rm -rf /mnt/boot/*  (一定小心不要写成/boot/*)

再进行cp操作

 之后就到了修改grub的部分了

通过cd /mnt/boot(之前把boot cp到其中了)

cd grub2

vim grub.cfg

 就会看到这个界面

在if最后面有该分区的uuid,由于是copy过来的,所以uuid会和我们新创建的不同,我们要把它修改成我们新磁盘的uuid

那么怎么查看uuid(universally unique ID)呢

我们可以用指令lsblk -f

 把本来的改成新创建的就可以了

具体要修改的地方如下

 

 在if和else后面加的是sdb1的(表示boot的uuid),在下面的uuid中加的是sdb2的(表示/的uuid),以及在该段的末尾加上selinux=0 init=/bin/bash

selinux=0:这个参数用于禁用 SELinux,即安全增强型 Linux(Security-Enhanced Linux)子系统。SELinux 是一种安全机制,可以提

供强制访问控制和强制安全策略,通过限制进程的权限来增强系统的安全性。将 selinux=0 设置为 0 可以临时禁用 SELinux。

init=/bin/bash:这个参数用于指定系统初始化进程(init)启动时要运行的程序。/bin/bash 是一个常见的命令解释器(shell)路径,它

可以作为一个简单的、交互式的环境提供给用户进行命令行操作。通过将 init 设置为 /bin/bash,系统将在引导时直接进入交互式的 Bash shell

,而不是正常的启动过程。

这样的地方有三处,都要进行修改.这样,我们的开机启动就做好了,开机的时候就会进入磁盘2

 

copy指令

虽然我们可以正常开机,但是里面的指令我一个也用不了,所以要去copy一些指令

首先创建好目录

 我们以lib64下的指令为例

 这里使用的lib64/*.*是一个通配符,直接copy的xx.xx的文件,如果你想把目录也copy过去,可以考虑使用lib64/*

同时别忘了copy /bin/bash 不然在前面的init=/bin/bash就起不到效果,进都进不去

 

创建一个新的虚拟机

移除自带的硬盘,同时加上之前添加的新硬盘

 

现有磁盘文件地址可以在你的大Linux上找到sdb的地址

 保存,启动这样一个有你自己需求的Linux就做好了

 

 

  --- 本文是对韩顺平老师的Linux教程127的整理,看到该视频也想自己试试

 

 

标签:创建,mnt,boot,dev,系统,sdb,Linux,bash
From: https://www.cnblogs.com/dxcff123/p/17790975.html

相关文章

  • 第一章 初识Linux
    1.Linux简介1.1Linux是多用户多任务的操作系统,免费开源,主要用于搭建服务器,性能稳定。但是Linux系统是专业系统,原始环境较为简单,大部分功能的实现都需要自我搭建。1.2  Linux系统都是由文件构成。对于操作系统内核而言,命令、硬件、软件设备都被视为一个拥有特定功能的......
  • 5.7数据库创建用户
    基本的创建语句:grantallon.to'root'@'%'identifiedby'123456'grantall授予默认权限的操作,还有一种granttoprivilege授予全部权限on*.*表示所有数据库下的所有表to'root'@'%'授予的角色信息,该例中表示:所有地方都可以登录的root用户identifiedby'123456�......
  • 基于SpringBoot框架的教学评价系统-计算机毕业设计源码+LW文档
    摘要随着时代的发展,我国的教育水平在不断的提高,但是很多时候为了更好的提高教学的质量,会让学生对当前的教学进行评价,教育工作者根据学生的评价发现当下教学中的一些不足,从而更好的提高教学质量,为了让教学评价变的更加的方便我们开发了本次的教学评价系统。本系统从用户的角度出......
  • 基于ssm的奖学金评定系统-计算机毕业设计源码+LW文档
    摘 要 随着时代的发展,我国高校的信息化程度也越来越高,很多高校都实现了数据的信息化管理,但是在很多高校还是使用传统人工的方式在对奖学金评定相关内容进行管理,为了提高高校的整体奖学金评定管理水平,为此我开发了本基于SSM框架的奖学金评定系统管理网站本基于SSM框架的奖学金......
  • 基于Vue2+elementUI的二手书管理系统-计算机毕业设计源码+LW文档
    摘 要本设计完成了基于Vue2+elementUI的二手书管理系统的设计与实现。现代移动化网络发展下,不同于以往的短信、邮件、收音机传递信息,网页是向用户传输信息的主要媒介之一。书籍也是向人们传递信息和知识的媒介,如今书籍印刷和出版的快速发展,以及社会文化水平的进步,越来越多的读书......
  • linux学习-2
    进程管理一、静态查看进程状态ps查看静态进程psaux查看当前目录的进程USERPID  %CPU %MEMVSZRSSTTYSTATSTARTTIMECOMMAN用户名进程编号cpu占用率内存占用率占用虚拟内存占用实际内存进程运行终端进程状......
  • 《信息安全系统设计与实现》第八次学习笔记
    第四章:并发编程并行计算导论顺序算法与并行算法顺序算法:所有步骤通过单个任务依次执行,每次执行一个步骤,当所有步骤执行完成时,算法结束。并行算法:cobegin-coend代码块来指定独立任务,所有任务都是并行执行的,紧接着cobegin-coend代码块的下一个步骤将只在所有这些任务完成之后执......
  • linux第四周
    这周学了基本权限UGO,其中U代表该用户本身,G代表该其属组,O代表其他用户;r表示可读,w代表可写,X代表可执行,ll命令查看UGO权限,第2到10个字符中前三位代表的是用户自己的权限,中间三位代表的是属组的权限,后面三位代表的是其他用户的权限,使用chown命令修改文件拥有者和属组,可......
  • 克隆自己的ubuntu系统并在其它开发板还原
    背景最近接手了一个项目需要在友善之臂的NanoPi-M1-PLUS的开发板上运行一个小型的web程序。开发版跑的系统是ubuntu16.04的一个定制版本内核4.14.111。ubuntu系统上需要安装配置,nginx,tomcat,mysql,串口驱动,等等一系列的环境。一个开发版的环境配置下来至少3-4小时,然而我这里有24个......
  • SpringBoot 公司推广系统 公司广告系统
    SpringBoot公司推广系统公司广告系统系统功能首页功能:广告展示方案列表站内搜索资讯查看详细咨询登录注册收藏咨询方案在线客服实时聊天后台管理功能:系统管理分为:用户管理角色管理客户管理首页轮播管理公告管理方案管理:方案管理资讯管理:类型管理资讯......