Ond*_*žka 5 external-hdd system-installation
我想在已连接(但未安装)的磁盘上安装 Ubuntu,而无需从 DVD 或 USB 启动。目标是将 Ubuntu 安装在外部磁盘上,拔下它,将其插入其他计算机并运行。
我知道这需要 20 分钟等等。我只是想从正在运行的系统中完成它,而无需重新启动它。
我有哪些选择?
编辑:为了更清楚,我有这个场景:
因此,使用 USB 密钥或复制我自己的系统的解决方案不是我所需要的。
小智 5
如果您使用的是 Ubuntu 机器,那么您只需将正在运行的系统复制到外部硬盘驱动器中即可。
让我们假设您已经对外部硬盘驱动器进行了分区。对于这个例子,我将使用 2 个分区:/ 和 /home。
$ sudo mkdir -p /target
$ sudo mount /media/external-hdd/main /target
$ sudo sync
$ sudo cp -ax / /target
$ sudo mount /media/external-hdd/home /target/home
$ sudo cp -ax /home /target/home
Run Code Online (Sandbox Code Playgroud)
cp -ax
不跨越不同的文件系统并且被归档(保留权限,不遵循符号链接等)
然后,您必须更新目标磁盘中的 grub 设置和 fstab。您可以使用chroot
,但在此之前,您需要:
$ sudo mount -o bind /sys /target/sys
$ sudo mount -o bind /proc /target/proc
$ sudo mount -o bind /dev /target/dev
Run Code Online (Sandbox Code Playgroud)
现在您已准备好 chroot:
$ sudo chroot /target
# (now you are in the external HD as root)
Run Code Online (Sandbox Code Playgroud)
现在,您必须更新 fstab 和 grub 中的 UUID。为了获得 UUID,您可以运行:
# blkid
Run Code Online (Sandbox Code Playgroud)
然后,将 /etc/fstab 中的 UUID 替换为通过blkid
.
最后一步是更新引导配置并在外部硬盘驱动器中安装引导加载程序。在我的情况下,我使用 grub,所以,我有 edit /boot/grub/menu.lst
。在那里,您必须替换以# kopt=root=UUID=... ro
UUID开头的行并将 UUID 的内容替换为具有根文件系统的分区。
# grub-install /device/name
# update-grub
Run Code Online (Sandbox Code Playgroud)
其中 /device/name 是外部硬盘。
然后,您可以退出 chroot 并卸载设备。
# ^D
$ sudo umount /target/sys
$ sudo umount /target/proc
$ sudo umount /target/dev
$ sudo umount /target/home
$ sudo umount /target/
Run Code Online (Sandbox Code Playgroud)
磁盘应该可以使用了。一旦你启动它,它可能会运行fsck
,因为它没有正确卸载(你实时复制了内容)。
如果您有 ISO 映像,则可以使用本文提到的这 2 个工具之一创建带有实时系统的可启动 USB:
https://wiki.ubuntu.com/LiveUsbPendrivePersistent
只需在unity中输入USB,就会出现创建此类磁盘的程序。
归档时间: |
|
查看次数: |
3879 次 |
最近记录: |