diff --git a/g5k-postinstall b/g5k-postinstall index 7ec8c2fda878647a08a7f65521aaadae22f37e32..0157e82b79327cf0280b52b25cf799ee875e6c2e 100755 --- a/g5k-postinstall +++ b/g5k-postinstall @@ -12,6 +12,7 @@ $inittab = nil $restrictuser = 'none' $no_ref_api = false $guix = true +$disk_aliases = false $nfs_mount_options = '_netdev,rw,hard,async,nodev,nosuid,auto' $args = ARGV.dup $bootloader = [] @@ -52,6 +53,9 @@ BANNER opts.on("--no-guix", "Disable guix") do $guix = false end + opts.on("--disk-aliases", "Enable disk aliases (e.g. /dev/disk0p1)") do + $disk_aliases = true + end opts.separator <
/dev/sdb + /dev/disk0p2 -> /dev/sdb2 + /dev/disk1 -> /dev/nvme0n1 + /dev/disk1p4 -> /dev/nvme0n1p4 + This is useful because, starting from Linux 5.3, traditional block device names + are non-deterministic: /dev/sda might not refer to the same disk on every boot. DETAILS @@ -554,11 +571,12 @@ end ########################### Disk aliases ##################################### -$myjson.fetch('storage_devices', []).each do |disk| - $logger.info("Writing udev rules for /dev/#{disk['id']} aliases") - pci_path = disk['by_path'].split('/').last - File::open("#{DSTDIR}/etc/udev/rules.d/90-disk-alias-#{disk['id']}-g5k.rules", "a") do |fd| - fd.puts <<-EOF +if $disk_aliases + $myjson.fetch('storage_devices', []).each do |disk| + $logger.info("Writing udev rules for /dev/#{disk['id']} aliases") + pci_path = disk['by_path'].split('/').last + File::open("#{DSTDIR}/etc/udev/rules.d/90-disk-alias-#{disk['id']}-g5k.rules", "a") do |fd| + fd.puts <<-EOF SUBSYSTEM!="block", GOTO="end" # Normal rule @@ -579,8 +597,9 @@ ENV{DEVTYPE}=="partition", ENV{G5K_ALIAS}=="?*", SYMLINK+="$env{G5K_ALIAS}" LABEL="end" EOF - end -end + end # File::open + end # $myjson.fetch +end # $disk_aliases ####################################### guix with autofs ################################### if $fstab.include?('nfs') and $guix and not $fstab.include?('no-autofs')