分区、硬盘挂载、硬盘迁移

lsblk #查看各硬盘名称与分区情况
blkid #查看各分区uuid
sudo fdisk -l #查看数据盘信息
df -hl # 数据盘在未分区和挂载之前是无法查看的

477G 容量:512110190592, 0.9315

ubuntu分区

https://zhuanlan.zhihu.com/p/59559936给出了如下的分区
我们注意到其除了home / swap boot,还创建了/usr /var/ tmp三个分区。https://www.jianshu.com/p/f229cf403836中的进阶分区方案就推荐将/usr /var/ tmp单独分区

/home = 余下所有 # 存放各用户个人文件的地方 
/usr = 50G # Unix Software Resource,用于linux系统存放软件,如果安装的软件多,需要大点 
/ = 20G # 整个目录结构的起始点 ,所有其它文件和目录都在它下面 
/var = 40G # Variable files,软件运行所产生的数据存放目录,如日志、数据库文件、缓存文件 
/swap = 32G # 交换分区,虚拟内存 
/boot = 0.5G # 存放开机文件,一般100M~300M 
/tmp = 10G # Temporary files,用于存放临时文件,对于多用户系统很重要

/80+boot4+Swap10+home365+left18

将Ubuntu 移至新硬盘

新建同样的分区

新硬盘建立与ubuntu系统同样的四个分区

迁移硬盘内容

然后使用’dd’命令分别将ubuntu的四个分区移动至新硬盘的四个分区.
dd 工具会将 uuid 也一起拷贝,所以拷贝完成之后,只要将旧的硬盘拆卸下来,替换上新的硬盘,不用更新/etc/fstab 文件中的uuid,就能按照你以前的设置自动挂载。

dd if=/dev/nvme1n1p10 of=/dev/nvme0n1p4 #home
dd if=/dev/nvme1n1p9 of=/dev/nvme0n1p1  #/
dd if=/dev/nvme1n1p8 of=/dev/nvme0n1p2  #/boot
dd if=/dev/nvme1n1p7 of=/dev/nvme0n1p3  #swap
dd if=/dev/nvme1n1p1 of=/dev/nvme0n1p5  #efi

更新硬盘信息

操作的都是新分区

#home
umount /dev/nvme0n1p1
e2fsck -f /dev/nvme0n1p1 #检查使用 Linux ext2 档案系统的 partition 是否正常工作
resize2fs /dev/nvme0n1p1 #用来增大或者收缩未加载的“ext2/ext3”文件系统的大小
#/
umount /dev/nvme0n1p4
e2fsck -f /dev/nvme0n1p4
resize2fs /dev/nvme0n1p4
#/boot
umount /dev/nvme0n1p2
e2fsck -f /dev/nvme0n1p2
resize2fs /dev/nvme0n1p2
#/bootefi
umount /dev/nvme0n1p5
e2fsck -f /dev/nvme0n1p5
resize2fs /dev/nvme0n1p5
#/swap
umount /dev/nvme0n1p3
e2fsck -f /dev/nvme0n1p3
resize2fs /dev/nvme0n1p3

更新修改

sudo update-grub2

修改uuid

上面的步骤之后,把原硬盘拆下或者分区格式化,但是担心迁移得到的数据不全,暂时未格式化。所以现在系统中有两组相同uuid的分区。所以在打开系统时,在两个相同的uuid中会随机选一个分区挂载到系统。每个分区都有一个uuid。

所以此时还要更改原系统分区的uuid或者新硬盘分区uuid,使uuid都不同,然后在/etc/fstab中修改uuid,使系统加载的一定是新硬盘的分区。

添加SWAP分区

直接dd过来的swap分区不能用这里参考这个链接指出了有两种方法

  • 从文件创建
  • 新建磁盘分区创建【采用】
#Disks新建分区
# 格式化swap分区
2mkswap /dev/nvme0n1p1
# 启动新的swap分区
swapon /dev/nvme0n1p1
# 更新/etc/fstab文件
sudo vim /etc/fstab

完成

完成了么?

前面提到因为是dd迁移的,所有有两组相同的uuid,所以开机的时候会随机选择两个相同uuid分区中的一个。因此,修改了/etc/fstab,将新硬盘的uuid加进去了。
现在的问题是:开机时两个启动项都导向了新硬盘的分区。自以为一个引导项对应一个/boot对应一个/etc/fstab,但是显然现在两个引导向都对向了同一个/etc/fstab,但这个文件我是在新硬盘分区中改的啊,也就是在新的/下改的。说明开机时两个启动项都会自动去访问新硬盘的/,所以就访问到了新硬盘下的/etc/fstab,所以两个启动项都导向了新硬盘分区。
如果两个启动项分别自动访问原系统/和新硬盘/,这样就可对应两个不同的/etc/fstab,我将这两个文件中的uuid分别修改为对应的启动项所需要的uuid,那不就可以了?但我不会。
或者,直接将原系统所在的分区格式化。这样就只剩下一个boot。应该也可以完成。

