每次启动 Ubuntu 时,分区都会被重新挂载超过 1 次,有时会导致非常长靴。示例如下:
> dmesg
...
[ 21.472020] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro
...
[ 42.021537] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro,commit=0
...
我怀疑这里存在分区重叠的问题,关于sda4
和sda5
:
> sudo fdisk -l
Device Boot Start End Blocks Id System
/dev/sda1 63 610469 305203+ de Dell Utility
/dev/sda2 612352 32069631 15728640 7 HPFS/NTFS/exFAT
/dev/sda3 * 32069632 238979788 103455078+ 7 HPFS/NTFS/exFAT
/dev/sda4 238983166 625141759 193079297 5 Extended
/dev/sda5 238983168 612630527 186823680 83 Linux
/dev/sda6 612632576 625141759 6254592 82 Linux swap / Solaris
更多细节:
> more /etc/fstab
...
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
# / was on /dev/sda6 during installation
UUID=b33be99b-5c9e-449e-ad48-be608aeff001 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda7 during installation
UUID=7c9071cc-b77b-40da-9f80-6b8a9a220cb1 none swap sw
和
> mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro,commit=0)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/piero/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=piero)
我在64 位 Dell Studio XPS 机器 上运行 Ubuntu Oneiric + LXDE ,与 Windows 7 双启动。
一个月前,我调整了 Ubuntu 分区的大小,但这样做可能弄乱了一些东西。
您知道为什么会发生这种长时间启动吗?
答案1
不用担心 sda5,它是一个扩展分区。FAT 表只有 4 个条目的空间,如果您需要超过 4 个分区,则可以创建一个扩展分区 (sda4)。这样的扩展分区依次有自己的分区表。分区 sda5 和 sda6 位于 sda4 内。可以将其视为保存分区的容器。
分区 sda1、2 和 3 称为主分区,它们直接使用“FAT 槽”。
重新安装 sda5 不会花很长时间;下一行的时间戳可能为亚秒,但您将其从代码片段中删去。时间戳仅可靠地显示某个操作的开始。
查看此主题进一步分析启动过程中最耗时的部分。