我是一名 Linux 新用户,使用的是 Ubuntu Desktop 22.04.03 LTS。为了尝试 Linux,我首先在 256GB nvme SSD 上使用 Windows 10 进行双启动,并使用 ubuntu 制作的 495 GB 默认分区在我的笔记本电脑(Lenovo Legion Y540)上的 1TB 硬盘上进行双启动。使用它一个月没有问题后,我确信我可以毫无问题地将它安装为我的唯一操作系统,这就是分区导致问题与我缺乏理解的地方。即使在遵循此处类似帖子的许多步骤之后,我的硬盘驱动器现在仍处于只读状态。
起初,我的主要错误是没有认识到“擦除磁盘”选项仅从笔记本电脑中删除了所选安装驱动器上的所有文件和分区。结果,我留下了剩余的数据分区供以前使用的 Windows 和旧的 ubuntu 安装使用。如果我没记错的话,我至少能够从数据中读取和写入,而我没有检查旧的 Ubuntu 分区。我从数据中删除了文件,并在查找问题后安装了gparted。我无法扩展驱动器,因为数据通过 UEFI 分区与额外的 Ubuntu 分开。有 4 个分区,一个供 Windows 使用的剩余分区、数据、fat32 UEFI 和 ext4 较旧的 ubuntu 安装。我删除了前 3 个分区,使用 gparted 将第四个分区移动到驱动器的开头并占用所有空间,但它不允许我在驱动器的开头使用 3MB。我不顾一切地继续前进。从那时起,我的驱动器就一直处于只读模式。此后我重新安装了我的 nvme main ubuntu 几次,最后希望在确定“擦除磁盘安装”仅从驱动器中删除所有分区后得到修复,并在硬盘驱动器上使用相同的分区重新安装(从之后开始)在本段中,我按照执行顺序列出了所有操作)。这会删除所有分区并为这个额外的 Ubuntu 安装设置分区以耗尽整个驱动器。但驱动器仍处于只读模式。当我尝试从主 nvme Ubuntu 或额外硬盘 ubuntu 写入时,硬盘驱动器为只读。我尝试使用 我的驱动器一直处于只读模式。此后我重新安装了我的 nvme main ubuntu 几次,最后希望在确定“擦除磁盘安装”仅从驱动器中删除所有分区后得到修复,并在硬盘驱动器上使用相同的分区重新安装(从之后开始)在本段中,我按照执行顺序列出了所有操作)。这会删除所有分区并为这个额外的 Ubuntu 安装设置分区以耗尽整个驱动器。但驱动器仍处于只读模式。当我尝试从主 nvme Ubuntu 或额外硬盘 ubuntu 写入时,硬盘驱动器为只读。我尝试使用 我的驱动器一直处于只读模式。此后我重新安装了我的 nvme main ubuntu 几次,最后希望在确定“擦除磁盘安装”仅从驱动器中删除所有分区后得到修复,并在硬盘驱动器上使用相同的分区重新安装(从之后开始)在本段中,我按照执行顺序列出了所有操作)。这会删除所有分区并为这个额外的 Ubuntu 安装设置分区以耗尽整个驱动器。但驱动器仍处于只读模式。当我尝试从主 nvme Ubuntu 或额外硬盘 ubuntu 写入时,硬盘驱动器为只读。我尝试使用 在硬盘驱动器上使用相同的内容重新安装(从本段开始,我按照执行顺序列出了所有操作)。这会删除所有分区并为这个额外的 Ubuntu 安装设置分区以耗尽整个驱动器。但驱动器仍处于只读模式。当我尝试从主 nvme Ubuntu 或额外硬盘 ubuntu 写入时,硬盘驱动器为只读。我尝试使用 在硬盘驱动器上使用相同的内容重新安装(从本段开始,我按照执行顺序列出了所有操作)。这会删除所有分区并为这个额外的 Ubuntu 安装设置分区以耗尽整个驱动器。但驱动器仍处于只读模式。当我尝试从主 nvme Ubuntu 或额外硬盘 ubuntu 写入时,硬盘驱动器为只读。我尝试使用sudo fsck
命令(因为仅运行 fsck 给出“权限被拒绝”)。它给了我一个驱动器安装错误,在此处重现。
e2fsck 1.46.5 (30-Dec-2021)
/dev/nvme0n1p2 is mounted.
WARNING!!! The filesystem is mounted. If you continue you ***WILL***
cause ***SEVERE*** filesystem damage.
Do you really want to continue<n>? no
check aborted.
fsck.fat 4.2 (2021-01-31)
使用 gparted,我卸载了分区(并且无法重新安装),当时称为 /dev/sda4 (我替换 Windows 的主安装称为 /dev/nvme0n1 。之后我运行 ,它输出了一些代码,sudo fsck /dev/sda4
其中无法准确地重现,因为这是在我在硬盘驱动器上执行“擦除磁盘安装”之前完成的,但它基本上返回了干净的结果。在新的额外 Ubuntu 安装后使用相同的命令,占用整个硬盘给出了类似的结果。
然后我尝试进行整个磁盘格式化(慢,全部重写为0)。但几个小时后,写入速度在大约 5 小时的运行中从 37MB/s 降低到 15MB/s,我检查了这一点,从一些论坛帖子中,大家一致认为取消它并进行快速格式化并没有什么效果。伤害。这样做时,我发现硬盘仍然是只读的。然后我发现ubuntu的干净磁盘安装删除了所有分区并清除了所有数据,并安装了Ubuntu。我这样做是希望它能修复文件系统。它确实安装了,但此后驱动器仍然是只读的。硬盘驱动器上全新安装后的分区是/dev/sda2。用于它的命令是sudo fsck /dev/sda2
,本质上使输出干净。我无法重现这个结果,本文的最后部分将给出现在使用的所述命令的输出。在此之前,使用的其他步骤是使用sudo fdisk -f /dev/sda2 command
. 通过记忆,它打印了 block1、block2…直到 block 5 的内容以及一些其他文本。那时我仍在反复试验,没有计划在论坛上发帖,也没有先见之明来保存代码。
按照另一篇指南,我在恢复模式下加载了额外的硬盘驱动器 ubuntu 安装并在该文件系统上运行 fdisk。它给了
fsck from util-linux 2.37.2
/dev/sda2 is mounted.
e2fsck: Cannot continue, aborting.
Finished, please press enter.
请注意,这不是复制粘贴的,当我输入时可能存在一些空格问题。
我相信恢复模式下 fsck 的真正目的是能够在正在使用的驱动器上运行它。但这没有用。
至于sudo fsck /dev/sda2
现在从我的主SSD安装运行命令,我的硬盘安装分区已经被卸载(并且无法安装),输出是
Be careful before using the write command.
The device contains 'ext4' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x9ce09f40.
Command (m for help)
我很高兴能够最终修复这个驱动器,以便我可以将它用于基本用途,并且正如最初的意图,我不打算在修复驱动器后弄乱分区,因为我不理解它。我希望我能在这里得到所需的帮助。之后,我希望卸载硬盘上额外的 Ubuntu,并在卸载磁盘上当前的 Ubuntu 后,将所述磁盘与我唯一的主 Ubuntu 安装一起使用。这是稍后的事情,但明确的步骤将有助于避免再次出现意外问题。
编辑:我按 m 寻求帮助。这导致了
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition
p print the partition table
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
Command (m for help): i
No partition is defined yet!
Command (m for help): i /dev/sda2
No partition is defined yet!
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Invalid argument
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or partx(8).
我现在将重新启动以查看是否修复了任何问题。
Edit2:这把一切都搞乱了。我现在已经加载了 GNU GRUB 版本 2.06
使用boot
给出以下结果
error: you need to load the kernel first.
Edit3:在反复试验的基础上,查看在线相关帖子和解决方案,在采取行动之前仔细检查以尝试理解,我尝试重新启动我的笔记本电脑,但自从关闭笔记本电脑以来我一直无法做到这一点编辑和编辑2中提到的重新启动段。在使用 ls 然后在每个打印分区上使用 ls 来查找 Linux 安装后,我得出的结论是,我从 SSD 安装的 Linux 位于 (hd1, gpt2)。基于我的第一个 Linux 安装(双启动)是在硬盘而不是 SSD 上的不可控情况,硬盘驱动器的名称为 /dev/sda,而我相信的 nvme 是 /dev/nvme0n1, Linux 安装位置为 /dev/nvme0n1p2。考虑到这一点,我在 GNU GRUB 2.06 中最终尝试加载内核......在这个已回答问题的帮助下,特别是 Saber 投票最多的答案,我无法退出 grub + 你需要先加载内核
linux (hd1,gpt2)/boot/vm
(我按下选项卡,给出了代码)。然后我root=/dev/nvme0n1p2
在打印的代码中输入了一个空格,为了结束我绝望的向下楼梯,我重新登录了。
然后,根据答案的其余部分,我运行了命令sudo update-grub
。这有效,但是,下一个特定于我的设备的命令grub-install /dev/nvme0n1
却无效。因此,我使用了https://help.ubuntu.com/community/Boot-Repair中提到的启动修复程序。
这解决了本文的“编辑”和“编辑2”部分中无意中创建的问题。
我的硬盘驱动器现在,如 gparted 中所示,有一个用于 uefi 的 fat32 分区和一个未知格式的分区;我已将其格式化为 ext4 并且可以检测到它,但这给我带来了最初的问题:它仍然是只读的。任何帮助,将不胜感激。
我恢复了访问权限。
我将磁盘中的硬盘驱动器(不需要快速、慢速模式)格式化为ext4。然后硬盘再次读写,经检查
$ ls -l /dev/sda1
,硬盘分区现在是 sda1。它给了这表明了读/写状态。然后我从终端启动了 Nautilus 文件管理器
$ nautilus
,因为它似乎是我系统上的文件管理器。在那里,我更改了用户的所有权权限(例如,如果我的用户名是 Ratconned)以及创建和删除文件的权限和权限。对于文件夹的随附文件,我更改了所有者和组权限以创建和删除文件,对于文件,我将所有者和组权限更改为读写(不确定此时授予组权限的含义,但我是唯一使用此权限的人)笔记本电脑)。