linux自制
1. 如何制作一个u盘启动的linux
你好,制作用U盘启动的Linux系统的步骤如下:
一、对U盘进行处理
1.分区:(插上U盘)
# fdisk /dev/sdb
d Enter 删除原有分区
n Enter 新建一个主分区
w Enter 保存设置
# partprobe /dev/sdb 刷新U盘
2.设定U盘分区为活动分区
# fdisk /dev/sdb
a Enter 设定为活动分区
1 Enter 选择分区
3.对硬盘分区进行格式化,格式化成ext3格式
# mkfs.ext3 /dev/sdb1
二、装filesystem包 (目的:生成根下的root,usr,var 。。.等目录)
1.配置好yum
2.加载U盘到/net下
# mount /dev/sdb1 /net
3.安装
# yum -y install --installrot=/net filesystem
安装完成后,可查看/net下生成了多个目录
三、加载系统启动项
1.# cp /boot/vmlinuz-2.6.18-128.el5 /net/boot/
2.生成initrd.img `uname -r`为取系统版本号
# mkinitrd --with=usb-storage /net/boot/initrd-usb.img `uname -r`
3.查看/net/boot/下是否有vmlinuz和initrd
四、制作boot loader(grub)
1.# yum -y install --installroot=/net grub
2.grub.conf不成自动生成,要手工创建
# cp /boot/grub/grub.conf /net/boot/grub/grub.conf 并作修改
# cat /net/boot/grub.conf
default = 0
timeout = 5
title redhat-usb-linux
root(hd0,0)
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=/dev/sdb1 init=/dev/bash
initrd /boot/initrd-usb.img
此处填写的内容要与/net/boot/grub/下的文件名一致
五、安装命令库文件
# yum -y install --installroot=/net bash coreutils pam setup vim-enhanced vim-minimal util-
linux net-tools SysVinit passwd shadow-utils authconfig
可通过rpm -qf /bin/mount 查看包名
此时chroot /net下可使用刚才安装的命令了
六、创建磁盘分区
# mknod /net/dev/sdb b 8 16
# mknod /net/dev/sdb1 b 8 17
b表示块设备,8为主设备号,16、17为次设备号
--------------------------
| 有关设备号的解释:
| 1.对于一块SCSI/SATA硬盘(格式为sd*),主设备号为8,
| 第一块硬盘的次设备号为0-15,第二块硬盘的次设备号为16-31,依次类推。因为对于硬盘来说,主分区最多为4个,可以3个主分区1个扩展分区,扩展分
| 区仍然可以再分区,但是分区的总数最多为16个,所以每一块硬盘的次设备号为16个(0-15,16-31)。
| 2.对于一块IDE硬盘(格式为hd*),主设备号为3,次设 备号第一块为0-63,第二块为64-127。
| 3.# ls -l /dev/sd*
| brw-r----- 1 root disk 8, 0 10-16 14:53 /dev/sda
| brw-r----- 1 root disk 8, 1 10-16 14:54 /dev/sda1
| brw-r----- 1 root disk 8, 2 10-16 14:53 /dev/sda2
| brw-r----- 1 root disk 8, 3 10-16 14:54 /dev/sda3
| brw-r----- 1 root disk 8, 16 10-16 15:50 /dev/sdb
| brw-r----- 1 root disk 8, 17 10-16 15:50 /dev/sdb1
| brw-r----- 1 root disk 8, 32 10-16 15:50 /dev/sdc
| brw-r----- 1 root disk 8, 36 10-16 15:50 /dev/sdc4
| 以上是我一台主机上插了1个硬盘,两个U盘的显示情况,我们可以看到设备号的显示情况。
| 4.在linux中一切皆文件,硬件也是通过文件体现出来的,所有硬件设备都在/dev/有所显示。
|5.更具体的设备号研究可以查看下面的文件。
| # yum install kernel-doc
| # /usr/share/doc/kernel-doc-2.6.18/Documentation/devices.txt
---------------------------
七、创建挂载
1.创建mtab
# cat /net/etc/mtab
/dev/sdb1 / ext3 rw 0 0
2.创建fstab
# cat /net/etc/fstab
/dev/sdb1 / ext3 default 1 1
八、安装grub
# chroot /net
# grub-install /dev/sdb1
注:
1.如果创建硬盘分区的时候没有配置正确,在第八步会报错:
the file /boot/grub/stage1 not read correctly
2.在用U盘启动后,进入到U盘中的系统,此时我们可以用已经
安装过的命令集,但是此时的文件系统是只读的,我们不能vim,
mount等的操作,此时必须用下面这个命令,进行重新读写挂载:
# mount -o remount,rw /
重挂载后,就可以了。
至此,U盘Linux系统启动盘的制作就完成了,通过以上方法,用户就可以用U盘来启动Linux系统,再也不用担心误删文件进不来系统,也不用这么麻烦拆下硬盘进行拷贝。
2. 在Linux系统下用dd命令制作ISO镜像U盘启动盘
1、首先在 Linux 系统中打开终端,确认 U 盘路径:
执行完这条命令后会出现若干个盘的信息,其中识别U盘的一个比较直观的方式是看容量大小。假设U盘的路径是 \dev\sdb 。
2、umount U 盘:
3、格式化U盘:
如果U盘是空的可能格式化的过程会比较快,否则可能会比较慢。
4、使用 dd 命令制作系统盘:
该命令一般需要十分钟左右可以完成。
3. linux下制作win的启动盘
Linux上制作Windows启动u盘插入准备好的u盘,并查看u盘的设备名称
~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 3.2G 3.2G 0 100% /run/media/alfer/u8
注意:如果看到u盘(/run/media/alfer/u8)挂载在/dev/sdb设备下,则需要先将其卸载;如果此处看不到usb 设备,则要用fdisk 工具查看。设置usb设备/dev/sdb的 /dev/sdb1为启动分区cfdisk /dev/sdb 或 fdisk /dev/sdb (partition type 7, and bootable flag)u盘分区格式化格式化分区sdb1为ntfs格式:mkfs.ntfs -f /dev/sdb1利用ms-sys写入mbr信息到u盘以引导win7:ms-sys -7 /dev/sdb其中的-7参数指Win7 MBR,sdX指的是U盘对应的盘符。将ISO镜像文件写入到u盘:
mount -o loop win7.iso /mnt/iso
mount /dev/sdb1 /mnt/usb
cp -r /mnt/iso/* /mnt/usb/
sync
监控写入状态:watch -n1 iostat从u盘启动安装Windows系统现在你已经可以从u盘启动来安装Windows了。总结Linux上制作 Windows的启动盘整体流程应该是:u盘建立启动分区 -》u盘分区格式化 -》写入引导程序 -》写入镜像文件 -》 制作完成。在Centos系统上制作Windows启动盘的时候,我尝试了几种不同的方法,皆是可以制作成功的:写入u盘启动引导Win7安装方式方法一:如文中,利用ms-sys工具写入,ms-sys -7 /dev/sdb;方法二:利用lilo工具,sudo lilo -M /dev/sdb mbr;方法三:利用syslinux工具,sudo dd if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdb;镜像文件写入u盘方法一:挂载 iso 镜像后,复制到u盘;方法二:dd命令写入iso镜像文件到u盘的启动分区
sudo dd if=/home/peter/Downloads/WindowsTechnicalPreview-x64-ZH-CN.iso of=/dev/sdb1 bs=4M iflag=direct
4. 制作linux系统U盘并使用U盘安装CentOS7.6系统
一、制作linux启动盘
使用光盘刻录软件将系统镜像刻录到U盘后使用U盘安装系统。
1、 准备
1个大于8GU盘(最小1G以上,最好8G)
官方系统镜像(CentOS7-1810)
光盘刻录软件(UltraISO)
2、 制作linux系统优盘
二、使用U盘安装CentOS7.6系统
1、 插入刚刚制作的系统U盘进入BIOS,更改U盘为第一启动项。
2、 进入centos安装界面,按TAB键进入配置编辑(根据提示,uefi是按e键)
3、 进入图形界面如果不出现报错就是成功了,可以正常安装操作系统了。
安装之后重启后关机移除U盘在开机即可正常使用。
5. linux下制作ISO文件
linux下制作ISO文件有几种方法,分别如下:
1,从光盘中制作ISO文件
cp /dev/cdrom 路径/ISO 文件名
例子:cp /dev/cdrom /opt/mycd.iso,也可以用 dd if=/dev/cdrom of=/opt/mycd.iso
2,使用目录文件制作ISO文件
mkisofs -r -o 路径/ISO 文件名 目录文件路径
例子:mkisofs -r -o /opt/mycd.iso /home
制作完ISO文件后,如何挂载呢?
mount -o loop ISO文件名 挂载点路径
例子:mount -o loop /opt/mycd.iso /mnt/cdrom
转自 https://blog.51cto.com/13587169/2095385
6. Linux下制作bin可执行文件
一 Linux安装文件
Linux常见的安装为tar,zip,gz,rpm,deb,bin等。我们可以简单的分为三类,
第一:打包或压缩文件tar,zip,gz等,一般解压后即可,或者解压后运行sh文件;
第二:对应的有管理工具的deb,rpm等,通常的这类安装文件可以通过第三方的命令行或UI来简单的安装,例如Ubuntu中的apt来安装deb,Redhat中的yum来安装rpm;
第三:像.bin类,其实就是把sh和zip打包为bin,或把sh和rpm打包为bin等,当在命令行运行bin安装文件时,其实就是bin里面的sh来解压bin中的zip或安装rpm的过程;
.bin安装文件可以认为是sh文件和zip或rpm等其他安装文件的打包形式。如下图:
shell脚本:
脚本很简单,关键在于sed那一行,大概意思是匹配exit 0,如果匹配到了,把它后面的打印出来。
然后将安装包打包成 install.tar.gz,如:
最终将上述两个文件打包成bin文件,并赋予执行权限
执行bin文件和执行shell脚本一样,直接运行
Tip:提取文件也可以使用tail来分割文件的,这个有时候可能会失败(网上很多人都说tail方法可能有各种问题,我测试没碰见)。建议使用sed方式提取文件