MacOS下制作linux启动盘
在Windows下,我们经常使用软碟通来制作各种系统的启动盘,那么在MacOS下,如何做到呢?MacOS跟Linux的做法基本一致。如果你只想快速地制作好启动盘,请看下面的快速版
首先,你需要以下两样东西:
- linux系统镜像
- 足够大的U盘
制作启动盘需要先确定U盘的设备名,建议先给U盘起个名字,然后查找U盘的设备路径。如下为/dev/disk5:
diskutil list
# /dev/disk5
# blabla... U盘名字
写入前,先卸载U盘
diskutil unmountDisk /dev/disk5
在制作之前,先介绍一个工具---dd。dd的基本用法如下:
# 将file1复制到file2中
dd if=file1 of=file2
if和of后面既可以是文件也可以是某个设备,dd是一种底层磁盘工具,非常适合制作启动盘,同时它也可以做一些有趣的事情,比如:
# 备份磁盘到文件
dd if=/dev/sda of=image.iso
# 从文件恢复到磁盘
dd if=image.iso of=/dev/sda
# 销毁某个设备的数据
dd if=/dev/urandom of=/dev/sda
# 修复磁盘的一些IO错误
dd if=/dev/sda of=/dev/sda
你肯定对第三条命令感到好奇,这是怎么做到的?其实linux定义了几种特殊的设备文件,/dev/urandom可以产生无穷无尽的随机值(不一定是通常意义的数字),所以这条命令的意思是向/dev/sda中写入随机值,某些时候会需要用到它。下面是linux的几种特殊的设备文件:
- /dev/null
这个设备文件就是一个无底洞,你可以向他写入任意大小的数据,但是写进去的数据全部都漏掉了,所以从他那里读数据只能读到EOF。 - /dev/zero
/dev/zero会给你无穷无尽的0,注意这里是ascii的\0,不是数字0。 - /dev/random
从真随机数产生器获得随机数,速度相对缓慢。 - /dev/urandom
从伪随机数产生器获取随机数,速度快。 - /dev/full
向这个设备写入时,会得到一个磁盘已满的错误。
下面我们正式制作启动盘
sudo dd if=1575868135818_ubuntu18.04-3.18.iso of=/dev/disk5 bs=1m
# 复制结束后,dd命令会打印出有多少输入块,有多少输出块,速度如何
# 出现以下提示表示成功
# 1934+1 records in
# 1934+1 records out
# 2028060672 bytes transferred in 641.515462 secs (3161359 bytes/sec)
完成后,就可以拿来装系统了。
插曲
在我美美地安装好ubuntu之后,发生了一个小插曲。我的PC是SSD+1T机械盘的组合,通常我都把系统装到SSD,用户数据放机械盘,所以我惯常的做法是把/home放到机械盘,但是我安装系统的时候忘了这事。那怎么手动把/home挂载到其他磁盘分区呢?
# 挂载目标分区(假设你需要挂载到 /dev/sdb1)
sudo mkdir /mnt/tmp
sudo mount /dev/sdb1 /mnt/tmp
# 复制数据(此时的 /mnt/tmp 就是 /dev/sdb1)
sudo rsync -avx /home/ /mnt/tmp
# 删除旧的/home
rm -rf /home/*
# 必要的话,卸载原来的/home(这里一般都不需要,除非你的/home本来就是另放在某个磁盘分区的)
umount -l /home
# 挂载新的/home
sudo mount /dev/sdb1 /home
# 查 /dev/sdb1 的UUID和TYPE
sudo blkid
sudo vim /etc/fstab
# 在文件里添加以下内容
UUID=175ab25f-5190-4df7-8795-8a00a0f78fd6 /home ext4 defaults 0 2
# 验证下,ok
df -h
看到这里,也许你会有两个疑问:
1、这里复制的时候用了rsync命令。为何不用cp和上文提到的dd呢?以下是我的理解:
dd
dd是一种非常底层的复制命令,一般用于拷贝整个磁盘到镜像,或者从镜像写入到磁盘。dd命令通常比较危险,也被称为disk destroyer。cp
这是一种常用的命令,一般我们复制一些小的文件和文件夹都是使用它rsync
rsync是高级的复制命令,更多地用于远程同步。如果你要复制大文件,用rsync比cp好。dd命令也很适合拷贝大文件,但是如果你要备份你的/目录,rsync比dd更合适,因为rsync可以更灵活地控制哪些文件可以需要复制,哪些可以被忽略。
2、/etc/fstab是什么?
在linux里,一切都是文件,设备可以是文件,配置也可以是文件,你想修改系统配置,一般都是修改相应的文件,/etc/fstab就是linux系统的一个配置文件,主要用来配置各种设备如何挂载到系统,你在这里定义好挂载方式,系统启动的时候就会自动帮你挂载好。
快速版
# 建议先给你的U盘起个名,然后找到你U盘的设备名,如 /dev/disk5
diskutil list
# /dev/disk5 (internal, physical):
# #: TYPE NAME SIZE IDENTIFIER
# 0: GUID_partition_scheme *121.3 GB disk0
# 1: EFI EFI 209.7 MB disk0s1
# 2: Apple_APFS U盘名字 121.1 GB disk0s2
# 卸载设备
diskutil unmountDisk /dev/disk5
# 写入镜像
sudo dd if=1575868135818_ubuntu18.04-3.18.iso of=/dev/disk5 bs=1m
# 出现以下提示表示成功
# 1934+1 records in
# 1934+1 records out
# 2028060672 bytes transferred in 641.515462 secs (3161359 bytes/sec)
# 成功!此时如果系统报错,识别不了U盘,不用管,快去装你的linux吧!
Reference
MacOS下制作linux启动盘的更多相关文章
- windows下制作linux U盘启动盘或者安装优盘(转)
windows下制作linux U盘启动盘或者安装优盘(转) Linux发行版排行榜:http://iso.linuxquestions.org/ [方案一]:UltraISO(不推荐,在Window ...
- Mac 制作 Linux 启动盘
本文原始地址:https://sitoi.cn/posts/28583.html 前期准备 一个 Mac 电脑 一个 U 盘(8GB 以上) 下载好 Linux 系统镜像(iso 文件) 具体步骤 挂 ...
- UltraISO制作linux启动盘(包含写入不完整解决方法)
网上教程挺多,主要是自己记录一下.
- [administrative] windows 下制作USB启动盘的工具
arch魔教的文档: https://wiki.archlinux.org/index.php/USB_flash_installation_media windows 下的 dd: https:/ ...
- dd制作linux启动盘
1.fdisk /dev/sdb 删除分区,新建分区 2.mkfs.vfat /dev/sdb1 3.dd bs=4M if=CentOS.iso of=/dev/sdb
- Ubuntu15.10下制作Linux 操作系统优盘启动盘
上次电脑出现了一些问题,于是不得不重新装机了.下面就跟大家分享一下我在Ubuntu下制作优盘启动盘的一些心得. 准备原料 我这里用到的是 镜像文件是:debian-8.3.0-amd64-DVD-2. ...
- Linux下制作Windows启动U盘的工具
Linux下制作Windows启动U盘的工具 很多人说Linux下制作Windwos启动盘要用GRUB4DOS建立引导,其实不用,有专门的工具的,就像Windows下有Rufus制作Linux启动U盘 ...
- Mac下制作openwrt U盘启动盘
华硕路由用腻了,正好家里有老旧淘汰的电脑,那么非常适合折腾一下OpenWrt,科学上网靠自己. 什么是OpenWrt:OpenWrt是适合于嵌入式设备的一个Linux发行版. 参考资料:https:/ ...
- 在Linux下制作Linux&windows启动盘
在Linux下制作Linux&windows启动盘 如何在Linux-mint环境下,制作其他Linux发行版的UEFI启动盘,以及Windows10的UEFI模式启动盘. 对于U盘的操作,可 ...
随机推荐
- Javascript模块化开发2——Gruntfile.js详解
一.grunt模块简介 grunt插件,是一种npm环境下的自动化工具.对于需要反复重复的任务,例如压缩.编译.单元测试.linting等,自动化工具可以减轻你的劳动,简化你的工作.grunt模块根据 ...
- C语言|博客作业04
这个作业属于哪个课程 C语言程序设计II 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-1/homework/9768 我在这个课程的 ...
- 将Swagger2文档导出为HTML或markdown等格式离线阅读
网上有很多<使用swagger2构建API文档>的文章,该文档是一个在线文档,需要使用HTTP访问.但是在我们日常使用swagger接口文档的时候,有的时候需要接口文档离线访问,如将文档导 ...
- 性能测试——记XX银行保全项目性能问题分析优化
记XX银行保全项目性能问题分析优化 数据库问题也许是大部分性能问题的关注点,但是JAVA应用与数据库交互的关节,JDBC 就像是我们人体的上半身跟下半身的腰椎,支持上半身,协调下半身运动的重要支撑点. ...
- pyinstaller打包python文件成exe(原理.安装.问题)
py文件打包成exe文件的方式一共有三种:py2exe.PyInstaller和cx_Freeze 本文分四个步骤来详讲如何用PyInstaller将py文件打包成exe文件 1. PyInstall ...
- Power Query系列 - 排序Ranking
Power Query系列 - 排序Ranking 难度: ★★☆☆☆(1星) 适用范围: ★★★☆☆(3星) 概况: 在数据分析中,我们常常需要对数据进行排序,同时我们想知道某个项目或者产品的排名, ...
- 基于 HTML5 + WebGL 的地铁 3D 可视化系统
前言 工业互联网,物联网,可视化等名词在我们现在信息化的大背景下已经是耳熟能详,日常生活的交通,出行,吃穿等可能都可以用信息化的方式来为我们表达,在传统的可视化监控领域,一般都是基于 Web SCAD ...
- word2vec:主要概念和流程
1.单词的向量化表示 一般来讲,词向量主要有两种形式,分别是稀疏向量和密集向量. 所谓稀疏向量,又称为one-hot representation,就是用一个很长的向量来表示一个词,向量的长度为词典的 ...
- for源码实现
for源码实现 我们知道,java的while和for基本上是实现一样的功能,这样会不会有一点缺点,同时java的迭代器显得尤为的麻烦. python的for和while就不同了,在实现迭代的功能的情 ...
- socket实现ftp上传下载
socket实现ftp文件的上传和下载 server端代码: import socket import json import struct import os soc = socket.socket ...