1.软文推荐

2.软文推荐

3.软文推荐

作为使用 DVD 和 USB 驱动器来存储你的 Live CD 镜像是一个替代方案,你可以上传它们到一个不太可能丢失或损坏的 iSCSI 服务器中。这个指南向你展示如何加载你的 Live CD 镜像到一个 ISCSI 服务器上,并使用 iPXE 启动加载程序来访问它们。

Live CD 对于很多任务是很有用的,例如:

将操作系统安装到一个硬盘驱动器 修复一个启动加载程序或执行其它救援模式操作 为 Web 浏览提供一个相适应的最小环境 …以及更多的东西。

下载一个 Live CD 镜像
$ MY_RLSE=27
$ MY_LIVE=$(wget -q -O - https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/$MY_RLSE/Workstation/x86_64/iso | perl -ne '/(Fedora[^ ]*?-Live-[^ ]*?.iso)(?{print $^N})/;')
$ MY_NAME=fc$MY_RLSE
$ wget -O $MY_NAME.iso https://dl.fedoraproject.org/pub/archive/fedora/linux/releases/$MY_RLSE/Workstation/x86_64/iso/$MY_LIVE

上面的命令下载 Fedora-Workstation-Live-x86_64-27-1.6.iso Fedora Live 镜像,并保存为 fc27.iso。更改 MY_RLSE 的值来下载其它档案版本。或者,你可以浏览 https://getfedora.org/ 来下载最新的 Fedora live 镜像。在 21 之前的版本使用不同的命名约定,必需在这里手动下载。如果你手动下载一个 Live CD 镜像,设置 MY_NAME 变量为不带有扩展名的文件的基本名称。用此方法,下面部分中命令将引用正确的文件。

转换 Live CD 镜像

使用 livecd-iso-to-disk 工具来转换 ISO 文件为一个磁盘镜像,并添加 netroot 参数到嵌入的内核命令行:

