在 Live CD 中

在 Live CD 中

我正在使用 ubuntu 10.10 双启动和 XP。我计划增加交换分区的大小。所以我删除了交换分区。然后我将分区向右移动,以便交换分区可以获得 2 GB。

然后我关闭系统,而没有在“/etc/fstab”文件中编辑交换的适当 UUID。

所以当我启动计算机时,它说“继续等待;按 S 跳过;按 M 手动... 等等”。但它对任何事情都没有反应(对于按 S 或 M)。

使用实时 CD,我使用 GParted 分区编辑器调整原始分区的大小并将其格式化为 linux-swap。fstab 文件在实时 CD 中看起来不同,所以我尝试了 Ubuntu 的恢复模式。在那里,我用正确的 UUID 编辑了 fstab 文件以进行交换。

在我重新启动系统后,它从未完成启动

在 fdisk 命令的输出中,交换分区的起始扇区(或块,我不知道它是什么)与连续分区的结束值相同。

所以我在交换分区和下一个分区(NTFS 分区而不是系统分区)之间留出了一些空间。我已在 fstab 文件中更新了 UUID。

但它再次连续或无限地启动。

可能是什么问题?如何摆脱它?


fdisk 命令的输出

$ sudo fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x022c022b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        6374    51199123+   7  HPFS/NTFS
/dev/sda2            6375       60800   437176814+   f  W95 Ext'd (LBA)
/dev/sda5            6375       21672   122881153+  83  Linux
/dev/sda6           21690       40659   152367104    7  HPFS/NTFS
/dev/sda7           40929       60800   159614976    7  HPFS/NTFS
/dev/sda8           40664       40925     2097152   82  Linux swap / Solaris

 Partition table entries are not in disk order

在 Live CD 中

$ sudo blkid
/dev/loop0: TYPE="squashfs" 
/dev/sda1: UUID="F8F81FD0F81F8C4E" TYPE="ntfs" 
/dev/sda5: UUID="b6768343-075c-44a5-8229-4070a80d2d49" TYPE="ext4" 
/dev/sda6: LABEL="entertainment" UUID="7630A95430A91C5D" TYPE="ntfs" 
/dev/sda7: LABEL="label1" UUID="9414A64F14A63460" TYPE="ntfs" 
/dev/sda8: UUID="1993033c-a261-4506-8520-2b5ff9fd9a60" TYPE="swap" 


我可以在恢复模式下启动 Ubuntu。

我已将位于硬盘驱动器中的文件系统挂载到挂载点 /mnt。kern.log 文件 (/mnt/var/log/kern.log) 的内容位于 pastebin 中。链接为内核日志

fstab文件(/mnt/etc/fstab)内容为文件系统

当启动画面显示时我按下了 break 键。它显示了这一行:

(process:311):GLib-WARNING ** :getpwuid_r(): failed due to unknown user id (0)

然后一些消息重复了三次。我再次按下中断键,启动画面再次显示。几分钟后,当我按下中断键时,消息重复更多次。
我已记下并在此处。那里可能缺少一些文本。

fsck from Util-linux 2.17.2
/dev/sda5: clean, 191939/7684096 files, 5176534/30720288 block
* starting AppArmor profiles
Skipping profile in /etc/apparmor.d/disable:usr.bin.firefox
                                                                              [ok]
*setting sensors limits                                                       [ok]

*Not starting jetty-edit  /etc/default/jetty and change NO_START to be 0 (or     comment   it out)

Speech dispatcher disable: edit /etc/default/speech-dispatcher
*pulse Audio  (...... some thing ......)
Saned disable  (...... some thing ......)
* Enabling edit executable binary format bin fmt-super                        [ok]
*checking battery state ...                                                   [ok]

答案1

Live CD 有自己的文件系统,/etc/fstabLive CD 上的文件不等同于fstab系统上的文件。Live CD 是完成这项工作的合适工具。

首先,将您的 Ubuntu 分区挂载到挂载点:

sudo mount /dev/sda5 /mnt

接下来开始编辑文件:

sudo nano /mnt/etc/fstab

导航到包含交换的行,然后按Ctrl+K删除该行。在其位置输入以下行:

UUID=1993033c-a261-4506-8520-2b5ff9fd9a60 none            swap    sw              0       0

Ctrl按+保存更改X,然后按YEnter

答案2

我看到您的新交换分区称为 /dev/sda8。您可以在 fstab 文件中使用它来代替 UUID。在我看来,这更简单,而且只有在添加额外的内部硬盘时才可能出现问题。

您必须先从实时 CD 安装本地文件系统,然后才能执行任何有用的操作。

sudo mount /dev/sda5 /mnt

您之前无法挂载它的原因是,除非 fstab 明确表示您不需要,否则您必须使用 sudo 来挂载分区。而在 Live CD 中,并没有这样说。

现在,您的硬盘位于 /mnt。因此,要编辑的正确 fstab 位于 /mnt/etc/fstab。

或者,您可能更愿意设置 chroot。这意味着您可以拥有一个 shell,其中所有内容看起来都像是从硬盘驱动器而不是实时 cd 运行的。要进行设置,请在 /mnt 上安装 /dev/sda5 后执行以下操作:

sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc
# The above two commands make kernel settings available to the chroot.
# They aren't always necessary, but they never hurt.

sudo chroot /mnt

此时,您将成为内置硬盘上的 root 用户。因此,编辑 /etc/fstab 将编辑硬盘上的 fstab,而不是实时 CD。并且您运行的所有命令都将从硬盘运行。

相关内容