Setting up the DASD device driver

SUSE Linux Enterprise Server 15 SP5 LPAR mode z/VM guest KVM guest

Unless the DASD device driver modules are loaded for you during the boot process, load and configure them with the modprobe command.

In most cases, SUSE Linux® Enterprise Server 15 SP5 loads the DASD device driver for you during the boot process. You can then use YaST to set the diag attribute. If the DASD device driver is loaded for you and you must set attributes other than diag.

DASD module parameter syntax

Read syntax diagramSkip visual syntax diagrammodprobe  dasd_mod dasd=,device-specautodetectprobeonlynopavnofcx eer_pages=5  eer_pages= <pages> dasd_eckd_mod dasd_fba_mod dasd_diag_mod
device-spec
Read syntax diagramSkip visual syntax diagram <device_bus_id><from_device_bus_id>- <to_device_bus_id>ipldev (:rodiagerplogfailfast)
Where:
dasd_mod
loads the device driver base module.

When you are loading the base module, you can specify the dasd= parameter.

You can use the eer_pages parameter to determine the number of pages that are used for internal buffering of error records.

autodetect
causes the DASD device driver to allocate device names and the corresponding minor numbers to all DASD devices and set them online during the boot process.

The device names are assigned in order of ascending subchannel numbers. Auto-detection can yield confusing results if you change your I/O configuration and reboot, or if your Linux instance runs as a z/VM® guest because the devices might appear with different names and minor numbers after rebooting.

probeonly
causes the DASD device driver to reject any open syscall with EPERM.
autodetect,probeonly
causes the DASD device driver to assign device names and minor numbers as for auto-detect. All devices regardless of whether they are accessible as DASD return EPERM to any open requests.
nopav
suppresses parallel access volume (PAV and HyperPAV) enablement for Linux instances that run in LPAR mode. The nopav keyword has no effect for Linux on z/VM.
nofcx
suppresses accessing the storage server with the I/O subsystem in transport mode (also known as High Performance FICON®).
ipldev
for IPL from a DASD, specifies the IPL device. If the IPL device is not a DASD, this parameter is ignored.
<device_bus_id>
specifies a single DASD.
<from_device_bus_id>-<to_device_bus_id>
specifies the first and last DASD in a range. All DASD devices with bus IDs in the range are selected. The device bus-IDs <from_device_bus_id> and <to_device_bus_id> need not correspond to actual DASD.
(ro)
accesses the specified device or device range in read-only mode.
(diag)
forces the device driver to access the device (range) with the DIAG access method.
(erplog)
enables enhanced error recovery processing (ERP) related logging through syslogd. If erplog is specified for a range of devices, the logging is switched on during device initialization.
(failfast)
immediately returns failed for an I/O operation when the last path to a DASD is lost.
Attention: Enable immediate failure of I/O requests only in setups where a failed I/O request can be recovered outside the scope of a single DASD.
dasd_eckd_mod
loads the ECKD module.
dasd_fba_mod
loads the FBA module.
dasd_diag_mod
loads the DIAG module.

If you supply a DASD module parameter with device specifications dasd=<device-list1>,<device-list2> ..., the device names and minor numbers are assigned in the order in which the devices are specified. The names and corresponding minor numbers are always assigned, even if the device is not present, or not accessible.

If you use autodetect in addition to explicit device specifications, device names are assigned to the specified devices first and device-specific parameters, like ro, are honored. The remaining devices are handled as described for autodetect.

The DASD base component is required by the other modules. Be sure that it is loaded first. modprobe takes care of this dependency for you and ensures that the base module is loaded automatically, if necessary.

Hint: modprobe might return before udev has created all device nodes for the specified DASDs. If you must assure that all nodes are present, for example in scripts, follow the modprobe command with:
# udevadm settle

For command details see the modprobe man page.

Example

modprobe dasd_mod dasd=0.0.7000-0.0.7002,0.0.7005(ro),0.0.7006

Table 1 shows the resulting allocation of device names:


Table 1. Example mapping of device names to devices
Name To access
dasda device 0.0.7000 as a whole
dasda1 the first partition on 0.0.7000
dasda2 the second partition on 0.0.7000
dasda3 the third partition on 0.0.7000
dasdb device 0.0.7001 as a whole
dasdb1 the first partition on 0.0.7001
dasdb2 the second partition on 0.0.7001
dasdb3 the third partition on 0.0.7001
dasdc device 0.0.7002 as a whole
dasdc1 the first partition on 0.0.7002
dasdc2 the second partition on 0.0.7002
dasdc3 the third partition on 0.0.7002
dasdd device 0.0.7005 as a whole
dasdd1 the first partition on 0.0.7005 (read-only)
dasdd2 the second partition on 0.0.7005 (read-only)
dasdd3 the third partition on 0.0.7005 (read-only)
dasde device 0.0.7006 as a whole
dasde1 the first partition on 0.0.7006
dasde2 the second partition on 0.0.7006
dasde3 the third partition on 0.0.7006

Including the nofcx parameter suppresses High Performance FICON for all DASD:
modprobe dasd_mod dasd=nofcx,0.0.7000-0.0.7002,0.0.7005(ro),0.0.7006