我读过这个问题我可以在不卸载并重新安装 Linux(或丢失数据)的情况下调整根分区的大小吗?在我问之前。但我在创建根分区时没有使用 LVM,因此我不确定链接问题的解决方案是否适用于我的问题。
我使用的是 Debian Linux 发行版,名为CrunchBang
,以下是我的笔记本电脑的主要信息,可能会有所帮助。
*@*:~$ uname -a
Linux * 3.2.0-4-686-pae #1 SMP Debian 3.2.60-1+deb7u1 i686 GNU/Linux
*@*:~$ sudo df -h
[sudo] password for *:
Filesystem Size Used Avail Use% Mounted on
rootfs 323M 259M 48M 85% /
udev 10M 0 10M 0% /dev
tmpfs 294M 636K 294M 1% /run
/dev/disk/by-uuid/da3f8ae3-c79f-4025-accb-1f64bf59ba84 323M 259M 48M 85% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1.8G 43M 1.7G 3% /run/shm
/dev/sda9 442G 15G 404G 4% /home
/dev/sda8 368M 11M 339M 3% /tmp
/dev/sda5 8.3G 6.8G 1.1G 87% /usr
/dev/sda6 2.8G 500M 2.2G 19% /var
*@*:~$ sudo fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005d608
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 684031 340992 83 Linux
/dev/sda2 686078 976771071 488042497 5 Extended
/dev/sda5 686080 18262015 8787968 83 Linux
/dev/sda6 18264064 24121343 2928640 83 Linux
/dev/sda7 24123392 36278271 6077440 82 Linux swap / Solaris
/dev/sda8 36280320 37058559 389120 83 Linux
/dev/sda9 37060608 976771071 469855232 83 Linux
*@*:~$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=217630,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=300952k,mode=755)
/dev/disk/by-uuid/da3f8ae3-c79f-4025-accb-1f64bf59ba84 on / type ext4 (rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1817380k)
/dev/sda9 on /home type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered)
/dev/sda8 on /tmp type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered)
/dev/sda5 on /usr type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered)
/dev/sda6 on /var type ext4 (rw,relatime,user_xattr,barrier=1,data=ordered)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,nosuid,nodev,noexec,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
gvfs-fuse-daemon on /home/min/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
*@*:~$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=da3f8ae3-c79f-4025-accb-1f64bf59ba84 / ext4 errors=remount-ro 0 1
# /home was on /dev/sda9 during installation
UUID=a832e353-d0fc-4e87-81fa-d08c77f84e81 /home ext4 defaults 0 2
# /tmp was on /dev/sda8 during installation
UUID=5f3e0eab-4f75-44a1-81af-c450d4ff301d /tmp ext4 defaults 0 2
# /usr was on /dev/sda5 during installation
UUID=b4c895ff-cb26-4c65-bcd7-3f6cd986756e /usr ext4 defaults 0 2
# /var was on /dev/sda6 during installation
UUID=8bedb184-389f-4295-9612-c28a94c81b1e /var ext4 defaults 0 2
# swap was on /dev/sda7 during installation
UUID=976ec3fe-7b8e-436b-8c52-05be582f4e32 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
#/dev/sdb4 /media/usb0 auto rw,user,noauto 0 0
*@*:~$ sudo vgdisplay
No volume groups found
*@*:~$ sudo lvdisplay
No volume groups found
希望有人能给我一些建议或者资料供我参考,谢谢~
答案1
您的根文件系统似乎位于 /dev/sda1 上(尽管在您提供的信息转储之间,关于哪个分区具有 UUID da3f8ae3-c79f-4025-accb-1f64bf59ba84 的有用信息不可用。它可能完全位于另一张光盘上)。
在你的情况下,扩展是相当困难的,因为你有一个扩展分区直接跟随它。你可以做的是:
- 缩小 /home 文件系统
- 删除并使用相同的起始块重新创建
/dev/sda9
(/home
) 以便为新分区腾出足够的空间 - 创建分区,创建 ext4 文件系统并从
/dev/sda1
那里复制所有内容 - 更新位于该分区上的 etc/fstab 并更新该分区的 UUID ,
/
然后update-grub
重新启动并尝试选择新条目
另一种可能不太容易出错(因为不涉及调整大小)的路线是合并 sda1 和 sda5 的数据并制作 sda1 /boot
:
- 从CD启动
将 sda5 安装在 /tmp/sda5 上并执行以下操作:
mkdir /tmp/sda5/usr mv /tmp/sda5/* /tmp/sda5/usr
(这当然会抱怨无法移动
usr
到自身)安装 sda1
/tmp/sda1
并复制从/tmp/sda1
到 的所有内容/tmp/sda5
,除了/tmp/sda1/boot
- 删除
/tmp/sda1
除boot
目录及其内容之外的所有内容 /usr
从 中删除条目并为(在 sda1 上)fstab
创建一个条目。/boot
/
更新fstab 中的条目- 运行
update-grub
,检查 boot.cfg 中的菜单项并重新启动
无论哪种情况,都不要在未对系统进行完整转储(使用dd
)的情况下启动任何此操作,以便您可以恢复当前情况。
购买新光盘并在其上创建分区布局(具有更大的sda1
)、创建文件系统、复制各个分区内容并调整 fstab 和boot.cfg
.
IMO 还应该尝试找出以这种方式设置此系统的人,并确保他们悔改自己的错误。
答案2
您可以扩展根分区吗?是的。但您无法在线执行*,您需要从 Live CD 或 USB 记忆棒启动。任何发行版都可以,debian、fedora、kali 等。
*:技术上可以做到,但可能会变得复杂;
当然,要做到这一点,你需要找到一些空间。如果不使用 LVM,您需要在根分区之后立即找到磁盘上的空白空间(sda1?sda8?sda9?从您共享的信息来看,这并不明显,因为 root 是通过 UUID 而不是通过 sd* 引用安装的 -- blkid可以向您展示此映射)。
您有两种选择: - 要么在扩展分区中找到空间并将根分区移至新分区,要么; - 使用备用磁盘,您可以在其中重新创建新的分区方案并将所有数据移入其中;
这样做有很多陷阱,因此我建议在尝试使其工作时保留磁盘的克隆。如果失败,您可以随时返回到开始的地方。
我知道这是相当高的水平,但你的问题可以通过多种方式解决。