debian转移根目录

如何在 BIOS 启动的 Debian 虚拟机中将根目录转移到 /dev/sda 设备上?本文将从硬盘分区,根目录复制,重新启动等几个方面介绍。

硬盘分区

1.检查磁盘:查看当前的磁盘和分区情况,确认新添加的磁盘设备名称。

sh 复制代码
parted -l

2.创建分区表:

进入parted环境

sh 复制代码
parted /dev/sda 

进入后出现(parted)提示

3.查看当前分区表

复制代码
print

清除旧分区表(如果需要)

复制代码
mklabel msdos

创建 GPT 分区表

复制代码
 mklabel gpt

4.创建分区

创建启动分区(/boot)

复制代码
mkpart primary ext4 1MB 513MB

创建根分区(/)

复制代码
mkpart primary ext4 513MB 100%

5.设置启动标志

设置第一个分区(/boot)为启动分区

复制代码
set 1 boot on

6.退出 parted

复制代码
quit

7.格式化分区

格式化启动分区

sh 复制代码
sudo mkfs.ext4 /dev/sda1

格式化根分区

sh 复制代码
sudo mkfs.ext4 /dev/sda2

8.挂载分区:

创建一个临时挂载点

sh 复制代码
mkdir /mnt/newroot

挂载分区

sh 复制代码
mount /dev/sda2 /mnt/newroot
mount /dev/sda1 /mnt/newroot/boot

复制根目录

1.复制

sh 复制代码
rsync -aAXv --exclude={"dev/*","proc/*","sys/*","tmp/*","run/*","mnt/*","media/*"} / /mnt/newroot/

这个命令会同步所有文件和目录,但排除了一些动态挂载的系统目录。

2.更新 /etc/fstab:

• 编辑 /etc/fstab 文件,将根目录的挂载点从原来的设备指向 /dev/sda1。可以使用 blkid 命令获取新分区的 UUID,然后在 /etc/fstab 中更新对应的 UUID。

sh 复制代码
blkid /dev/sda1
blkid /dev/sda2
sh 复制代码
vim /etc/fstab

UUID=<新分区的UUID> / ext4 defaults 0 1

替换<新分区的UUID>

3.安装 GRUB 引导程序

更新 GRUB 配置

sh 复制代码
mount --bind /dev /mnt/newroot/dev
mount --bind /proc /mnt/newroot/proc
mount --bind /sys /mnt/newroot/sys
sh 复制代码
chroot /mnt/newroot
grub-install /dev/sda
update-grub

这些命令会将 GRUB 安装到 /dev/sda 上,并更新 GRUB 配置文件。

退出 chroot 环境

sh 复制代码
exit
umount /mnt/newroot/dev
umount /mnt/newroot/proc
umount /mnt/newroot/sys
umount /mnt/newroot/boot
umount /mnt/newroot

重启虚拟机

sh 复制代码
sudo reboot

验证

sh 复制代码
mount | grep /

确认根目录已经正确挂载到 /dev/sda1 上。

相关推荐
微露清风2 小时前
系统性学习Linux-第二讲-基础开发工具
linux·运维·学习
不会代码的小猴2 小时前
Linux环境编程第六天笔记--system-V IPC
linux·笔记
阳光九叶草LXGZXJ3 小时前
达梦数据库-学习-48-DmDrs控制台命令(同步之Manager、CPT模块)
linux·运维·数据库·sql·学习
诸神缄默不语3 小时前
Linux命令行教程
linux
i建模5 小时前
如何在Arch Linux中重设忘记的root密码
linux·运维·服务器
kida_yuan6 小时前
【Linux】运维实战笔记 — 我常用的方法与命令
linux·运维·笔记
@syh.6 小时前
【linux】进程控制
linux
何中应8 小时前
vmware的linux虚拟机如何设置以命令行方式启动
linux·运维·服务器
江畔何人初8 小时前
kubernet与docker的关系
linux·运维·云原生
百炼成神 LV@菜哥8 小时前
Kylin Linux V10 aarch64 安装启动 TigerVNC-Server
linux·服务器·kylin