IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> qemu 加载ubuntu -> 正文阅读

[系统运维]qemu 加载ubuntu

加载ubuntu

# 注意:修改成自己对应的文件路径

# 创建镜像
dd if=/dev/zero of=ubuntu.img bs=1M count=8192
# 使用qemu-img 创建 推荐
qemu-img create -f qcow2 ubuntu.img 40G

# 从官网下载镜像
# 初次加载安装,跟普通的安装系统一样
./build/qemu-system-x86_64 \
    -m 2G -smp 2 \
    --enable-kvm  \
    -boot order=dc \
    -hda ubuntu.img \
    -cdrom ubuntu-20.04.4-live-server-amd64.iso  \
    -vnc :1

# 这里还需要vncview去连接,端口号为 5901
# 后面的直接从磁盘启动即可
./build/qemu-system-x86_64  \
    -m 2G -smp 2 \
    --enable-kvm  \
    -boot order=c \
    -hda ubuntu.img \
    -nic user,id=virtionet1,model=virtio-net-pci,tftp=root/tftp,hostfwd=tcp::8869-:22 \
    -vnc :1
   
 # -nic 设置网卡选项,hostfwd表示宿主机的8869端口映射到虚拟机的22端口,能通过ssh连接

安装成功后,首次普通启动
在这里插入图片描述

qemu和宿主机共享磁盘

# 创建硬盘镜像
qemu-img create -f raw disk.raw 10G
# 格式化
mkfs -t ext4 ./disk.raw
# 以 loop 方式将磁盘镜像文件挂载到一个目录上,方便操作镜像中的文件
sudo mount -o loop ./disk.raw ./img
# 卸载镜像
sudo umount ./disk.raw

# 启动虚拟机时,使用-hdb增加一个磁盘
./build/qemu-system-x86_64  \
    -m 2G -smp 2 \
    --enable-kvm  \
    -boot order=c \
    -hda  ubuntu.img \
    -hdb ./disk.raw \
    -nic user,id=virtionet1,model=virtio-net-pci,tftp=root/tftp,hostfwd=tcp::8869-:22 \
    -vnc :1
 

使用 lsblk 查看添加上的磁盘
在这里插入图片描述
使用mount命令挂载/dev/sdb到某个目录,如 sudo mount /dev/sdb /mnt/sdb, 可以在/mnt/sdb 目录下访问共享磁盘

# 初次需要创建目录
sudo mkdir /mnt/sdb
sudo mount /dev/sdb /mnt/sdb

编译内核

参考 Ubuntu下编译内核

sudo apt install build-essential flex bison libssl-dev libelf-dev  libncurses-dev dwarves zstd
# 清空之前的配置
make mrproper

# 拷贝机器上存在的配置
cp /boot/config-`uname -r` ./.config 

# 先加载load→OK→Save→OK→EXIT→EXIT,进行微调
make menuconfig

# 编译
make -j$(nproc)
# 或
# make bzImage -j$(nproc)

# 编译模块
# make modules -j$(nproc)

# 安装
sudo make install
#sudo make modules_install 

# 更新grub
sudo update-grub2

编译出现的错误,可能的解决方案
Q1: FAILED: load BTF from vmlinux: Unknown error -2make: *** [Makefile:1162: vmlinux] Error 255

  • 可能是分配给虚拟机较小,调整内存如2G->4G

Q2: make modules_install报错make[1]: *** [arch/x86/crypto/aegis128-aesni.ko] Error 1 Makefile

  • 在编译前配置阶段编辑 vim .config, 通过搜索把 CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem" 修改成 CONFIG_SYSTEM_TRUSTED_KEYS="" , 对于CONFIG_MODULE_SIG_KEY="" 不一定要修成空,可能也会安装不上

Q3: 在执行安装发现 Write error : cannot write compressed block

  • 检查是否/boot 是否足够

Q4: 在直接make & sudo make install 安装的内核,在启动时ifconfig -a 没有检查出相应网卡

  • 相关的驱动是编译成模块,而在编译时没有安装相关模块, 可以修改配置文件,比如 修改CONFIG_E1000=y 直接编译到内核中
  • 检查 /lib/modules/$(uname -r)/ 是否存在相关模块,然后通过insmod 进行安装

参考关于Ubuntu开机启动菜单grub2

sudo vim /etc/default/grub

# 修改内容为
GRUB_DEFAULT=0
# GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT1=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity"
GRUB_CMDLINE_LINUX=""


# 修改成功后,进行更新
sudo update-grub2

qcow2 扩容

参考KVM 虚拟机磁盘扩容

# 先关闭虚拟机再扩容
qemu-img resize ubuntu.img +20G
# 查看镜像信息
qemu-img info ubuntu.img

# 查看磁盘信息
sudo fdisk -l
# 对于我这里是 sda,磁盘容量已达30g, 但后面的分区大小信息还是原先的10g
Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors
Disk model: QEMU HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 6457B4B2-9E0C-4FEE-8586-1412B99781D5

Device       Start      End  Sectors  Size Type
/dev/sda1     2048     4095     2048    1M BIOS boot
/dev/sda2     4096  1861631  1857536  907M Linux filesystem
/dev/sda3  1861632 20969471 19107840  9.1G Linux filesystem

# 分区管理
sudo fdisk /dev/sda
# n->回车->回车->回车

# 修改磁盘格式,
Command (m for help): t
Partition number (1-4, default 4): 4
Partition type (type L to list all types): 8e

# 创建一个新的pv并添加到要扩容的vg中,首先查看Volume group 信息
sudo vgdisplay
sudo pvcreate /dev/sda4
# 我这里VG Name 是 ubuntu-vg 
# 如果 mkdir failed: No space left on device 原先的分区空间满了,先删除一些东西
sudo vgextend ubuntu-vg /dev/sda4

# 使用查看文件系统信息
df -TH 
/dev/mapper/ubuntu--vg-ubuntu--lv ext4      9.0G  5.0G  3.6G  59% /

# 扩容,需要比增加的空间要少一些
sudo lvresize -L +19G /dev/mapper/ubuntu--vg-ubuntu--lv
# 重置文件系统大小
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:16:52  更:2022-08-06 11:19:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 23:33:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码