有没有大佬给点意见?

补充:https://www.jianshu.com/p/82b413ffc40c给了启动项设置

sudo vim /etc/default/grub

# 设定默认启动项,推荐使用数字
GRUB_DEFAULT=0

# 注释掉下面这行将会显示引导菜单
#GRUB_HIDDEN_TIMEOUT=0

# 黑屏,并且不显示GRUB_HIDDEN_TIMEOUT过程中的倒计时
GRUB_HIDDEN_TIMEOUT_QUIET=true

# 设定超时时间,默认为10秒
# 设定为-1取消倒计时
GRUB_TIMEOUT=10

# 获得发行版名称(比如Ubuntu, Debian)
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`

# 将会导入到每个启动项(包括recovery mode启动项)的'linux'命令行
GRUB_CMDLINE_LINUX=""

# 同上,但是只会添加到 normal mode 的启动项
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

# 取消注释以允许图形终端(只适合grub-pc)
#GRUB_TERMINAL=console

# 分辨率设定,否则采用默认值
#GRUB_GFXMODE=640x480

# 取消注释以阻止GRUB将传递参数 "root=UUID=xxx" 传递给 Linux
#GRUB_DISABLE_LINUX_UUID=true

# 取消启动菜单中的“Recovery Mode”选项
#GRUB_DISABLE_LINUX_RECOVERY="true"

# 当GRUB菜单出现时发出鸣音提醒
#GRUB_INIT_TUNE="480 440 1"

重要文件

sudo vim /boot/grub/grub.cfg #系统引导时读取的文件之一,由其他文件生成,一般不在这里修改。 
sudo vim /etc/fstab #查看挂载的分区的uuid
sudo vim /etc/default/grub# grub的默认配置文件,可修改一些参数,修改之后需要sudo update-grub2

ubuntu和windows启动项名称、顺序修改

https://blog.csdn.net/as371418912/article/details/23452259
1. 命令修改顺序

xxx:/etc/grub.d$ ls
00_header        10_linux      20_memtest86+  30_uefi-firmware  41_custom
05_debian_theme  20_linux_xen  30_os-prober   40_custom         README
  1. 直接修改/boot/grub/grub.cfg
    有风险

uuid记录

/dev/nvme1n1: PTUUID="1dcf64a0-5af4-49b1-8721-c2d347e439bd" PTTYPE="gpt"
/dev/nvme1n1p1: LABEL="SYSTEM" UUID="E044-B0A9" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="d3c49faf-bd92-46f4-9fdc-d1d5a5d33f85"
/dev/nvme1n1p2: PARTLABEL="Microsoft reserved partition" PARTUUID="ef4e7374-2580-4ed4-a68a-d56e7947bd44"
/dev/nvme1n1p3: LABEL="Windows" UUID="466E47706E475837" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="0b449229-378e-4c1d-b130-37df4c995f19"
/dev/nvme1n1p4: LABEL="M-fM-^VM-0M-eM-^JM- M-eM-^MM-7" UUID="DE9C4CFB9C4CD027" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="951ca562-248a-44ca-bb1c-a500b41e76cc"
/dev/nvme1n1p5: LABEL="M-fM-^VM-0M-eM-^JM- M-eM-^MM-7" UUID="0810593710592D46" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="54c5a5a4-d352-4c42-aaf5-68fd8964e2d0"
/dev/nvme1n1p6: LABEL="WinRE_DRV" UUID="327A47CF7A478F13" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="6c540bb7-8945-483a-9e47-396ca620c08c"
/dev/nvme1n1p7: UUID="b8d61e50-5248-4a42-a602-bcc313422a48" TYPE="swap" PARTUUID="ec9772d4-49a3-4874-a813-6b02e040b065"
/dev/nvme1n1p8: UUID="a316865f-bbeb-45fe-96fa-417e4f35226d" TYPE="ext4" PARTUUID="e0dac82b-5c46-49d2-87bb-48c95e533654"
/dev/nvme1n1p9: UUID="c6f3108e-1738-4e0c-9381-7ac1f645680b" TYPE="ext4" PARTUUID="99b5386b-7f62-48e5-9eb8-906ad700555c"
/dev/nvme1n1p10: UUID="4b553675-f60f-4433-a35f-19f658eb8dcc" TYPE="ext4" PARTUUID="80b40cee-6e9c-4e0c-9800-bd56e8e2fe3f"
/dev/nvme0n1: PTUUID="0b4f0349-84d1-4ccb-b292-dc0e3a137b68" PTTYPE="gpt"
/dev/nvme0n1p1: UUID="c6f3108e-1738-4e0c-9381-7ac1f645680b" TYPE="ext4" PARTUUID="56d0b7fa-538d-444a-9975-8b99b91e28c3"
/dev/nvme0n1p2: UUID="a316865f-bbeb-45fe-96fa-417e4f35226d" TYPE="ext4" PARTUUID="19d972bf-ecef-47c1-9662-07c865e704e3"
/dev/nvme0n1p3: UUID="b8d61e50-5248-4a42-a602-bcc313422a48" TYPE="swap" PARTUUID="455a4f22-822a-4a9e-9768-c8b2cee88286"
/dev/nvme0n1p4: UUID="4b553675-f60f-4433-a35f-19f658eb8dcc" TYPE="ext4" PARTUUID="e2745c9e-7a26-4a83-8310-0031d2c97708"
/dev/nvme0n1p5: LABEL="SYSTEM" UUID="E044-B0A9" TYPE="vfat" PARTUUID="052f33a5-edcb-4487-866c-fa26278d2a5d"

/etc/fstab

 # /etc/fstab: static file system information.
 #
 # Use 'blkid' to print the universally unique identifier for a
 # device; this may be used with UUID= as a more robust way to name devices
 # that works even if disks are added and removed. See fstab(5).
 #
 # <file system> <mount point>   <type>  <options>       <dump>  <pass>
 # / was on /dev/nvme0n1p9 during installation
 UUID=c6f3108e-1738-4e0c-9381-7ac1f645680b /               ext4    errors=remount-ro 0       1
 # /boot was on /dev/nvme0n1p8 during installation
 UUID=a316865f-bbeb-45fe-96fa-417e4f35226d /boot           ext4    defaults        0       2
 # /boot/efi was on /dev/nvme0n1p1 during installation
 UUID=E044-B0A9  /boot/efi       vfat    umask=0077      0       1
 # /home was on /dev/nvme0n1p10 during installation
 UUID=4b553675-f60f-4433-a35f-19f658eb8dcc /home           ext4    defaults        0       2
 # swap was on /dev/nvme0n1p7 during installation
 UUID=b8d61e50-5248-4a42-a602-bcc313422a48 none            swap    sw              0       0
~                                                                                              

挂载数据盘

  • 一个目录同一时间只能挂载一个数据盘。可以在一个目录下面新建文件夹,然后将文件夹挂载一个数据盘。
  • 分区可用fdisk /dev/硬盘名,还可以用Disks图形化界面
  • 创建挂载点
    所谓的挂载点,其实就是一个系统目录,现在格式化了硬盘,需要将它关联到一个系统目录下,这样在该目录下操作,即在新硬盘上操作。比如创建目录 /data1
  • 挂载
mount 块设备 挂载点目录
mount /dev/sde1 /data1
  • 设置开机自动挂载

    • 首先查看磁盘的uuid:blkid命令
      在这里插入图片描述
    • 修改/etc/fstab文件
      在这里插入图片描述
      格式:<设备信息> <挂载点> <文件系统格式> <文件系统安装选项> <文件系统转储频率> <启动时的文件系统检查顺序>
      将新挂载的sdb信息写入即可。
  • 查看现在的磁盘使用量df -h
    在这里插入图片描述

新分区替换当前分区

LVM扩容

在这里插入图片描述

  • PV可看作是硬盘上的分区
  • PV组成卷组VG
  • VG划分成逻辑卷LV,挂载在目录
  1. fidisk /dev/nvme0n1将分区id改为Linux LVM对应的id,这样的系统识别码才能使用LVM
  2. pvcreate /dev/nvme0n1p1 , pvdisplay
  3. vgextend 根目录对应的VG /dev/nvme0n1p1
  4. 扩容逻辑卷
  5. 扩容文件系统
    pvcreate时要求分区都未被挂载,但是我的根目录已挂载了,所以即使将根目录分区改为LVM系统。但是无法pvcreate,pvdisplay里根本都查不到

https://www.pianshen.com/article/56901314991/

https://blog.csdn.net/weixin_43139644/article/details/89948983

https://www.cnblogs.com/zhangyongli2011/p/9354234.html
https://www.wanpeng.life/969.html

gparted

有个问题:不是同一个硬盘可以吗?
https://my.oschina.net/u/4381303/blog/4521091
论Ubuntu根目录扩容的一种方法

Ubuntu18.04根目录磁盘空间扩容——亲测有效
ubuntu系统重新分区、根目录扩容

ubuntu 16.04根目录磁盘空间扩容(亲测!!)

ubuntu移至新硬盘

参考1https://www.jianshu.com/p/82b413ffc40c
重点参考https://zhuanlan.zhihu.com/p/33341983

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值