mirror of
https://github.com/rancher/os.git
synced 2025-07-06 03:26:12 +00:00
Created Mounting multiple disks in iPXE mode (markdown)
parent
55c2b6ffa5
commit
df86345be7
133
Mounting-multiple-disks-in-iPXE-mode.md
Normal file
133
Mounting-multiple-disks-in-iPXE-mode.md
Normal file
@ -0,0 +1,133 @@
|
||||
## Test Environment
|
||||
|
||||
| Term | Definition |
|
||||
|-----------------------|--------------------------------------------------|
|
||||
| Host OS | MacOS high Sierra |
|
||||
| RancherOS | v1.1.3 |
|
||||
| Platform | Virtualbox |
|
||||
| Root Disk(/dev/sda) | 4GB |
|
||||
| Other Disk(/dev/sdb) | 3GB |
|
||||
| CPU | 1C |
|
||||
| MEM | 2GB |
|
||||
|
||||
We use this environment to demonstrate the whole process.
|
||||
|
||||
## Enable iPXE
|
||||
|
||||
Follow the previous instructions to create a VM named `IPXE`. In the boot order, the hard disk boot is the first.
|
||||
Then we need to create the boot file of iPXE at the host location, the path here should be `~/Library/VirtualBox/TFTP/IPXE.pxe`, its content is probably like this:
|
||||
|
||||
```
|
||||
#!ipxe
|
||||
dhcp
|
||||
set base-url http://192.168.1.125/rancheros/ipxe
|
||||
kernel ${base-url}/vmlinuz printk.devkmsg=on console=tty1 rancher.autologin=tty1 rancher.cloud_init.datasources=[url:${base-url}/cloud-config.yaml] rancher.password=rancher
|
||||
initrd ${base-url}/initrd
|
||||
boot
|
||||
```
|
||||
|
||||
The content of cloud-config.yaml can be defined by the user. Here we configure like this:
|
||||
|
||||
```
|
||||
#cloud-config
|
||||
runcmd:
|
||||
- [ mkdir, -p, /mnt/user-docker]
|
||||
- [ mount, -t, ext4, /dev/sdb, /mnt/user-docker ]
|
||||
|
||||
rancher:
|
||||
docker:
|
||||
graph: "/mnt/user-docker"
|
||||
|
||||
...
|
||||
...
|
||||
```
|
||||
|
||||
|
||||
## Mounting multiple disks
|
||||
|
||||
Now we can boot the IPXE VM for the first time. After booting is complete, we can ssh to this VM with `rancher` password:
|
||||
|
||||
```
|
||||
# There are two disks
|
||||
[root@rancher rancher]# fdisk -l
|
||||
Disk /dev/sdb: 3 GiB, 3221225472 bytes, 6291456 sectors
|
||||
Units: sectors of 1 * 512 = 512 bytes
|
||||
Sector size (logical/physical): 512 bytes / 512 bytes
|
||||
I/O size (minimum/optimal): 512 bytes / 512 bytes
|
||||
|
||||
|
||||
Disk /dev/sda: 4 GiB, 4294967296 bytes, 8388608 sectors
|
||||
Units: sectors of 1 * 512 = 512 bytes
|
||||
Sector size (logical/physical): 512 bytes / 512 bytes
|
||||
I/O size (minimum/optimal): 512 bytes / 512 bytes
|
||||
|
||||
|
||||
# We haven't mounted any disks yet, so you can see these
|
||||
[root@rancher rancher]# df -hT
|
||||
Filesystem Type Size Used Available Use% Mounted on
|
||||
overlay overlay 998.1M 180.2M 817.9M 18% /
|
||||
tmpfs tmpfs 942.0M 0 942.0M 0% /dev
|
||||
tmpfs tmpfs 998.1M 0 998.1M 0% /sys/fs/cgroup
|
||||
tmpfs tmpfs 998.1M 0 998.1M 0% /media
|
||||
none tmpfs 998.1M 752.0K 997.4M 0% /run
|
||||
tmpfs tmpfs 998.1M 100.0K 998.0M 0% /mnt
|
||||
devtmpfs devtmpfs 942.0M 0 942.0M 0% /host/dev
|
||||
shm tmpfs 64.0M 0 64.0M 0% /host/dev/shm
|
||||
none tmpfs 998.1M 752.0K 997.4M 0% /var/run
|
||||
tmpfs tmpfs 998.1M 180.2M 817.9M 18% /etc/hostname
|
||||
shm tmpfs 64.0M 0 64.0M 0% /dev/shm
|
||||
devtmpfs devtmpfs 942.0M 0 942.0M 0% /dev
|
||||
shm tmpfs 64.0M 0 64.0M 0% /dev/shm
|
||||
```
|
||||
|
||||
Let's manually format /dev/sdb first, here we need to format all the disks except the root disk:
|
||||
```
|
||||
[root@rancher rancher]# mkfs.ext4 /dev/sdb
|
||||
mke2fs 1.43.9 (8-Feb-2018)
|
||||
Creating filesystem with 786432 4k blocks and 196608 inodes
|
||||
Filesystem UUID: b7c1c6d1-b96b-4783-8c1f-9cd375c404dd
|
||||
Superblock backups stored on blocks:
|
||||
32768, 98304, 163840, 229376, 294912
|
||||
|
||||
Allocating group tables: done
|
||||
Writing inode tables: done
|
||||
Creating journal (16384 blocks): done
|
||||
Writing superblocks and filesystem accounting information: done
|
||||
```
|
||||
|
||||
Then we have to install ros on the root disk(/dev/sda):
|
||||
|
||||
```
|
||||
$ wget http://192.168.1.125/rancheros/ipxe/cloud-config.yaml
|
||||
$ ros install -c cloud-config.yaml -d /dev/sda
|
||||
```
|
||||
|
||||
|
||||
When the VM starts up again, we can check the user-docker and mount points.
|
||||
```
|
||||
[root@rancher rancher]# docker info
|
||||
...
|
||||
...
|
||||
Name: rancher
|
||||
ID: 2VW4:R7DN:KPX7:EIGW:XSAM:QPFU:VFPG:LJAJ:GTJX:RZ5H:Z7G3:N2JS
|
||||
Docker Root Dir: /mnt/user-docker
|
||||
Debug Mode (client): false
|
||||
Debug Mode (server): false
|
||||
...
|
||||
...
|
||||
|
||||
[root@rancher rancher]# df -hT | grep sdb
|
||||
/dev/sdb ext4 2.9G 9.3M 2.8G 0% /mnt/user-docker
|
||||
/dev/sdb ext4 2.9G 9.3M 2.8G 0% /mnt/user-docker/plugins
|
||||
/dev/sdb ext4 2.9G 9.3M 2.8G 0% /mnt/user-docker/overlay
|
||||
```
|
||||
|
||||
## Others
|
||||
There was a bug for cloudinit url datasource in v1.1.3, please refer to this [issue](https://github.com/rancher/os/issues/2144) .
|
||||
In the case of multiple nics, the content of the url sometimes fails to download.
|
||||
|
||||
It has been fixed in v1.1.4 and v1.2.0.
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user