system.img ubuntu?ubuntu系统镜像

大家好,今天给各位分享system.img ubuntu的一些知识,其中也会对ubuntu系统镜像进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

ubuntu 系统修复

在使用Ubuntu 20.04系统时,若遇到无法启动的困境,可以尝试进入紧急模式或从优盘系统启动,然后进行问题排查。

请注意,尽管许多主板固件仍然被称为BIOS,但现代主板普遍采用UEFI固件。在UEFI界面中,系统信息可能显示为BIOS,但通常在UEFI信息出现时,即确认为UEFI固件。

进行数据备份时,可以使用rsync工具,它高效且能妥善处理软链接问题,即使在处理大容量数据时,仅需几分钟。制作U盘系统操作简单,假设U盘为/dev/sdb。

UEFI模式的选择对于硬盘分区格式至关重要。GTP硬盘需关闭CSM,而MBR硬盘需开启CSM。UEFI、EFI和Grub的工作流程包括UEFI执行检查、MBR引导代码、EFI分区中的Grub程序、内核和initrd.img。

若删除了/boot/efi分区,grub将无法启动。通过使用U盘系统进入并使用boot-repair修复,或在MBR模式下恢复EFI分区,均是有效方法。MBR是磁盘第一个扇区的特殊区域,用于存储启动引导程序和磁盘分区表,而GPT格式则支持更大容量的磁盘和更多分区。

遇到显示无法加载efi分区的问题,显示错误信息后,进入紧急模式进行修复。修改system.conf,将等待时间设置为10秒,避免长时间等待。确保uuid和fstab一致,使用mount-a挂载正常。设置设备的mount为nofail,继续进行软件更新,通过sudo apt upgrade重启,可能与initrd.img相关。

Ubuntu使用apt作为包安装工具,用于系统和应用的安装;snap则适用于跨平台兼容的应用安装。重装ubuntu-desktop是解决软件问题的一个选择。进行软件升级时,可能遇到网络配置界面无有线连接项的问题,这可能是NetworkManager的bug导致。

如何修改system.img并加入root

ROOT存在于Linux系统、UNIX系统(如AIX、BSD等)和类UNIX系统(如Debian、Redhat、Ubuntu等版本的Linux系统以及Android系统)中,是系统中唯一的超级用户,相当于Windows系统中的administrator用户。其具有系统中所有的权限,如启动或停止一个进程,删除或增加用户,增加或者禁用硬件等等。

所以如果未root是无法在手机端修改/system/下的文件的。

关于ubuntu的grub2引导

步骤如下:

a进入grub的命令模式。进入grub界面后按C键进入命令行界面。

b先熟悉一下grub的一些命令 grub>help

c熟悉一下cat命令

d root指令来指定/boot所在的分区

e kernel指令来指定linux的内核,及所在的分区

f用initrd命令来指定initrd文件

g boot引导系统

cat命令的用法

cat指令是用来查看文件内容的,有时不知道Linux的/boot分区,以及/根分区所在的位置,要查看/etc/fstab的内容来得知,这时,就要用到cat(hd[0-n],y)/etc/fstab来获得这些内容;注意要学会用tab键命令补齐的功能;

