文章目录
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
- 直接修改/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信息写入即可。
- 首先查看磁盘的uuid:
-
查看现在的磁盘使用量
df -h
新分区替换当前分区
- 参考0https://blog.csdn.net/xiaobing_blog/article/details/12718403#commentBox
- 参考1https://blog.csdn.net/qq_20732247/article/details/90141752
- 参考2https://blog.csdn.net/sumaliqinghua/article/details/103050269
- Linux分区及格式化数据盘,挂载https://blog.csdn.net/qq_39314099/article/details/106200322
LVM扩容
- PV可看作是硬盘上的分区
- PV组成卷组VG
- VG划分成逻辑卷LV,挂载在目录
fidisk /dev/nvme0n1
将分区id
改为Linux LVM
对应的id
,这样的系统识别码才能使用LVMpvcreate /dev/nvme0n1p1
,pvdisplay
vgextend 根目录对应的VG /dev/nvme0n1p1
- 扩容逻辑卷
- 扩容文件系统
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