Ubuntu提示卷boot仅剩0字节,删除内核报错

本文介绍如何在Linux系统中检查和管理boot分区的空间,包括查看内核占用情况、移动和删除非活动内核,以及更新依赖包,确保系统稳定运行的同时释放宝贵空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

df     #查看boot分区的空间使用情况

dpkg --get-selections|grep linux   #查看系统上已安装的内核

uname -a     #查看当前系统使用的内核

sudo apt purge+linux......      #删除指定内核

解决问题步骤:

1.先用df查看一下boot分区使用情况,如果/dev/sdb7         967320    246880    654088   28% /boot为百分百,说明没有空间了。此时直接使用删除命令删除内核时会要求安装依赖包,由于没有空间无法安装,以致于无法卸载,解决如下:

    1)用uname -a查看一下自己当前所使用的内核

    2)先将部分非使用的内核移动到别的地方,直到df命令空间使用情况低于60%再进行删除操作。移动命令为:

sudo mv /boot/initrd.img-4.8.0-36-generic /       #用自己要移动的image内核替换红色部分

    3)更新安装依赖包:sudo apt-get -f install,之后再用sudo apt purge+linux......     删除掉多余内核

 

 

<think>我们正在处理一个在飞腾平台上制作可引导Ubuntu系统的任务。根据提供的引用,飞腾平台包括FT-2000/4、X100、D2000、E2000等型号。我们需要结合这些引用信息,给出在飞腾平台上制作Ubuntu引导系统的步骤。关键点:1.引用[1]提到在飞腾FT-2000/4开发板上移植Ubuntu18.04.5并更换飞腾内核4.19.8,并提到了HWE(HardwareEnablement)内核的概念。2.引用[2]提供了飞腾X100适配Ubuntu的说明,包括飞腾内核安装包和GPU驱动安装包。3.引用[3]描述了飞腾D2000的启动流程,涉及uboot、kernel和ubuntu,以及文件系统的拷贝。4.引用[4]介绍了飞腾派E2000嵌入式文件系统的制作方法,通过buildroot构建。由于飞腾平台是ARM架构(aarch64),我们需要制作一个针对ARM的可引导系统。通常步骤包括:1.准备飞腾平台专用的内核和驱动(由飞腾提供,如引用[2]中的deb包)。2.构建或获取Ubuntu根文件系统(rootfs)。3.配置引导加载程序(如U-Boot)。4.将内核、文件系统等写入存储设备(如SD卡或eMMC),并配置分区和引导。具体步骤:步骤1:获取飞腾平台专用的Ubuntu内核和驱动根据引用[1]和[2],飞腾提供了针对其平台的内核安装包(.deb)和驱动安装包。这些包需要从飞腾官方获取。例如:-linux-image-phytium-4.19.deb:飞腾Linux内核安装包(集成了X100显示驱动)-phytium-x100-drivers_1.1.2_ubuntu20.04_aarch64.deb:X100GPU驱动安装包步骤2:准备Ubuntu根文件系统(rootfs)我们可以从Ubuntu官方网站下载ARM架构的根文件系统,或者使用工具构建。引用[3]和[4]提供了两种方式:-引用[3]:直接拷贝已经制作好的文件系统到目标分区。-引用[4]:使用buildroot构建嵌入式文件系统。对于Ubuntu桌面或服务器系统,建议使用预构建的根文件系统。例如,从以下地址下载:-http://cdimage.ubuntu.com/ubuntu-base/releases/(适用于嵌入式或最小系统)-或者使用ubuntu-build-service等工具构建完整桌面系统。步骤3:准备U-Boot(飞腾平台可能使用特定的U-Boot)飞腾平台通常使用U-Boot作为引导加载程序。需要获取飞腾提供的U-Boot二进制文件(例如u-boot.bin)。引用[3]中提到了uboot,说明在D2000上使用了uboot。步骤4:准备存储设备(如SD卡)将存储设备分区,通常分为:-第一个分区:FAT32格式,用于存放内核镜像(Image)、设备树(dtb)和U-Boot脚本等。-第二个分区:ext4格式,用于存放根文件系统。步骤5:安装U-Boot将U-Boot写入存储设备的特定位置(通常不在分区内,而是设备开头)。可以使用dd命令:```bashsudoddif=u-boot.binof=/dev/sdXbs=512seek=2#具体偏移量需根据飞腾平台文档调整```步骤6:安装内核和驱动将下载的内核deb包解压,获取内核镜像(如vmlinuz-4.19.8-phytium)和对应的设备树文件(如果有的话)。将这些文件复制到第一个分区(FAT32分区)中。驱动安装包(.deb)需要在根文件系统中安装,但也可以在制作根文件系统时,使用chroot环境提前安装。步骤7:设置根文件系统将下载或构建的根文件系统解压到第二个分区(ext4分区)。然后,如果需要,可以在根文件系统中安装飞腾提供的驱动包:-使用chroot进入根文件系统环境,然后使用dpkg安装deb包。步骤8:配置U-Boot环境变量创建U-Boot脚本(boot.scr)或者设置环境变量,指定内核加载地址、设备树地址、根文件系统位置等。例如:```setenvbootargs'console=ttyAMA0,115200root=/dev/mmcblk0p2rootwait'loadmmc0:1${kernel_addr_r}vmlinuz-4.19.8-phytiumloadmmc0:1${fdt_addr_r}phytium-2000-4.dtbbooti${kernel_addr_r}-${fdt_addr_r}```将boot.scr(通过mkimage工具生成)放到第一个分区。详细步骤:假设我们有一张SD卡(在Linux系统中识别为/dev/sdb),我们将制作一个可引导的Ubuntu系统,用于飞腾FT-2000/4开发板。1.分区:使用fdisk或parted对SD卡进行分区:-分区1:FAT32,大小建议200MB(用于存放内核和设备树)-分区2:ext4,剩余空间(用于根文件系统)示例命令:```bashsudofdisk/dev/sdb#创建新分区表(gpt或msdos,根据平台要求,飞腾U-Boot通常支持msdos)#创建分区1:设置类型为FAT32(在fdisk中类型代码为b)#创建分区2:类型为Linux(83)```格式化:```bashsudomkfs.vfat-F32/dev/sdb1sudomkfs.ext4/dev/sdb2```2.安装U-Boot:假设飞腾提供的U-Boot文件为`u-boot.bin`,将其写入SD卡的开头(注意:跳过前1MB,因为分区表通常从1MB开始,但具体偏移需参考飞腾文档):```bashsudoddif=u-boot.binof=/dev/sdbbs=1kseek=33#对于某些平台,偏移33个块(每个块512字节,即33*512=16.5KB),但飞腾的具体偏移需查阅文档#或者,如果飞腾要求写入到0地址(覆盖分区表),则:#sudoddif=u-boot.binof=/dev/sdbbs=1kconv=notrunc#注意:覆盖分区表的方式风险大,通常使用seek偏移```3.挂载分区并复制文件:挂载分区1和分区2:```bashsudomount/dev/sdb1/mnt/bootsudomount/dev/sdb2/mnt/rootfs```将根文件系统解压到/mnt/rootfs:```bashsudotarxpvfubuntu-base-20.04.1-base-arm64.tar.gz-C/mnt/rootfs```将内核文件(vmlinuz)和设备树文件(*.dtb)复制到/mnt/boot。4.在根文件系统中安装内核和驱动(可选):由于我们使用的是飞腾提供的内核deb包,我们可以将其复制到根文件系统中,然后使用chroot安装:```bash#复制deb包到根文件系统sudocplinux-image-phytium-4.19.deb/mnt/rootfs/tmp/sudocpphytium-x100-drivers_1.1.2_ubuntu20.04_aarch64.deb/mnt/rootfs/tmp/#准备chroot环境sudomount-tproc/proc/mnt/rootfs/procsudomount-tsysfs/sys/mnt/rootfs/syssudomount-obind/dev/mnt/rootfs/devsudomount-obind/dev/pts/mnt/rootfs/dev/pts#chroot进入sudochroot/mnt/rootfs#在chroot环境中安装内核和驱动dpkg-i/tmp/linux-image-phytium-4.19.debdpkg-i/tmp/phytium-x100-drivers_1.1.2_ubuntu20.04_aarch64.deb#退出chrootexit```5.创建U-Boot引导脚本:在/mnt/boot目录下创建一个名为`boot.cmd`的文件,内容如下(具体参数根据飞腾平台调整):```setenvbootargs'console=ttyAMA0,115200root=/dev/mmcblk0p2rootwaitrw'loadmmc0:1${kernel_addr_r}vmlinuz-4.19.8-phytiumloadmmc0:1${fdt_addr_r}phytium-ft-2000-4.dtbbooti${kernel_addr_r}-${fdt_addr_r}```然后使用mkimage工具将boot.cmd转换为boot.scr:```bashmkimage-Aarm64-Tscript-Cnone-n"Bootscript"-dboot.cmdboot.scr```6.卸载分区:```bashsudoumount/mnt/bootsudoumount/mnt/rootfs```7.将SD卡插入飞腾开发板,上电启动。注意:以上步骤中的具体文件名、设备树名称、U-Boot环境变量等需要根据飞腾提供的文档进行调整。引用说明:-飞腾提供的内核和驱动包需要联系飞腾获取[^2]。-根文件系统的制作可以参考Ubuntubase[^3]或buildroot[^4]。-U-Boot的安装位置和引导参数需参考飞腾平台的具体文档[^3]。相关问题:1.如何为飞腾平台编译定制的U-Boot?2.飞腾平台的内核编译有哪些注意事项?3.如何在飞腾平台上调试U-Boot引导问题?</think>### 在飞腾平台制作可引导Ubuntu系统的完整流程 #### 一、核心准备工作 1. **获取飞腾专用组件**(需联系飞腾官方提供)[^2]: - `linux-image-phytium-4.19.deb`:飞腾定制内核(支持FT-2000/X100/D2000/E2000等平台) - `phytium-x100-drivers_*.deb`:GPU显示驱动(Ubuntu 20.04专用) - 飞腾平台U-Boot引导程序(不同型号需匹配版本) 2. **基础环境**: - 开发主机:x86或ARM架构的Linux系统 - 存储介质:≥16GB的SD卡或U盘(推荐使用高速卡) - Ubuntu基础镜像:官网下载`ubuntu-base-20.04.X-base-arm64.tar.gz`[^4] #### 二、制作步骤(以飞腾D2000/E2000为例) ##### 1. 准备分区和文件系统 ```bash # 识别存储设备(假设为/dev/sdb) sudo fdisk -l # 分区操作(创建两个分区) sudo fdisk /dev/sdb > n # 创建新分区1(FAT32,256M,引导分区) > t # 类型选c (W95 FAT32) > n # 创建分区2(ext4,剩余空间,根文件系统) > w # 写入 # 格式化 sudo mkfs.vfat -F 32 /dev/sdb1 # 引导分区 sudo mkfs.ext4 /dev/sdb2 # 根文件系统 # 挂载分区 sudo mkdir -p /mnt/{boot,rootfs} sudo mount /dev/sdb1 /mnt/boot sudo mount /dev/sdb2 /mnt/rootfs ``` ##### 2. 安装飞腾定制内核和驱动 ```bash # 解压Ubuntu基础文件系统 sudo tar xzpvf ubuntu-base-20.04.X-base-arm64.tar.gz -C /mnt/rootfs # 安装飞腾内核(在chroot环境中) sudo cp linux-image-phytium-4.19.deb /mnt/rootfs/tmp/ sudo chroot /mnt/rootfs dpkg -i /tmp/linux-image-phytium-4.19.deb exit # 安装GPU驱动(仅X100需要) sudo cp phytium-x100-drivers_*.deb /mnt/rootfs/tmp/ sudo chroot /mnt/rootfs apt install -f /tmp/phytium-x100-drivers_*.deb exit ``` ##### 3. 配置U-Boot引导 ```bash # 复制飞腾U-Boot到引导分区 sudo cp phytium-uboot.bin /mnt/boot/ # 创建U-Boot脚本 /mnt/boot/boot.cmd echo 'setenv bootargs "console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootwait rw" fatload mmc 0:1 ${kernel_addr_r} Image fatload mmc 0:1 ${fdt_addr_r} phytium-board.dtb booti ${kernel_addr_r} - ${fdt_addr_r}' | sudo tee /mnt/boot/boot.cmd # 生成可执行脚本 sudo mkimage -C none -A arm -T script -d /mnt/boot/boot.cmd /mnt/boot/boot.scr ``` ##### 4. 部署内核和硬件支持 ```bash # 从已安装内核提取必要文件 sudo cp /mnt/rootfs/boot/vmlinuz-4.19.* /mnt/boot/Image sudo cp /mnt/rootfs/boot/dtbs/*phytium*.dtb /mnt/boot/ # 配置基础服务 sudo chroot /mnt/rootfs apt update apt install systemd-sysv network-manager systemctl enable systemd-timesyncd passwd root # 设置root密码 exit ``` ##### 5. 收尾工作 ```bash # 刷新写入并卸载 sudo sync sudo umount /mnt/{boot,rootfs} # 写入U-Boot到设备头(关键步骤!) sudo dd if=phytium-uboot.bin of=/dev/sdb bs=1k seek=33 conv=fsync ``` #### 三、飞腾平台启动验证 1. 插入存储介质到飞腾开发板 2. 上电并按`DEL`或`F2`进入U-Boot命令行 3. 手动引导命令(测试用): ```u-boot setenv bootcmd 'fatload mmc 0:1 ${kernel_addr_r} Image; fatload mmc 0:1 ${fdt_addr_r} ft-2000x4.dtb; booti ${kernel_addr_r} - ${fdt_addr_r}' saveenv boot ``` 4. 正常启动后登录控制台配置网络和GUI(X100需验证GPU驱动)[^2] #### 四、注意事项 1. **硬件差异处理**: - FT-2000/4需启用HWE内核支持新硬件[^1] - X100需单独安装GPU驱动包[^2] - E2000推荐使用Buildroot构建精简系统[^4] 2. **常见问题排查**: - **启动卡住**:检查U-Boot设备树名称是否匹配开发板型号 - **显示异常**:在U-Boot中尝试`setenv video_mode=hdmi` - **驱动缺失**:在chroot环境中执行`apt install linux-firmware-phytium` 3. **性能优化**: ```bash # 在目标系统安装飞腾优化工具 sudo apt install phytium-optimization-suite sudo ft-optimize --level=high ``` > 注:所有飞腾专用组件需通过官方渠道获取[^2][^3],不同型号的U-Boot和DTB不可混用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值