grub> cat(按tab键会出来hd0或hd1之类的;

grub> cat(hd0,注:输入hd0,然后再按tab键;会出来分区之类的;

grub> cat(hd0,6)

Possible partitions are:

Partition num: 0, Filesystem type unknown, partition type 0x7

Partition num: 4, Filesystem type is fat, partition type 0xb

Partition num: 5, Filesystem type is reiserfs, partition type 0x83

Partition num: 6, Filesystem type is ext2fs, partition type 0x83

Partition num: 7, Filesystem type unknown, partition type 0x83

Partition num: 8, Filesystem type is reiserfs, partition type 0x83

Partition num: 9, Filesystem type unknown, partition type 0x82

grub> cat(hd0,6)/etc/fstab注:比如我想查看一下(hd0,6)/etc/fstab的内容就这样输入;

LABEL=// ext3 defaults 1 1

/dev/devpts/dev/pts devpts gid=5,mode=620 0 0

/dev/shm/dev/shm tmpfs defaults 0 0

/dev/proc/proc proc defaults 0 0

/dev/sys/sys sysfs defaults 0 0

LABEL=SWAP-hda1 swap swap defaults 0 0

/dev/hdc/media/cdrecorder auto pamconsole,exec,noauto,

managed 0 0

主要查看/etc/fstab中的内容,主要是Linux的/分区及/boot是否是独立的分区;如果没有/boot类似的行,证明/boot和 Linux的/处于同一个硬盘分区;比如上面的例子中LABEL=/这行是极为重要的;说明Linux系统就安在标签为LABEL=/的分区中;

如果您的Linux系统/boot和/没有位于同一个分区,可能cat(hd[a-n],y)查到的是类似下面的;

LABEL=// ext3 defaults 1 1

LABEL=/boot/boot ext3 defaults 1 2

root(hd[0-n,y)指令来指定/boot所在的分区;

其实这个root(hd[0,n],y)是可以省略的,如果省略了,要在kerenl命令中指定;前面已经说过(hd[0-n],y)硬盘分区的表示方法的用途;主要是用来指定/boot所在的分区;

eg:

grub> root(hd0,0)

kernel指令,用来指定Linux的内核,及/所在的分区;

kernel这个指令可能初学者有点怕,不知道内核在哪个分区,及内核文件名的全称是什么。不要忘记tab键的命令补齐的应用;

如果已经通过root(hd[0-n],y)指定了/boot所在的分区,语法有两个:

如果/boot和Linux的/位于同一个分区,应该是下面的一种格式;

kernel/boot/vmlinuz在这里按tab键来补齐,就看到内核全称了 ro root=/dev/hd[a-z]X

如果/boot有自己独立的分区,应该是;

kernel/vmlinuz在这里按tab键来补齐,就看到内核全称了 ro root=/dev/hd[a-z]X

在这里 root=/dev/hd[a-z]X是Linux的/根所位于的分区,如果不知道是哪个分区,就用tab出来的来计算,一个一个的尝试;或用cat(hd[0-n],y)/etc/fstab中得到Linux的/所在的分区或分区的标签;

grub> kernel/boot/在这里按tab键;这样就列出/boot中的文件了;

Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369

_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 grubBAK memtest86+-1.55

.1 xen-syms xen.gz

grub> kernel/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/

[Linux-bzImage, setup=0x1e00, size=0x18e473]

注解: root=LABEL=/是Linux的/所在的分区的文件系统的标签;如果您知道Linux的/在哪个具体的分区,用root=/dev/hd[a-z]X来指定也行。比如下面的一行也是可以的;

grub> kernel/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7

也可以把/boot所在的分区的指定 root(hd[0-n],y)这行省掉,直接在kernel中指定/boot所在的分区;所以就在下面的语法;

如果是/boot和Linux的根同处一个分区;

kernel(hd[0-n],y)/boot/vmlinuz ro root=/dev/hd[a-z]X

比如:

grub>kernel

如果是/boot和Linux所在的根不在一个分区;则是;

kernel(hd[0-n],y)/vmlinuz ro root=/dev/hd[a-z]X

grub> kernel(hd0,0)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7

[Linux-bzImage, setup=0x1e00, size=0x18e473]

或下面的输入,以cat出/etc/fstab内容为准;

grub> kernel(hd0,0)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/

[Linux-bzImage, setup=0x1e00, size=0x18e473]

initrd命令行来指定initrd文件;

grub> initrd/boot/initrd在这里tab来补齐;

grub> initrd/boot/initrd-2.6.11-1.1369_FC4.img

[Linux-initrd@ 0x2e1000, 0x10e685 bytes]

如果/boot是独立的一个分区,应该是如下样子的语法;比如下面的;

grub> initrd/initrd在这里tab来补齐;

grub> initrd/initrd-2.6.11-1.1369_FC4.img

[Linux-initrd@ 0x2e1000, 0x10e685 bytes]

boot引导系统;

grub>boot

下面是在我机器上的命令:

grub> cat(hd0,0)/etc/fstab

# This file is edited by fstab-sync- see'man fstab-sync' for details

LABEL=// ext3 defaults 1 1

/dev/devpts/dev/pts devpts gid=5,mode=620 0 0

/dev/shm/dev/shm tmpfs defaults 0 0

/dev/proc/proc proc defaults 0 0

/dev/sys/sys sysfs defaults 0 0

LABEL=SWAP-hda1 swap swap defaults 0 0

/dev/hdc/media/cdrecorder auto pamconsole,exec,noauto,managed 0 0

grub> root(hd0,0)

Filesystem type is ext2fs, partition type 0x83

grub> kernel/boot/在这里按tab补齐,全列出/boot所有的文件;

Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4

memtest86+-1.55.1 xen-syms xen.gz

grub> kernel/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/

[Linux-bzImage, setup=0x1e00, size=0x18e473]

grub> initrd/boot/在这里按tab补齐

Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 grubBAK

memtest86+-1.55.1 xen-syms xen.gz

grub> initrd/boot/initrd-2.6.11-1.1369_FC4.img注;输入intrd文件名的全名;

[Linux-initrd@ 0x2e1000, 0x10e685 bytes]

grub> boot

阅读剩余
THE END