电脑之前2T的机械硬盘磁道损坏(sudo apt update & upgrade之后出现了问题,重新开机后软件的logo特别大,肯定是显卡驱动出现了问题,但是电脑卡死,想重装显卡驱动都做不到,于是重装系统,但是由于磁道损坏,系统都重装不上Wu~~~~),磁盘扫描工具扫描之后发现机械硬盘中存在损坏的磁道,于是取下机械硬盘部分,仅用SSD固态重装了系统,重装系统成功。之后购入3T新机械硬盘,记录在Ubuntu20.04系统下的安装过程 (作为笔记,本文中不会展示结果图片,若需要图片,可直接点击最后的参考文献)。
一 遇到的问题
下面问题的具体解决流程,详见下面的操作流程
fdisk
命令分区,获得的最大分区只有2T,空出800多G造成空间浪费。
fdisk命令进行分区时,能够进行的最大分区只能是2T,具体原因没有深究,总之和磁盘分区格式MBR和GPT有关,当电脑磁盘容量超过2TB的时候,就需要采用GPT类型的磁盘分区(插句题外话:两种不同的磁盘分区类型也对应两种不同的引导方式:Legacy和UEFI(就是旧新两种不同的BIOS),两者的搭配分别是:MBR+Legacy, GPT+UEFI,现在电脑大部分都是后者)所以不采用fdisk
命令改用parted
命令。
- 分区后出现“分区1不从物理扇区边界开始 Partition 1 does not start on physical sec“问题
用parted
命令分区后,fdisk -l
红字警告: 显示分区1不从物理扇区边界开始。网上有些教程说可以忽略该信息,不影响后续使用,但红色警告总是不好的,于是在分区时,改用mkpart primary 0% 100%
命令进行分区。
- 将磁盘挂载到
/home/username/work
目录后,每次创建文件都需要sudo权限(vscode和pycharm中创建新文件失败)
日常使用的数据和代码都存放在新安装的机械硬盘中,但是将分区挂载的到/home/username/work
目录后,每次vim
创建文件或者mkdir
创建文件夹都需要sudo权限,在终端中倒是没什么,输入一次sudo密码也就解决了,但是在vscode和pycharm中创建新文件时,一直失败,需要解决。
解决方法:ll
命令输出发现/home/username/work
目录的所有者和所在的group是root用户,而不是本用户,因此将目录的owner和group修改为本用户即可。修改目录的owner:
sudo chown -R username /home/username/work
修改目录的 group:sudo chgrp -R username /home/username/work
其中-r
表示对该目录下的文件递归执行该命令
二 操作流程
-
查看电脑所有磁盘和状态。
sudo fdisk -l
根据容量大小确定目标磁盘,本机找到的磁盘名称为:
/dev/sdb
-
为新硬盘分区同时格式化硬盘 (图文详见参考文献2)。
不要采用fdisk进行分区,fdisk分区最大只能分2TB,改用parted命令分区,命令流程如下:1. parted /dev/sdb # 对dev/sdb磁盘进行分区 2. p # 查看该磁盘信息 3. mklabel gpt # disk label选择gpt格式 4. y # exit disk label will be destoryed, 问是否继续进行, 选择yes 5. mkpart primary 0% 100% # 磁盘分区 6. quit # 分区完成,退出
一开始上面第4到6步中的第5步不是
mkpart primary 0% 100%
,而是以下命令:1. mkpart 2. sdb1 3. ext4 4. 0% 5. 100% 6. Ingore 7. quit
采用这样分区的结果就是上面问题2对应的 “分区1不从物理扇区边界开始” 问题,不要使用。
分区完成后采用mkfs
命令格式化分区:sudo mkfs -t ext4 /dev/sdb1
。 -
将分区挂载到对应目录并设置开机自动挂载。
采用mount命令将分区挂载到对应目录上sudo mount /dev/sdb1 ~/data
,mount命令格式为:sudo mount 需要挂载的分区 挂载目录
。之后需要设置开机自动挂载,否则下次开机重启后又要挂载。
首先查看分区的uuid:ls -l /dev/disk/by-uuid
,我们的目标分区是以sdb开头的,所以可以配合grep命令:ls -l /dev/disk/by-uuid | grep sdb
。之后备份原有的 /etc/fstab 文件:sudo cp /etc/fstab /etc/fstab.bak
,将以下信息添加到/etc/fstab文件的最后:UUID=ea195de6-725c-4701-98c3-1fa6a44bc102 /home/username/work ext4 defaults 0 2
其中UUID为之前查询的uuid编号,后面为对应的挂载目录,最后的2表示不定期备份(1表示每天备份)代码综合如下:sudo mount /dev/sdb1 ~/data # 分区挂载 ls -l /dev/disk/by-uuid | grep sdb # 查看分区的uuid sudo cp /etc/fstab /etc/fstab.bak # 备份/etc/fstab文件 # 将下面的信息添加到/etc/fstab文件的最后,使用时注意替换为自己的uuid和目录 UUID=ea195de6-725c-4701-98c3-1fa6a44bc102 /home/username/work ext4 defaults 0 1
上面的添加的UUID信息中,第一个数字:0表示开机不检查磁盘,1表示开机检查磁盘;第二个数字:0表示交换分区,1代表启动分区(Linux),2表示普通分区。
以后的某一天,如果这块磁盘又坏了,会存在开机异常的情况,此时需要进入BIOS,进入字符终端,sudo cp /etc/fstab.bak /etc/fstab
复原/etc/fstab文件即可,具体操作可上网查询。
4. 修改挂载目录所在的owner和group,若不是当前用户,修改为当前用户。
>修改目录的owner: sudo chown -R username /home/username/work
修改目录的 group: sudo chgrp -R username /home/username/work
其中-r
表示对该目录下的文件递归执行该命令