下面是我的研究与描述试图复制Ubuntu 20.04
在单独的交换分区上启用休眠Thinkpad T420
根据当前问题的答案转到新的SDD驱动器。最终我取得了成功,但在尝试这些建议时遇到了许多问题(细微差别)。以下SDD和HDD将被视为可互换的术语。
首先,我尝试了最简单和直接的方法(我认为),这是描述在Pilot6的回答-将文件从源分区复制到目标分区
我用的是复制rsync
命令。问题是我的新SDD驱动器不能在没有旧SDD驱动器的情况下启动Ubuntu(两个SDD驱动器必须连接)。对于这种情况,我发现的唯一建议是安装、更新或恢复Grub
配置。但这并没有什么帮助。将新根的UUID设置为grub配置,并按建议更新grub在这里:
/etc/default/grub GRUB_DEVICE_UUID = 40 dbf2e4 e0c5 - 4 f75 - 83 bc - 3176 dc06d164
也没有工作。
问题不在这里Grub
而是在指向旧驱动器的交换分区的UUID中。
如果你在单独的交换分区上启用休眠,你也必须更新交换分区的UUID/etc/uswsusp.conf
并执行更新命令initramfs
要应用更改:
Update-initramfs -u -k all
否则在启动时将出现黑屏,没有诊断信息。
幸运的是,有一次偶然的机会,我让这个黑屏挂了大约5分钟。然后出现以下诊断信息:
resume: Could not stat the resume device file '/dev/disk/by-uuid/8e8927aa-eca7-43d6-b7cd-66cfda70a242请输入完整路径名重试或按ENTER引导系统:
统计
,而不是开始
-可能是信息中有错别字。
相关问题:无法统计恢复设备文件
后来我发现'8e8927aa-eca7-43d6-b7cd-66cfda70a242' -是我在旧硬盘驱动器上的交换分区的UUID。
我可以通过简单的分区名指定新驱动器上的根位置,而不是UUID:“/dev/sdx1”并点击,从而在新系统中引导输入
.
有趣的是,我指定了新的根位置,而不是新的交换位置。似乎Ubuntu在某种程度上解决了问题。
我运行更新命令initramfs
在启动到新的Ubuntu拷贝后。在命令日志中有以下内容:
I: The initramfs will attempt to resume from /dev/sda4 I: (UUID=0253f7b6-8e26-4d19-b262-6d8923911752) I:设置resume变量来覆盖它。
这意味着交换UUID已成功更改。
我也试图运行更新initramfs
从chroot
(来自Ubuntu的旧版本或Ubuntu的Live版本):
Sudo mount /dev/sdx1 /mnt Sudo mount /dev/sdx5 /mnt/boot/efi for I in /sys /proc /run /dev/ dev/pts;绑定“$i”/mnt$i;完成sudo chroot /mnt
initramfs
命令从何处执行chroot
但是没有更新的信息简历UUID
与之前的日志一样-不知道它是否正常工作。
那一刻我已经更新了Grub
从chroot
通过以下命令:
Sudo update-grub . install /dev/sdx
在那之后,我可以从新的SDD驱动器启动而不用旧的SDD驱动器。
下这个答案在评论中有来自andrybak:
目前正在尝试使用这个答案将我的安装从旧硬盘迁移到新的硬盘。我在“将grub安装到新驱动器”这一步失败了。Grub一直指向/找到旧HDD上的安装,我不知道如何说服Grub看新的HDD。
这可能是我上面描述的类似问题。
以这种方式复制的Ubuntu正在正常加载,但我注意到安全系统有一些问题:当我挂载其他驱动器的分区时gnome-disks
我打不开鹦鹉螺
(点击他们的链接gnome-disks
将什么也不做)。这是由于错误:没有权限
.
解决办法如下:
- 我通常在新的SDD驱动器上安装新的Ubuntu(没有office和更新的最低版本)。
- 复制旧Ubuntu的文件到新Ubuntu安装分区。在这种情况下,没有问题
没有权限
.
(更新.后来我发现问题出在没有权限
是由于文件复制不良。命令rsync——
不能复制文件的所有属性,也不能用于复制系统文件。需要使用命令rsync -axHAWXS——numeric-ids——info=progress2
在的情况下rsync
但最好还是用cp -
因为cp
工作速度比rsync
本地复制-将整个文件系统层次结构从一个驱动器复制到另一个驱动器)
通过这种方法,我将我的Ubuntu从MBR磁盘复制到新的GPT磁盘。(在安装最低版本的Ubuntu之前,我将新的SDD格式化为GPT。)相关问题:
在工作源操作系统下复制文件不工作:
我尝试复制文件在当前的工作系统(不是Live版本)作为评论中讨论下Pilot6的回答通过以下命令:
Sudo rsync -a / /mnt/dest/——exclude sys——exclude proc——exclude dev——exclude TMP——exclude media——exclude mnt——exclude run Sudo mkdir sys proc dev TMP media mnt run Sudo mkdir /var/ TMP
和更新Grub
从chroot
.
在这种情况下,新版本的Ubuntu启动,但屏幕分辨率较低。可能是由于当前的工作系统,某些特定于监视器的驱动程序没有复制或复制时出现错误。
还测试了ljrk的回答-使用dd comand
sudo dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress 127945670656 bytes (128gb, 119 GiB) copies, 818 s, 156 MB/s dd: error writing '/dev/sdb': No space left on device 1953669+1 records in 1953669+0 records out 128035676160 bytes (128gb, 119 GiB) copies, 829,897 s, 154 MB/s
通过使用USB SDD安装Ubuntu和dd
命令我逐位复制源SDD到目标SDD。结果,目标SDD具有相同的分区、相同的uuid和相同的PARTUUID。
下面是关于Live USB SDD和改变uuid, PARTUUIDs为新的。
为了获得更高的速度,最好在笔记本电脑中插入源和目标SDD驱动器(optibay / caddy适配器的第二个SDD驱动器),并将运行dd
命令从可引导u盘或USB SDD / USB HDD。我找到了Ubuntu的两个程序来制作可引导的u盘或USB硬盘。我想做USB硬盘(SDD),这是相当具有挑战性的。
WoeUSB
程序也可以用来创建可引导的硬盘,而不仅仅是u盘但是这在程序描述中没有指定.下面的命令从Windows 10 Pro映像创建可引导的硬盘(通过UI不可能指定USB硬盘驱动器,只能指定u盘):
sudo woeusb——device "/home/username/Downloads/Win10_21H2_Russian_x64。Iso“/dev/sdx”文件系统
如何在Linux上用新的WoeUSB创建一个可引导的Windows 10 USB
也试过UNetbootin
工具(适用于Ubuntu),但无法使用NTFS
,只有FAT32 -这在win10 pro的情况下是不合适的,因为它有大约4.5 Gb的文件大小(FAT32不支持超过4gb的文件大小)。Ubuntu 20.04安装镜像必须能够安装在FAT32分区(最大的文件ubuntu-20.04.3-desktop-amd64.iso
图像是卡斯珀/ filesystem.squashfs
尺寸为2、1 gb
).我使用已经安装好的Ubuntu通过USB SDD连接。
下面的命令将图像写入带有FAT32 FS的USB SDD:
sudo unetbootin installtype=HDD targetdrive=/media/username/winds/ method=diskimage isofile="/home/username/Downloads/Win10_21H2_Russian_x64.iso"
通过用户界面,它是不可能指定目标为USB硬盘驱动器,只有作为u盘。在targetdrive
参数路径必须指定到挂载的USB驱动器。最后必须有斜线符号/
否则命令将失败,并返回错误:
Unetbootin /dev/sdx1sources空间不足
或者可能不会失败,但不会将文件写入目标驱动器。
dd
如果你只是想把你的系统移动到另一个驱动器上,它很有用——甚至Dropbox也可以在目标SDD上工作,而不需要重新链接。旧驱动器可以格式化。这样就完成了。
但是如果你想让两个硬盘在同一个笔记本上工作,新硬盘的uuid和partuuid必须更改为惟一的。下面是关于这方面的信息。
如何修改Linux文件系统分区的UUID
blkid | grep sdb1 /dev/sdb1: UUID="0c0f5bf5-4e0f-4f4e-85df-896c88e14ba0" umount /dev/sdb1 sudo e2fsck -f /dev/sdb1 #required by tune2fs before changed UUID sudo tune2fs -U 0c0f5bf5-4e0f-4f4e-85df-896c88e14ba5 /dev/sdb1 sudo blkid | grep sdb1 /dev/sdb1: UUID="0c0f5bf5-4e0f-4f4e-85df-896c88e14ba5"
来源:如何修改Linux文件系统分区的UUID
如何更改PARTUUID?
sudo blkid | grep sdb1 /dev/sdb1: PARTUUID="a41c501b-1800-41ed-968b-b7bbfe4ef5ef" sudo gdisk /dev/sdb x # enter x to change to experts menu c# enter c to change PARTUUID 1 #输入要更改的分区编号a41c501b-1800-41ed-968b-b7bbfe4ef6ef m # enter m to go back to main menu w # enter w to write the change to disk q # enter q to exit gdisk OK;写入新的GUID分区表(GPT)到/dev/sdb。警告:内核仍然使用旧的分区表。新表将在下次重新启动时使用,或者在运行partprobe(8)或kpartx(8)之后使用。操作已成功完成。sudo blkid | grep sdb1 /dev/sdb1: PARTUUID="a41c501b-1800-41ed-968b-b7bbfe4ef6ef"
来源:如何更改PARTUUID?
西弗勒斯晚礼服'answer-关于使用Clonezella
这也是一个很好的方法,但与使用相比,需要更多的时间来准备和设置dd
在开始克隆或保存系统映像的过程之前,必须准备好、启动Clonezella Live u盘,并且必须经过许多Clonezella UI的菜单。Clonezella的工作原理类似于dd
- uuid, PARTUUIDs也将被复制到目标SDD驱动器。
关于uuid, partuuid在Clonezilla页面的讨论:
/家庭
而不是整个系统。这应该是一个更容易的更改(只需将所有内容移过去,并在/etc /fstab中添加一行),大多数大文件可能会进入您的主目录(因此到更大的磁盘上)。