Oracle的e2.1.micro实例中挂载block volume,大的源代码编译项目
的服务器软件,源码和构建产物都很小,不适合你“吃 100GB 磁盘”的目标。(包括如何节省空间、加速编译等)。告诉我你的偏好,我可以给你。告诉我你的选择,我给你。
·
ubuntu@:~/$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 96M 1.1M 95M 2% /run
efivarfs 256K 21K 231K 9% /sys/firmware/efi/efivars
/dev/sda1 45G 6.9G 39G 16% /
tmpfs 479M 0 479M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda15 105M 6.1M 99M 6% /boot/efi
tmpfs 96M 0 96M 0% /run/user/1001
ubuntu@:~/$ sudo fdisk -l
Disk /dev/sda: 46.58 GiB, 50010783744 bytes, 97677312 sectors
Disk model: BlockVolume
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 1048576 bytes
Disklabel type: gpt
Disk identifier: DC1D9E04-B4F2-4B97-A821-D2C3ED2FF003
Device Start End Sectors Size Type
/dev/sda1 227328 97677278 97449951 46.5G Linux filesystem
/dev/sda14 2048 10239 8192 4M BIOS boot
/dev/sda15 10240 227327 217088 106M EFI System
Partition table entries are not in disk order.
Disk /dev/sdb: 150 GiB, 161061273600 bytes, 314572800 sectors
Disk model: BlockVolume
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 1048576 bytes
ubuntu@:~/$ sudo mkfs.ext4 -F /dev/sdb
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done
Creating filesystem with 39321600 4k blocks and 9830400 inodes
Filesystem UUID: f41561ee-3dd9-41e0-9f14-e95dc899e8fb
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
#创建挂载目录
ubuntu@:~/$ sudo mkdir -p /data
#挂载磁盘
ubuntu@:~/$ sudo mount /dev/sdb /data
#检查挂载结果
ubuntu@:~/$ df -h | grep /data
/dev/sdb 147G 28K 140G 1% /data
#查看磁盘状态
ubuntu@:~/$ lsblk -o NAME,SIZE,TYPE,MOUNTPOINTS
NAME SIZE TYPE MOUNTPOINTS
sda 46.6G disk
├─sda1 46.5G part /
├─sda14 4M part
└─sda15 106M part /boot/efi
sdb 150G disk /data
# 1. 查看磁盘 UUID
ubuntu@:~/$ sudo blkid /dev/sdb
/dev/sdb: UUID="f41561ee-3dd9-41e0--" BLOCK_SIZE="4096" TYPE="ext4"
#设置开机自动挂载:
ubuntu@:~/$ echo 'UUID=f41561ee-3dd9-41e0--/data ext4 defaults,noatime,_netdev 0 2' | sudo tee -a /etc/fstab
UUID=f41561ee-3dd9-41e0--/data ext4 defaults,noatime,_netdev 0 2
# 测试 fstab 配置是否正确,
ubuntu@:~/$ sudo mount -a
# 查看最终结果。根据 /etc/fstab 文件的配置,挂载所有应该被自动挂载的磁盘
ubuntu@:~/$ cat /etc/fstab
LABEL=cloudimg-rootfs / ext4 discard,errors=remount-ro 0 1
LABEL=UEFI /boot/efi vfat umask=0077 0 1
# CLOUD_IMG: This file was created/modified by the Cloud Image build process
######################################
## ORACLE CLOUD INFRASTRUCTURE CUSTOMERS
##
## If you are adding an iSCSI remote block volume to this file you MUST
## include the '_netdev' mount option or your instance will become
## unavailable after the next reboot.
## SCSI device names are not stable across reboots; please use the device UUID
## instead of /dev path.
##
## Example:
## UUID="94c5aade-8bb1-4d55--" /data1 ext4 defaults,noatime,_netdev 0 2
##
## More information:
## https://docs.us-phoenix-1.oraclecloud.com/Content/Block/Tasks/connectingtoavolume.htm
##
/swapfile none swap sw 0 0
UUID=f41561ee-3dd9-41e0--/data ext4 defaults,noatime,_netdev 0 2
ubuntu@ccpp:~/lihuiqin$ df -h | grep /data
/dev/sdb 147G 28K 140G 1% /data
ubuntu@ccpp:~/lihuiqin$ sudo chown -R ubuntu:ubuntu /data
二、
极度占用空间的项目(推荐优先考虑)
| 项目 | 预计占用空间 | 编译难度 | 备注 |
|---|---|---|---|
| Chromium | 80~150GB | ★★★★ | 非常推荐,编译一次能吃掉很多空间 |
| Firefox | 50~100GB | ★★★★ | 空间占用也很大 |
| Linux Kernel (全量配置) | 20~60GB | ★★ | 比较容易上手,可反复编译 |
| LLVM + Clang | 30~70GB | ★★★ | 编译时间长,空间大 |
| Qt 6 完整框架 | 25~50GB | ★★★ | 包含所有模块时很占空间 |
最推荐的方案
-
Chromium(最推荐)
- 单次完整编译能轻松占用 80GB 以上
- 你可以只编译一部分模块来控制空间
- 命令示例(先安装 depot_tools):
cd /data git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git # 后续 fetch + sync + build 步骤较长
-
Linux Kernel(最简单快速上手)
cd /data git clone --depth 1 https://github.com/torvalds/linux.git cd linux make defconfig make -j2 # Micro 实例建议用 -j1 或 -j2,避免 OOM
重要提醒(你的实例配置)
你的实例是 VM.Standard.E2.1.Micro(只有 1GB 内存):
- 编译大型项目时非常容易内存不足(OOM)。
- 建议:
- 使用
make -j1或-j2 - 增加 swap(虽然效果有限)
- 或者用
ccache加速重复编译 - 边编译边监控:
htop、free -h
- 使用
你想编译哪一类项目呢?
- 浏览器类(Chromium/Firefox)
- Android 系统
- Linux 内核
- 编译器(LLVM/GCC)
- 其他(如游戏引擎、机器学习框架等)
告诉我你的偏好,我可以给你详细的一键式下载+编译命令。
三、
推荐项目对比(占用空间 ≈100GB 级别)
| 项目 | 源码大小(checkout) | 完整编译后占用空间 | 难度 | 推荐指数 |
|---|---|---|---|---|
| Chromium(浏览器引擎) | 约 20~40GB | 80~150GB+ | ★★★★★ | ★★★★★(最推荐) |
| Firefox | 约 10~20GB | 50~100GB+ | ★★★★ | ★★★★ |
| LLVM + Clang | 约 15~30GB | 40~80GB | ★★★★ | ★★★★ |
| Qt 6 全模块 | 约 10~20GB | 30~60GB | ★★★ | ★★★ |
Chromium 是目前最符合“100G 左右 C/C++ 项目”的选择。
如何在 /data 上编译 Chromium(简要步骤)
cd /data
mkdir chromium && cd chromium
# 安装 depot_tools(Google 官方工具)
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH="$(pwd)/depot_tools:$PATH"
# 下载 Chromium 源码(这个过程就会占用很多空间)
fetch --nohooks chromium
cd src
gclient sync
# 配置编译(Release 模式更省空间)
gn gen out/Release --args='is_debug=false'
# 开始编译(你的 Micro 实例内存很小,建议用低并行度)
autoninja -C out/Release chrome -j2
注意事项(非常重要):
- 你的实例是 E2.1.Micro(1核 1GB 内存),完整编译 Chromium 会非常慢且容易 OOM。
- 建议先用
-j1或-j2,或者只编译部分模块。 - 编译过程中占用空间会逐步增加到 100GB+,请随时监控:
df -h /data
你想要哪种类型?
- 直接上 Chromium(最吃空间)
- Firefox(相对容易一点)
- LLVM/Clang(编译器本身)
- 其他(如 WebKit、Unreal Engine 等)
告诉我你的选择,我给你更详细、一步一步的命令(包括如何节省空间、加速编译等)。
四、
✅ 直接回答你的问题:
nginx、Redis、PostgreSQL 完全不够占用 100GB。
| 项目 | 源码大小(checkout) | 完整编译后占用空间 | 编译时间(你的 Micro 实例) | 是否推荐 |
|---|---|---|---|---|
| Nginx | < 50MB | < 1GB | 几分钟 | 不够 |
| Redis | < 100MB | < 1GB | 几分钟 | 不够 |
| PostgreSQL | 几百 MB | 2~5GB | 30~60 分钟 | 不够 |
它们都是精炼高效的服务器软件,源码和构建产物都很小,不适合你“吃 100GB 磁盘”的目标。
推荐服务器开发相关的 C/C++ 大型项目(接近或超过 100GB)
以下是服务端 / 数据库 / 高性能后端方向的真正大项目:
| 项目 | 类型 | 源码大小 | 完整编译后占用空间 | 推荐指数 | 备注 |
|---|---|---|---|---|---|
| ClickHouse | 列式分析数据库 | 20~40GB+ | 80~150GB+ | ★★★★★ | 最推荐,现代高性能 OLAP 数据库 |
| MySQL | 经典关系型数据库 | 5~15GB | 20~50GB+ | ★★★★ | 经典服务器开发项目 |
| Envoy | 高性能 Service Mesh 代理 | 10~20GB | 30~60GB+ | ★★★★ | 现代 C++ 代理(类似 Nginx 升级版) |
| RocksDB + 依赖 | 高性能 KV 存储 | 中等 | 可叠加依赖后很大 | ★★★ | Facebook 出品 |
| Seastar + ScyllaDB | 高性能数据库框架 | 大 | 很大 | ★★★★ | 异步框架 + 数据库 |
最推荐:ClickHouse(强烈建议)
- 纯 C++ 开发,是目前最火的开源 OLAP 数据库之一。
- 源码 + 构建过程非常庞大,很容易吃掉 100GB 左右。
- 对服务器开发(网络、存储引擎、查询优化、向量化执行等)学习价值极高。
初步操作步骤(在 /data 下执行):
cd /data
git clone --recursive https://github.com/ClickHouse/ClickHouse.git
cd ClickHouse
# 安装依赖(Ubuntu)
sudo apt update && sudo apt install -y python3 python3-pip ninja-build
# 创建构建目录
mkdir build && cd build
# 配置(Debug 模式更占空间,Release 稍省)
cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..
# 开始编译(你的 Micro 实例内存很小,建议用低并发)
ninja -j2
注意:
- 第一次
git clone --recursive就会占用大量空间。 - 编译过程会生成巨量临时文件和对象文件。
- 你的 1GB 内存 实例编译会很慢,容易 OOM,建议监控
htop,必要时增加 swap。
- ClickHouse(最符合 100GB + 服务器开发)
- MySQL(更经典)
- Envoy
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)