前提条件: 已挂载数据盘至云服务器,且该数据盘未初始化。REF
linux硬盘初始化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| # 1.查看新增数据盘 fdisk -l
# 2.执行以下命令,进入fdisk分区工具,开始对新增数据盘执行分区操作.以新挂载的数据盘“/dev/vdb”为例: fdisk /dev/vdb
# 3.输入“n”,按“Enter”,开始新建分区
# 4.以创建一个主要分区为例,输入“p”,按“Enter”,开始创建一个主分区
# 5.以分区编号选择“1”为例,输入主分区编号“1”,按“Enter”
# 6.以选择默认起始磁柱值2048为例,按“Enter”
# 7.以选择默认截止磁柱值209715199为例,按“Enter”
# 8.输入“p”,按“Enter”,查看新建分区的详细信息
# 9.输入“w”,按“Enter”,将分区结果写入分区表中,分区创建完成!!!
# 10.执行以下命令,将新的分区表变更同步至操作系统 partprobe
# 11.将新建分区文件系统设为系统所需格式 # 以设置文件系统为“ext4”为例: mkfs -t ext4 /dev/vdb1
# 12.执行以下命令,新建挂载目录,以新建挂载目录“/mnt/sdc”为例: mkdir /mnt/sdc
# 13.执行以下命令,将新建分区挂载到12中创建的目录下, # 以挂载新建分区“/dev/vdb1”至“/mnt/sdc”为例: mount /dev/vdb1 /mnt/sdc
# 14.查看挂载结果。 df -TH
|
磁盘挂载问题:Fdisk
最大只能创建2T
分区的盘,超过 2T
使用parted
显示硬盘及所属分区情况。在终端窗口中输入如下命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| liupei@I620-G20:~$ sudo fdisk -l Disk /dev/sda:931.5 GiB,1000204886016 字节,1953525168 个扇区 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:gpt 磁盘标识符:135AABA1-1AB1-4C64-816B-28AEC718E091
设备 起点 末尾 扇区 大小 类型 /dev/sda1 2048 1050623 1048576 512M EFI 系统 /dev/sda2 1050624 1953523711 1952473088 931G Linux 文件系统
Disk /dev/sdb:2.7 TiB,3000592982016 字节,5860533168 个扇区 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x86393e69
设备 启动 起点 末尾 扇区 大小 Id 类型 /dev/sdb1 2048 4294967294 4294965247 2T 83 Linux
|
可以看到要挂在的 3T
磁盘,因 fdisk
分区最大只能 2T
,所以这里使用 parted
来分区.
因为MBR
分区表不支持容量大于2.2 TB(2.2 × 1012字节)的分区,所以也有一些 BIOS
系统为了支持大容量硬盘而用 GPT
分区表取代MBR
分区表。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| liupei@I620-G20:~$ sudo parted /dev/sdb GNU Parted 3.2 使用 /dev/sdb 欢迎使用 GNU Parted!输入 'help' 来查看命令列表。 (parted) help align-check TYPE N check partition N for TYPE(min|opt) alignment help [COMMAND] 打印通用求助信息,或 COMMAND 的帮助 mklabel,mktable LABEL-TYPE 创建新的磁盘卷标 (分区表) mkpart 分区类型 [文件系统类型] 起始点 结束点 创建一个分区 name 编号 名称 将指定“编号”的分区命名为“名称” print [devices|free|list,all|数字] 显示分区表、可用设备、剩余空间、所有分区或特殊分区 quit 退出程序 rescue 起始点 终止点 挽救临近“起始点”、“终止点”的遗失的分区 resizepart NUMBER END 改变 NUMBER 的大小 rm NUMBER 删除编号为 NUMBER 的分区 select 设备 选择要编辑的设备 disk_set 旗标 状态 变更已选设备上的旗标 disk_toggle [旗标] 切换已选设备上的旗标状态 set 编号 旗标 状态 改变指定“编号”分区的旗标 toggle [编号 [旗标]] 切换“编号”分区上的“旗标”状态 unit 单位 设置缺省的“单位” version 显示目前 GNU Parted 的版本与版权信息 (parted) print 型号:ATA ST3000NM0033-9ZM (scsi) 磁盘 /dev/sdb: 3001GB 扇区大小 (逻辑/物理):512B/512B 分区表:msdos 磁盘标志:
编号 起始点 结束点 大小 类型 文件系统 标志 建立磁盘标签 (parted) mklabel gpt 警告: 现有 /dev/sdb 上的磁盘卷标将被销毁,而所有在这个磁盘上的数据将会丢失。您要继续吗? 是/Yes/否/No? Yes (parted) print 型号:ATA ST3000NM0033-9ZM (scsi) 磁盘 /dev/sdb: 3001GB 扇区大小 (逻辑/物理):512B/512B 分区表:gpt 磁盘标志:
编号 起始点 结束点 大小 文件系统 名称 标志
创建分区,并分配合适的大小 (parted) mkpart primary 0% 67% (parted) mkpart primary 68% 100% (parted) print 型号:ATA ST3000NM0033-9ZM (scsi) 磁盘 /dev/sdb: 3001GB 扇区大小 (逻辑/物理):512B/512B 分区表:gpt 磁盘标志:
编号 起始点 结束点 大小 文件系统 名称 标志 1 1049kB 2010GB 2010GB primary 2 2040GB 3001GB 960GB primary
(parted) quit 信息: 你可能需要 /etc/fstab。
|
执行 fdisk -l
,可以看到 sdb1
、sdb2
分区
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| liupei@I620-G20:~$ sudo fdisk -l
Disk /dev/sda:931.5 GiB,1000204886016 字节,1953525168 个扇区 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:gpt 磁盘标识符:135AABA1-1AB1-4C64-816B-28AEC718E091
设备 起点 末尾 扇区 大小 类型 /dev/sda1 2048 1050623 1048576 512M EFI 系统 /dev/sda2 1050624 1953523711 1952473088 931G Linux 文件系统
Disk /dev/sdb:2.7 TiB,3000592982016 字节,5860533168 个扇区 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:gpt 磁盘标识符:0C98E626-D1C5-472F-AA76-E9BA7E8F2A39
设备 起点 末尾 扇区 大小 类型 /dev/sdb1 2048 3926556671 3926554624 1.8T Linux 文件系统 /dev/sdb2 3985162240 5860532223 1875369984 894.3G Linux 文件系统
|
格式化分区
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| iupei@I620-G20:~$ sudo mkfs.ext4 /dev/sdb1 mke2fs 1.44.1 (24-Mar-2018) /dev/sdb1 有一个 ext4 文件系统 创建于 Mon Feb 22 09:05:26 2021 无论如何也要继续?(y,N) y 创建含有 490819328 个块(每块 4k)和 122707968 个inode的文件系统 文件系统UUID:92e10b8f-eb9f-49e2-8678-31ba84c8ea26 超级块的备份存储于下列块: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848
正在分配组表: 完成 正在写入inode表: 完成 创建日志(262144 个块) 完成 写入超级块和文件系统账户统计信息: 已完成
(base) liupei@I620-G20:~$ sudo mkfs.ext4 /dev/sdb2 mke2fs 1.44.1 (24-Mar-2018) 创建含有 234421248 个块(每块 4k)和 58605568 个inode的文件系统 文件系统UUID:6938ad59-a5dc-4402-bebb-9551b11bbaad 超级块的备份存储于下列块: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848
正在分配组表: 完成 正在写入inode表: 完成 创建日志(262144 个块) 完成 写入超级块和文件系统账户统计信息: 已完成
|
挂载硬盘
1 2 3 4 5 6 7 8 9
| liupei@I620-G20:~$ sudo mount /dev/sdb1 /mnt/t31 liupei@I620-G20:~$ sudo mount /dev/sdb2 /mnt/t32 liupei@I620-G20:~$ sudo df -h 文件系统 容量 已用 可用 已用% 挂载点 udev 48G 0 48G 0% /dev /dev/sda2 916G 660G 210G 76% / /dev/sda1 511M 6.1M 505M 2% /boot/efi /dev/sdb1 1.8T 77M 1.8T 1% /mnt/t31 /dev/sdb2 880G 77M 835G 1% /mnt/t32
|
设置开机自动挂载磁盘分区
1 2 3 4 5 6 7 8 9
| # 1.执行如下命令,查询磁盘分区的UUID # 以查询磁盘分区“/dev/vdb1”的UUID为例 blkid /dev/vdb1
# 2.使用VI编辑器打开“fstab”文件。 vi /etc/fstab
# 3.光标移至文件末尾,按“Enter”,添加如下内容 UUID=0b3040e2-1367-4abb-841d-ddb0b92693df /mnt/sdc ext4 defaults 0 2
|
云备份
1
| 华为云控制台->云硬盘备份,右上角“创建云硬盘备份”,在右侧云硬盘列表中找到当前云服务器的系统盘,根据指引完成系统盘备份
|
内存超限导致 OOM killer
问题
查看程序被 kill
的具体时间:
1 2
| cd /var/log sudo grep -r -i killed
|
Linux下有3种 Overcommit
的策略(参考内核文档:vm/overcommit-accounting),可以在 /proc/sys/vm/overcommit_memory
配置。取0,1和2三个值,默认是0。
0:启发式策略,比较严重的 Overcommit
将不能得逞,比如你突然申请了 128TB 的内存。而轻微的 Overcommit
将被允许。另外,root
能 Overcommit
的值比普通用户要稍微多些。
1:永远允许Overcommit
,这种策略适合那些不能承受内存分配失败的应用,比如某些科学计算应用。
2:永远禁止Overcommit
,在这个情况下,系统所能分配的内存不会超过swap+RAM*系数(/proc/sys/vm/overcmmit_ratio
,默认50%,你可以调整),如果这么多资源已经用光,那么后面任何尝试申请内存的行为都会返回错误,这通常意味着此时没法运行任何新程序。
能否帮我设置成永久允许overcommit
,因为我要做的就是科学计算应用。
OOM错误
1 2
| echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf sysctl -p
|
磁盘挂载
使用命令查看磁盘分区
1 2 3 4 5 6 7 8 9 10 11 12 13
| sudo fdisk -l 设备 Start 末尾 扇区 Size 类型 /dev/nvme0n1p1 2048 534527 532480 260M EFI System /dev/nvme0n1p2 534528 567295 32768 16M Microsoft reserved /dev/nvme0n1p3 567296 998164479 997597184 475.7G Microsoft basic data /dev/nvme0n1p4 998166528 1000214527 2048000 1000M Windows recovery environment
设备 启动 Start 末尾 扇区 Size Id 类型 /dev/sda1 * 2048 136790015 136787968 65.2G 83 Linux /dev/sda2 136792062 250068991 113276930 54G 5 扩展 /dev/sda5 136792064 138741759 1949696 952M 83 Linux /dev/sda6 138743808 216866815 78123008 37.3G 83 Linux /dev/sda7 216868864 250068991 33200128 15.9G 82 Linux 交换 / Solaris
|
根据提供的磁盘信息确定想挂载的磁盘,以及确定挂载的位置。我此次的目的是将/dev/nvme0n1p3
(windows10的C:盘) 磁盘挂载到/mnt/win10
中去.
创建挂载目录
开始挂载
1
| sudo mount /dev/nvme0n1p3/ /mnt/win10/
|
设置开机自动挂载
1 2 3
| u@T470:~$ sudo blkid /dev/nvme0n1p3
/dev/nvme0n1p3: LABEL=”Windows” UUID=”2C2CB6B02CB67504″ TYPE=”ntfs” PARTLABEL=”Basic data partition” PARTUUID=”494bc468-63d1-40a3-9230-97c33ed8b6cb”
|
从返回信息中获取 UUID=2C2CB6B02CB67504
修改自动挂载文件
1 2 3 4 5 6 7
| u@T470:~$ sudo vim /etc/fstab # 在文档末尾添加裹在磁盘的信息 # [UUID=************] [挂载磁盘分区] [挂载磁盘格式] 0 2 UUID=2C2CB6B02CB67504 /mnt/win10 ntfs defaults 0 2 # 第一个数字:0表示开机不检查磁盘,1表示开机检查磁盘; # 第二个数字:0表示交换分区,1代表启动分区(Linux),2表示普通分区 # 我挂载的分区是在WIn系统下创建的分区,磁盘格式为ntfs
|
挂载vdi固态硬盘
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # install nbd client sudo apt install qemu-utils sudo apt install nbd-server nbd-client qemu-kvm # load the nbd kernel module sudo modprobe nbd # connect vdi file sudo qemu-nbd --connect=/dev/nbd0 /media/u/5c/win7.vdi # check disk partations sudo fdisk -l /dev/nbd0 # mount partation sudo mount /dev/nbd0p2 win/ # umount partation sudo umount win/ qemu-nbd --disconnect /dev/nbd0
|
突然无法挂载win10
UBUNTU 16.04 平时可以正常访问WIN10系统的某个NTFS分区,因此这个 NTFS 分区上的各种文件、数据,对于WIN10 和 UBUNTU16.04 来说是共享的,最近突然出现无法挂载 WIN10 的 NTFS 分区.解决方法(Ref)
根本原因是,Windows 10关机或者睡眠后,其实并没有完全关机,而是将一些缓存保存在磁盘中,便于下一次开机快速启动,为了防止其他系统对缓存文件的更改,所以才会被拒绝挂载。
解决方法:打开控制面板,在电源管理中,选择关闭盖子的功能,更改不能更改的选项,去掉\textbf{快速启动}的钩。重新进入linux就可以啦!
挂载ntfs硬盘的权限问题
查看 username
的 gid
和 uid
,例如
1 2
| id liupei uid=1000(liupei) gid=1000(liupei) groups=1000(liupei),998(wheel),991(lp),3(sys),90(network),98(power)
|
然后设置windows硬盘开机自动挂载
1
| /dev/sda3 /mnt ntfs defaults,utf8,uid=1000,gid=1000,dmask=022,fmask=133 0 0
|
utf8
:正确显示中文
uid
: 本人
dmask
: 文件夹权限
fmask
: 文件权限
参考文献:wgh100817