$ sudo dnf install -y livecd-tools
$ MY_SIZE=$(du -ms $MY_NAME.iso | cut -f 1)
$ dd if=/dev/zero of=$MY_NAME.img bs=1MiB count=0 seek=$(($MY_SIZE+512))
$ MY_SRVR=server-01.example.edu
$ MY_RVRS=$(echo $MY_SRVR | tr '.' "
" | tac | tr "
" '.' | cut -b -${#MY_SRVR})
$ MY_LOOP=$(sudo losetup --show --nooverlap --find $MY_NAME.img)
$ sudo livecd-iso-to-disk --format --extra-kernel-args netroot=iscsi:$MY_SRVR:::1:iqn.$MY_RVRS:$MY_NAME $MY_NAME.iso $MY_LOOP
$ sudo losetup -d $MY_LOOP
上传 Live 镜像到你的服务器

在你的 ISCSI 服务器上创建一个目录来存储你的 live 镜像,随后上传你修改的镜像到其中。

对于 21 及更高发布版本:

$ MY_FLDR=/images
$ scp $MY_NAME.img $MY_SRVR:$MY_FLDR/

对于 21 以前发布版本:

$ MY_FLDR=/images
$ MY_LOOP=$(sudo losetup --show --nooverlap --find --partscan $MY_NAME.img)
$ sudo tune2fs -O ^has_journal ${MY_LOOP}p1
$ sudo e2fsck ${MY_LOOP}p1
$ sudo dd status=none if=${MY_LOOP}p1 | ssh $MY_SRVR "dd of=$MY_FLDR/$MY_NAME.img"
$ sudo losetup -d $MY_LOOP
定义 iSCSI 目标

在你的 iSCSI 服务器上运行下面的命令:

$ sudo -i
# MY_NAME=fc27
# MY_FLDR=/images
# MY_SRVR=`hostname`
# MY_RVRS=$(echo $MY_SRVR | tr '.' "
" | tac | tr "
" '.' | cut -b -${#MY_SRVR})
# cat  /etc/tgt/conf.d/$MY_NAME.conf

   backing-store $MY_FLDR/$MY_NAME.img
   readonly 1
   allow-in-use yes

END
# tgt-admin --update ALL
创建一个可启动 USB 驱动器

iPXE 启动加载程序有一个 sanboot 命令,你可以使用它来连接并启动托管于你 ISCSI 服务器上运行的 live 镜像。它可以以很多不同的格式编译。最好的工作格式依赖于你正在运行的硬件。例如,下面的说明向你展示如何在一个 USB 驱动器上从 syslinux 中 链式加载 iPXE。

首先,下载 iPXE,并以它的 lkrn 格式构建。这应该作为一个工作站上的普通用户完成:

$ sudo dnf install -y git
$ git clone http://git.ipxe.org/ipxe.git $HOME/ipxe
$ sudo dnf groupinstall -y "C Development Tools and Libraries"cd $HOME/ipxe/src
$ make clean
$ make bin/ipxe.lkrn
$ cp bin/ipxe.lkrn /tmp

接下来,准备一个带有一个 MSDOS 分区表和一个 FAT32 文件系统的 USB 驱动器。下面的命令假设你已经连接将要格式化的 USB 驱动器。注意:你要格式正确的驱动器!

$ sudo -i
# dnf install -y parted util-linux dosfstools
# echo; find /dev/disk/by-id ! -regex '.*-part.*' -name 'usb-*' -exec readlink -f {} ; | xargs -i bash -c "parted -s {} unit MiB print | perl -0 -ne '/^Model: ([^(]*).*
.*?([0-9]*MiB)/i && print "Found: {} = $2 $1
"'"; echo; read -e -i "$(find /dev/disk/by-id ! -regex '.*-part.*' -name 'usb-*' -exec readlink -f {} ; -quit)" -p "Drive to format: " MY_USB
# umount $MY_USB?
# wipefs -a $MY_USB
# parted -s $MY_USB mklabel msdos mkpart primary fat32 1MiB 100% set 1 boot on
# mkfs -t vfat -F 32 ${MY_USB}1

最后,在 USB 驱动器上安装并配置 syslinux ,来链式加载 iPXE:

# dnf install -y syslinux-nonlinux
# syslinux -i ${MY_USB}1
# dd if=/usr/share/syslinux/mbr.bin of=${MY_USB}
# MY_MNT=$(mktemp -d)
# mount ${MY_USB}1 $MY_MNT
# MY_NAME=fc27
# MY_SRVR=server-01.example.edu
# MY_RVRS=$(echo $MY_SRVR | tr '.' "
" | tac | tr "
" '.' | cut -b -${#MY_SRVR})
# cat  $MY_MNT/syslinux.cfg
ui menu.c32
default $MY_NAME
timeout 100
menu title SYSLINUX
label $MY_NAME
   menu label ${MY_NAME^^}
   kernel ipxe.lkrn
   append dhcp && sanboot iscsi:$MY_SRVR:::1:iqn.$MY_RVRS:$MY_NAME
END
# cp /usr/share/syslinux/menu.c32 $MY_MNT
# cp /usr/share/syslinux/libutil.c32 $MY_MNT
# cp /tmp/ipxe.lkrn $MY_MNT
# umount ${MY_USB}1

通过简单地编辑 syslinux.cfg 文件,并添加附加的菜单项,你应该能够使用这同一个 USB 驱动器来网络启动附加的 ISCSI 目标。

这仅是加载 IPXE 的一种方法。你可以直接在你的工作站上安装 syslinux 。再一种选项是编译 iPXE 为一个 EFI 可执行文件,并直接放置它到你的 ESP 中。又一种选项是编译 iPXE 为一个 PXE 加载器,并放置它到你的能够被 DHCP 引用的 TFTP 服务器。最佳的选项依赖于的环境

最后说明

如果你以 IPXE 的 EFI 格式编译 IPXE ,你可能想添加 –filename EFIBOOTgrubx64.efi 参数到 sanboot 命令。 能够创建自定义 live 镜像。更多信息参考创建和使用 live CD。 可以添加 –overlay-size-mb 和 –home-size-mb 参数到 livecd-iso-to-disk 命令来创建永久存储的 live 镜像。然而,如果你有多个并发用户,你将需要设置你的 ISCSI 服务器来管理独立的每个用户的可写覆盖。这与 “如何构建一个网络启动服务器,部分 4” 一文所示类似。 Live 镜像在它们的内核命令行中支持一个 persistenthome 选项(例如, persistenthome=LABEL=HOME)。与经过 CHAP 身份验证的 iSCSI 目标一起使用,对于中心控制主目录,persistenthome 选项为 NFS 提供一个有趣的替代方案。

本文来源:www.lxlinux.net/8123.html,若引用不当,请联系修改。

相关文章 8

1

Linux下配置PPTP具体方法 2分钟前

PPTP(Point to Point Tunneling Protocol),即点对点隧道协议。该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网...

2

Linux安装ACE编译环境具体方法 5分钟前

ACE 是个很有用的开放源代码的C++网络编程开发包,利用它比直接用API更有利于代码的健壮性,可移植性,并相对简单,下面为大家分享一下Lin...

3

Centos8 通过realmd加入AD域 6分钟前

本文展示如何使用 realmd ,sssd将 Centos7 / 8 加入到 Active Directory 域。 本文还进一步为通过 AD 登录的域用户配置 sudo 规则。 设置主机名和DNS 下...

4

Linux系统如何执行.exe文件 8分钟前

.exe文件 是windows中的执行程序,那么如何在Linux系统中运行呢?本篇文章将使用Wine为大家演示一下Linux系统执行 .exe文件 具体方法。 1、安装...

5

Linux运行sh文件命令 11分钟前

在Linux系统中如何运行.sh文件?本篇文章将用两种不同的方法为大家演示一下在Linux系统中如何运行.sh文件,下面一起来看一下linux运行sh文件...

6

怎样申请云服务器(如何开通云服务) 13分钟前

怎么申请云服务器?云服务器是一种简单高效、处理能力可弹性伸缩的计算服务, 帮助您快速构建更稳定、安全的应用,提升运维效率,降...

7

简述HTML DOM 节点 14分钟前

在JavaScript中,document这个对象大家一定很熟悉,哪怕是刚刚开始学习的新人,也会很快接触到这个对象。而document对象不仅仅是一个普通的...

8

详解HTTPie具体使用方法 16分钟前

HTTPie 是一个 HTTP 的命令行客户端,目标是让 CLI 和 web 服务之间的交互尽可能的人性化。这个工具提供了简洁的 http 命令,允许通过自然的语...