echo -e "0 `blockdev --getsz /dev/pmem8` linear /dev/pmem8 0 "\\n"`blockdev --getsz /dev/pmem8` `blockdev --getsz /dev/pmem9` linear /dev/pm em9 0" |sudo dmsetup create linear-pmem
mount -o dax /dev/mapper/linear-pmem /mnt/pmeml/
[Unit]
Description=Create Persistent Memory liner map and mount it
[Service]
Type=simple
ExecStart=/opt/pmem/pmem-mapper
[Install]
WantedBy=multi-user.target
Bash# systemctl status pmem-dev-mapper.service
● pmem-dev-mapper.service - Create Persistent Memory liner map and mount it
Loaded: loaded (/etc/systemd/system/pmem-dev-mapper.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2018-11-27 16:48:49 CST; 1min 17s ago
Process: 1919 ExecStart=/opt/pmem/pmem-mapper (code=exited, status=32)
Main PID: 1919 (code=exited, status=32)
Nov 27 16:48:48 tserver-1 systemd[1]: Starting Create Persistent Memory liner map and mount it...
Nov 27 16:48:48 tserver-1 pmem-dev-mapper[1919]: blockdev: cannot open /dev/pmem8: No such file or d...ory
Nov 27 16:48:48 tserver-1 pmem-dev-mapper[1919]: blockdev: cannot open /dev/pmem8: No such file or d...ory
Nov 27 16:48:48 tserver-1 pmem-dev-mapper[1919]: blockdev: cannot open /dev/pmem9: No such file or d...ory
Nov 27 16:48:49 tserver-1 pmem-dev-mapper[1919]: Invalid format on line 1 of table on stdin
Nov 27 16:48:49 tserver-1 pmem-dev-mapper[1919]: Command failed
Nov 27 16:48:49 tserver-1 pmem-dev-mapper[1919]: mount: special device /dev/mapper/linear-pmem does ...ist
Nov 27 16:48:49 tserver-1 systemd[1]: pmem-dev-mapper.service: main process exited, code=exited, sta.../n/a
Nov 27 16:48:49 tserver-1 systemd[1]: Unit pmem-dev-mapper.service entered failed state.
Nov 27 16:48:49 tserver-1 systemd[1]: pmem-dev-mapper.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
I can remap the pmem devices with the instructions in the script after the reboot, but why I cannot restore it through the systemd service?
I see that in the blog, it created link using uuid considering that the pmem device name might change after reboot but not the uuid. But if the pmem device names do not change across the reboot, I can write the service like this and I think it should work.
Can experts here understand this issue and take a look? thanks a lot.