RK SDK中的img镜像都是gpt格式的,分区又很多,为了看起来直观,方便管理,只用三个分区就够了,uboot、kernel、rootfs。这里记录下linux和windows下两种打包img方式。
对于GRUB来说,如果没有配置menu.lst,无论是Linux版本的GRUB,还是WINGRUB,都会有命令行可用,通过命令行是一样能把操作系统引导起来的;有些弟兄总以为menu.lst 配置错了, 或者在机器启动后出现grub>命令行模式就要重新安装系统,其实根本没有这个必要;只要学会GRUB的命令行的用法,根本没有必要重装系统;
NAND FLASH版本和eMMC版本核心板使用方法基本一致。本文主要描述U-Boot编译、基础设备树文件编译、固化Linux系统NAND FLASH分区说明和NAND FLASH启动系统、固化Linux系统、AND FLASH读写测试等,NAND FLASH版本与eMMC版本核心板在使用方面的不同之处,相同之处将不重复描述。
GRUB的命令行才是王道,如果知道怎么用命令行来启动操作系统,那理解menu.lst的写法也不难;也就是说在开机的时候,不用GRUB的菜单,通过GRUB的命令也是一样能把操作系统引导起来。
描述:GRUB英文全称GRand Unified Bootloader俗称引导程序是硬盘中的软件,它可以启动用户在计算机中的多个操作系统所以也叫多重启动管理器。 目前主流版本是 GRUB2,在windows中也有类似的引导程序ntloader虽然它也可以引导Linux操作系统但是比较麻烦;
在Android中系统通过脚本build/tools/releasetools/build_super_image.py内部去调用lpmake工具生成super.img镜像
在 Android 10 及更高版本上支持了"动态分区",所以 ROM 包中看不到了传统的 system.img 等镜像。支持的动态分区包括:
固件打包是指将我们编译出来的bootloader、内核和根文件系统一起写到一个镜像文件中,这个镜像文件也叫固件。然后可以将这个镜像写到nand、nor flash 或是sd 卡上,从而启动系统。打包成固件时需要使用到一些打包工具,打包脚本以及打包配置文件。本文主要就是介绍打包时需要哪些工具,需要哪些配置文件,以及固件的生成流程。
本篇文章,聊一聊尝试让安卓手机原生运行 Ubuntu,尤其是运行官方未发布过的 ARM 架构的 Ubuntu 24.04 桌面版本。
上篇文章介绍了根文件系统的制作与NFS网络挂载,这篇文章介绍内核如何从本地挂载根文件系统,完成系统启动。本地挂载一般用在产品发布的时候,本地挂载的操作也分为两种。
另一个关于内核升级的文档:《NFS》目录里《centos5.5 x86-64升级内核到2.6.20,安装iotop及fscache》
grub2的rpm package含有很多的img, mod, lst 文件(默认路径是/usr/lib/grub/i386-pc/,可以通过对应的rpm -ql PACKAGENAME来查看), 在执行grub2-install之后,img文件分布如下:
Xen是一个开放源代码的para-virtualizing虚拟机(VMM),或“管理程序”,是为x86架构的机器而设计的。Xen可以在一套物理硬件上安全的执行多个虚拟机;Xen是基于内核的虚拟程序,它和操作平台结合的极为密切,所以它占用的资源最少。
libguestfs 是一组 Linux 下的 C 语言的 API ,用来访问虚拟机的磁盘映像文件。该工具包内包含的工具有virt-cat、virt-df、virt-ls、virt-copy-in、virt-copy-out、virt-edit、guestfs、guestmount、virt-list-filesystems、virt-list-partitions等工具,具体用法也可以参看官网。该工具可以在不启动KVM guest主机的情况下,直接查看guest主机内的文内容,也可以直接向img镜像中写入文件和复制文件到外面的物理机,当然其也可以像mount一样,支持挂载操作。
Fedora12的liveCD:Fedora-12-i686-Live.iso ,至今未硬盘安装成功。在引导过程中,报此类错误:
这小节将介绍各种BR(boot record)和各种boot loader,但只是简单介绍其基本作用。
无论是安装Windows还是Linux操作系统,硬盘分区都是整个系统安装过程中最为棘手的环节,网上的一些Ubuntu Linux安装教程一般都是自动分区,给初学者带来很大的不便,下面我就根据多年来在装系统的经验谈谈安装Ubuntu Linux系统时硬盘分区最合理的方法。
一定要确保你有一个可以引导的光盘或者是 U 盘以备不时之需,否则万一电脑真的不能启动谁都救不了你。如果你需要建立可引导的设备,可以按照以下方法操作(跳转到 BLFS 从 libisoburn 软件包安装 xorriso)。 (其实你手头可以备一个其它发行版的 LiveCD 制作的可引导 U盘,以备不时之需。Ubuntu、Fedora之类的都是上佳之选。)
Linux系统迁移或克隆的工具对于我们日常工作来说非常有用,特别是在需要备份、恢复、迁移或复制Linux安装到另一硬盘或机器时。以下是波哥收集整理的十个常用的Linux迁移或克隆工具分享给大家
作者:bobyzhang,腾讯 IEG 运营开发工程师 0. 故事的开始 0.1 为什么和做什么 最近家里买了对音响,我需要一个数字播放器。一凡研究后我看上了 volumio(https://volumio.org/) 这是一个基于 Debian 二次开发的 HIFI 播放器系统,可以运行下 x86 和树莓派上。 我打算让 volumio 运行在我 2009 年购买的老爷机笔记本上,也让它发挥一点余温热。正常操作是将 volumio 的系统镜像刷到 U 盘上,连接电脑后使用 U 盘启动系统即可。但是家
博客很久没有更新了,一个原因就是原来存放部署博客的环境坏了,硬盘使用的是SSD,只要读取到某个文件,整个磁盘就直接识别不到了,还好博客环境之前有做备份,最近一直没有把部署环境做下恢复,今天抽空把环境做下恢复并且记录一篇基础的GRUB的处理文档
之前在玩板子时每次烧录镜像都是先烧录 uboot 到 SD 卡 8k 偏移处,再拷贝 zImage 镜像文件和 sun8i-v3s-licheepi-zero-dock.dtb 设备树文件到 sd 卡的 kernel 分区,再把 rootfs.tar 解压到 SD 卡的 rootfs 分区,总的来说感觉有些麻烦,因此本文将制作一个 img 镜像文件可以在 windows 下直接用 Win32DiskImager 一键烧录,或者在 linux 下直接使用 dd 烧录。
KVM虚拟机磁盘在线扩容的两种方法: 通过 virsh blockresize 命令扩容当前磁盘 通过 virsh attach-disk 命令在线添加硬盘设备到虚拟机 virsh blockresize 扩容 1,查看虚拟机磁盘信息 [root@kvm-node1 ~]# virsh domblklist win10 Target Source ------------------------------------------------ vda /kvm/img/win10.im
本文所使用的主机环境为kubuntu 12.10,然而一般情况下,下面涉及到的命令对基于Debian的(X)ubuntu系列都应该适用。
移植内核:2.6.30.4 内核根目录下的.config为当前配置内核的且已经配置好的内核配置。make zImage以此为依据 配置内核的过程: cd linux-2.6.30.4(进入Linux根目录) cp arch/arm/configs/s3c2410_defconfig /linux-2.6.30.4(作为配置参考,考到根目录下) mv s3c2410_defconfig .config(改名为.config) make menuconfig ARCH=arm(ARCH=arm不能少) 配置过程 退出时记得选yes保存为.config(确保该配置是你已经配置且保存的配置,就算不改动也要保存。否则不能生成.config) make zImage ARCH=arm CROSS_COMPILE=arm-linux-(ARCH=arm不可少) 或者 Makefile中定于ARCH=arm CROSS_COMPILE=arm-linux- 1,make s3c2410_defconfig(生成.config) 2,make zImage 即可生成压缩内核印象 uboot引导内核,入口点必须为0x30008000 zImage:go 0x30008000 uImage:bootm 0x30008000 busybox下载地址: http://busybox.net/ linux快速修改文件夹及文件下所有文件与文件夹权限 chmod 777 * -R uboot的tftp下载出现如下错误: TFTP error: 'Permission denied' (0) 改正方法就是给待下载的文件加上可执行(chmod 777 文件)权限 uboot的使用:tftp下载内核,直接用交叉网线连接PC(实际上为虚拟机)和开发板即可 uboot启动之后,输入:printenv 查看 serverip是不是你的虚拟机的ip(终端ifconfig即可查看) ipaddr要和serverip在同一个网段,即ip的前三段必须相同 ethaddr:开发板dm9000的MAC物理地址 netmast:子网掩码:255.255.255.0 serverip,ipaddr,ethaddr,netmast不符合要求的话,可以使用命令设置:(示例) setenv serverip 169.254.209.223 setenv ipaddr 169.254.209.113 setenv netmast 255.255.255.0 setenv ethaddr 00:01:02:03:04:05 saveenv //设置完毕记得保存环境变量 uboot启动内核:uboot版本(2009.08) 条件:uboot的机器码和内核的机器码要一样 uboot部分修改: 机器码: #gedit board/samsung/my2440/my2440.c gd->bd->bi_arch_number = MACH_TYPE_SMDK2440 内核部分:内核版本(2.6.30.4) #gedit arch/arm/mach-s3c2440/mach-smdk2440.c MACHINE_START(SMDK2440, "SMDK2440") #gedit arch/arm/kernel/head.S //在ENTRY(stext)下添加如下代码 ENTRY(stext) mov r0, #0 mov r1, #0x3f0 //上面的MACH_TYPE值1008换成十六进制就是0x3f0 ldr r2, =0x30008000 内核中的nand分区一定要和bootloader中的一致: #gedit arch/arm/plat-s3c24xx/common-smdk.c offsize size uboot : 0x00000000 0x00030000 //192kb param : 0x00030000 0x00040000 //这个环境变量的地址范围配置的CONFIG_ENV_OFFSET一致 kernel: 0x00080000 0x00500000 //5mb root : 0x00580000 0x0c800000 //200mb #gedit uboot/include/cofings/mini2440.h 查看:MTDPART_DEFAULT = " " //默认分区 编译得到内核zImage uImage的制作: 先将u-boot下的tools中的mkimage复制到主机的/usr/local/bin目录下,执行以下命令: mkimage -n 'linux-2.
Linux系统启动时使用initramfs (initram file system), initramfs可以在启动早期提供一个用户态环境,借助它可以完成一些内核在启动阶段不易完成的工作。当然initramfs是可选的,Linux中的内核编译选项默认开启initrd。在下面的示例情况中你可能要考虑用initramfs。
在之前我写过一篇关于linux的虚拟文件系统的博客,不过那篇主要是介绍打开的文件是如何在linux系统中被管理和存储的,那么这篇进阶版文件系统就要介绍一下,当文件没有被打开的时候,它在linux系统中是如何被管理和存储的。
我曾经通过计算第一个 DOS 分区的偏移量来访问我的虚拟磁盘镜像,然后用正确的选项组合来调用 Linux 的 mount 命令来匹配这个偏移量。这总是很容易出错,而且不是很灵活。幸运的是,有一个更简单的方法可以做到这一点。来自 libguestfs-tools 包的 guestmount 程序可以让你从 Linux 中访问或 挂载 虚拟磁盘镜像。你可以在 Fedora 上用这个命令安装 libguestfs-tools:
有了Ventoy你就无需反复地格式化U盘,你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件拷贝到U盘里面就可以启动了,无需其他操作.
磁盘和文件系统的管理是运维人员的重要工作内容之一,本文对磁盘和文件系统的一些概念做了详细解释,管理命令给出了常用示例,方便自己在工作时随时查阅,也欢迎各位一同学习。
使用libvirt 扩展虚拟机磁盘的方法: libvirt 工具支持KVM/Qemu,xen, lxc,openvz, esx, hyperv 等虚拟化,是一个使用及其广泛的虚拟化管理工具.
编写目的:本文档作为Allwinner Tina Linux系统平台开发指南,旨在帮助软件开发工程师、技术支持工程师快速上手,熟悉Tina Linux系统的开发及调试流程。
陈列技术:Inte;l Embedded Server RAID Technology II
Raspberry Pi 内核Linux代码存储在 GitHub 中,可以在github.com/raspberrypi/linux上查看。
搭建私有云时需要制作一些操作系统的基础镜像,这里也有一些持巧,在这里记录下来以备忘。 安装CentOS6操作系统 这里没有太多好说的,我是从这里下载最小安装ISO进行安装的,安装的硬盘大小为20G。安装时大部分选项都是默认的,只有分区采用了自定义分区方案,200M的boot分区,其它全部作为根分区。如果需要交换分区,以后可以使用文件分区,使用文件分区的操作方法如下: dd if=/dev/zero of=/swapfile bs=1G count=2 chmod 600 /swapfile mkswap -
OTA(Over-the-Air)是一种通过无线通信网络(如Wi-Fi、蜂窝网络)远程下载和安装设备固件或软件更新的方式。这种方式广泛应用于智能手机、物联网设备、汽车电子等领域。
嵌入式linux设备要进行软件升级有很种多方式方法,总的来说可以分为本地升级和远程升级。本地升级包括升级工具升级,存储介质升级等,远程升级是指通过网络进行程序升级。这里介绍一种同时支持本地和远程升级的方法,以供参考。
如果是在本地的机器上安装kvm和虚拟机,拷贝文件还可以通过外接usb和kvm的redirect usb device来完成。而如果是远程的kvm,该如何拷贝文件到本地是一个问题。
一台没系统的普通电脑 u盘一个(大于1G,最小安装的话不超过1G,根据选择系统大小匹配U盘即可) CentOS7.3 iso文件一个 UltraISO工具
1:到fedora官网下载fedora的DVD镜像文件。
大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。 1、概述 Anaconda是RedHat、CentOS、Fedora等Linux的安装管理程序。它能够提供文本、图形等安装管理方式,并支持Kickstart等脚本提供自己主动安装的功能。此外,其还支持很多启动參数,熟悉这些參数可为安装带来非常多方便。该程序的功能是把位于光盘或其它源上的数据包,依据设置安装到主机上。为实现该定制安装,它提供一个定制界面,能够实现交互式界面供用户选择配置(如选择语言,键盘,时区等信息)。Anaconda的大部分模块用Python编写,有少许的加载模块用C编写。 Anaconda支持的管理模式: (1)Kickstart提供的自己主动化安装; (2)对一个RedHat实施upgrade; (3)Rescuse模式对不能启动的系统进行故障排除。 要进入安装步骤,须要先有一个引导程序引导启动一个特殊的Linux安装环境系统;引导有多种方式: (1)基于网络方式的小型引导镜像,须要提供小型的引导镜像; (2)U盘引导,通过可引导存储介质中的小型引导镜像启动安装过程; (3)基于PXE的网络安装方式,要提供PXE的完整安装环境; (4)其它bootloder引导(如GRUB)。 可用的安装方式:本地CDROM、硬盘驱动器、网络方式(NFS、FTP、HTTP)。 通过网络方式安装时,不论通过FTP、HTTP还是NFS方式共享安装,能够将安装光盘先复制到网络server上保存为iso镜像,然后loop挂载到共享文件夹或网页文件夹(当然,拷贝镜像中的全部文件到指定位置或直接挂载到共享文件夹也可),而通过NFS方式时,能够直接将光盘的iso文件放到共享文件夹就可以,安装程序挂载共享文件夹后能够自己主动识别镜像。 注意思复制安装光盘,并保存为一个 iso 映像文件的方法(对于 DVD/CD): # dd if=/dev/cdrom of=/location/of/disk/space/RHEL.iso bs=32k 注意拷贝时bs块大小设置为32k,我实验时设为1M,尽管减小了文件体积,可是安装读镜像时会报错。 对于Kickstart,它是一个利用Anconda工具实现server自己主动化安装的方法。通过生成的kickstart配置文件ks.cfg,server安装能够实现从裸机到全功能服务的的非交互式(无人值守式)安装配置;ks.cfg是一个简单的文本文件,文件包括Anconda在安装系统及安装后配置服务时所须要获取的一些必要配置信息(如键盘设置,语言设置,分区设置等)。Anconda直接从该文件里读取必要的配置,仅仅要该文件信息配置正确无误且满足全部系统需求,就不再须要同用户进行交互获取信息,从而实现安装的自己主动化。可是配置中假设忽略不论什么必需的项目,安装程序会提示用户输入相关的项目的选择,就象用户在典型的安装过程中所遇到的一样。一旦用户进行了选择,安装会以非交互的方式(unattended)继续。使用kickstart能够实现流线化自己主动化的安装、高速大量的裸机部署、强制建立的一致性(软件包,分区,配置,监控,安全性)、以及降低人为的部署失误。 使用Kickstart方法安装的过程包含创建一个kickstart文件、创建有kickstart文件的引导介质或者使这个文件在网络上可用、筹备一个安装树、開始ks安装(anconda自身启动 –>选取ks安装模式–> 从ks文件读取配置 –> 最后安装)。创建kickstart配置文件能够使用不论什么文本编辑器,也能够使用图形化配置工具system-config-kickstat(须要安装system-config-kickstart.noarch包)。注意配置文件生成后,推荐使用ksvalidator命令检查配置文件语法及完整性错误,比如: [root@bogon ~]# ksvalidator ks.cfg not enough arguments for format string Kickstart文件的语法及參数含义可參考 http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-kickstart2-options.html。 我们以RHEL 6.0的安装为例来分析Anaconda。为紧跟新版本号,anaconda源代码则使用较新的在Fedora 15中使用的版本号。先从Fedora的下载网
我运行 Linux 作为我的主要操作系统,我在一个虚拟机中启动 FreeDOS。大多数时候,我使用 QEMU 作为我的 PC 模拟器,但有时我会用 GNOME Boxes(它使用 QEMU 作为后端虚拟机)或用 VirtualBox 运行其他实验。
virt-resize --shrink /dev/vda1 w2k8.img w2k8.img.29G
du与df du(estimate file space usage) df(report file system disk space usage) df 查看磁盘容量 df 加上-h参数 更方便的查看 human-readable df -h du 查看目录的容量 # 默认同样以 块 的大小展示 du # 加上`-h`参数,以更易读的方式展示 du -h du -h #同--human-readable 以K,M,G为单位,提高信息的可读性。 du -a #同--all 显示目录中所有文件的大小。 d
在上一篇中,我们介绍了如何在 CentOS7上安装并配置KVM,以及通过KVM安装CentOS系统。本篇则是介绍在KVM里安装完虚拟机后,如何使用KVM来管理虚拟机。
mount 命令用来挂载文件系统。其基本命令格式为: mount -t type [-o options] device dir device:指定要挂载的设备,比如磁盘、光驱等。 dir:指定把文件系统挂载到哪个目录。 type:指定挂载的文件系统类型,一般不用指定,mount 命令能够自行判断。 options:指定挂载参数,比如 ro 表示以只读方式挂载文件系统。
平台:Ubuntu32位虚拟机 目标平台:海思Hi3559V100 工欲善其事必先利其器,在进行嵌入式linux开发的时候需要搭建一个能够调试的环境,在电脑上无疑是最好最方便的了。至于虚拟机怎么搭建就不多说了,这里我用的32位的Ubuntu16.04主要是方便编译之前文章中自己写的OS 首先安装aarch64-linux-gnu工具链
领取专属 10元无门槛券
手把手带您无忧上云