Contents
概要
前提条件
OS
CentOS Stream 8を使用します。
PXE Server
TFTP Server
[root@centos ~]# dnf install tftp-server [root@centos ~]# systemctl enable --now tftp.socket
DHCP Server
[root@centos ~]# dnf install dhcp-server [root@centos ~]# cat <<EOF > /etc/dhcp/dhcpd.conf subnet 10.0.0.0 netmask 255.255.255.0 { range 10.0.0.100 10.0.0.199; option routers 10.0.0.1; option domain-name-servers 10.0.0.1; } EOF
[root@centos ~]# dnf install syslinux [root@centos ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot [root@centos ~]# mkdir -p /var/pxe/centos8 [root@centos ~]# mkdir /var/lib/tftpboot/centos8 [root@centos ~]# mount -t iso9660 -o loop,ro CentOS-Stream-8-x86_64-20211007-dvd1.iso /var/pxe/centos8 [root@centos ~]# cp /var/pxe/centos8/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/centos8 [root@centos ~]# cp /usr/share/syslinux/{menu.c32,vesamenu.c32,ldlinux.c32,libcom32.c32,libutil.c32} /var/lib/tftpboot [root@centos ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@centos ~]# cat <<EOF > /var/lib/tftpboot/pxelinux.cfg/default default vesamenu.c32 prompt 1 timeout 60 display boot.msg label linux menu label ^Install CentOS 8 menu default kernel centos8/vmlinuz append initrd=centos8/initrd.img ip=dhcp inst.repo=http://10.0.0.30/centos8 label vesa menu label Install CentOS 8 with ^basic video driver kernel centos8/vmlinuz append initrd=centos8/initrd.img ip=dhcp inst.xdriver=vesa nomodeset inst.repo=http://10.0.0.30/centos8 label rescue menu label ^Rescue installed system kernel centos8/vmlinuz append initrd=centos8/initrd.img rescue label local menu label Boot from ^local drive localboot 0xffff EOF
ddコマンド
Linux上で実施します。こちらを参考としました。
デバイス名確認
USBメモリを挿入すると、dmesgコマンドでデバイス名を確認できます。私の環境では下記のように出力されており、デバイス名はsdbです。また、既にsdb1とsdb2のパーティションが存在しています。
[root@centos ~]# dmesg [1204670.351934] usb 2-4: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd [1204670.365079] usb 2-4: New USB device found, idVendor=8564, idProduct=1000, bcdDevice=11.00 [1204670.365080] usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [1204670.365081] usb 2-4: Product: Mass Storage Device [1204670.365081] usb 2-4: Manufacturer: JetFlash [1204670.365082] usb 2-4: SerialNumber: SerialNumber [1204670.510818] usb-storage 2-4:1.0: USB Mass Storage device detected [1204670.511011] scsi host4: usb-storage 2-4:1.0 [1204670.511058] usbcore: registered new interface driver usb-storage [1204670.513318] usbcore: registered new interface driver uas [1204671.826407] scsi 4:0:0:0: Direct-Access JetFlash Transcend 32GB 1100 PQ: 0 ANSI: 6 [1204671.826676] sd 4:0:0:0: Attached scsi generic sg1 type 0 [1204671.827301] sd 4:0:0:0: [sdb] 59725824 512-byte logical blocks: (30.6 GB/28.5 GiB) [1204671.827408] sd 4:0:0:0: [sdb] Write Protect is off [1204671.827409] sd 4:0:0:0: [sdb] Mode Sense: 43 00 00 00 [1204671.827526] sd 4:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [1204671.832937] sdb: sdb1 sdb2 [1204671.833604] sd 4:0:0:0: [sdb] Attached SCSI removable disk
マウント状態確認
念のためマウント状態を確認しておきます。何も表示されなければマウントされていません。もしマウントされていたらumountコマンドでアンマウントしましょう。
[root@centos ~]# findmnt /dev/sdb1 [root@centos ~]# findmnt /dev/sdb2
既存パーティション削除
念のためfdiskで既存のパーティションを削除しておきます(おそらく不要な手順です)。対象のデバイスを間違えないように注意して下さい。
[root@centos ~]# fdisk /dev/sdb
pコマンドでパーティションを一覧表示し、dコマンドで削除します。最後にwコマンドで書き込み、終了します。
ISOイメージ書き込み
ifがISOイメージ、ofが書き込み先デバイスです。bsはブロックサイズとなりますが、指定したほうが良いものの特に推奨値は無いようなのでマニュアルに記載の512kを指定しました。
[root@centos ~]# dd if=CentOS-Stream-8-x86_64-20210402-dvd1.iso of=/dev/sdb bs=512k 18874+0 レコード入力 18874+0 レコード出力 9895411712 bytes (9.9 GB, 9.2 GiB) copied, 360.686 s, 27.4 MB/s
この後、問題なければ特に経過状況などは表示されずに終了します。私の環境では5分程度かかりました。
ddコマンド以外でUSBメモリ作成
Fedora Media Writer
Fedora Media Writerはブート可能なUSBメモリを作成できるWindows用アプリケーションです。使い方に特に難しいことは無く、ISOイメージを指定して書き込むだけです。このUSBメモリを使用してインストールは可能ですが推奨はddコマンドです。
Rufus
Rufusはブート可能なUSBメモリを作成できるWindows用アプリケーションです。使い方に特に難しいことは無く、ISOイメージを指定して書き込むだけです。このUSBメモリを使用してインストールは可能ですが推奨はddコマンドです。