dropdown menu


PowerVM Editions:

Under the VET code:

-Express      0000
-Standard     2C00
-Enterpise    2C20


VIOS service package definitions

Fix Pack
A Fix Pack updates your VIOS release to the latest level. A Fix Pack update can contain product enhancements, new function and fixes.

Service Pack
A Service Pack applies to only one (the latest) VIOS level. A Service Pack contains critical fixes for issues found between Fix Pack releases. A Service Pack does not update the VIOS to a new level and it can only be applied to the Fix Pack release for which it is specified.

Interim Fix
An Interim Fix (iFix) applies to only one (the latest) VIOS level and provides a fix for a specific issue.

Virtual I/O Server is a special partition that is not intended to run end-user applications, and should only provide login for system administrators.  Virtual I/O Server allows the sharing of physical resources between supported AIX partitions to allow more efficient utilization and flexibility for using physical storage and network devices.


User padmin:

Primary administrator on the VIO Server is the user padmin. It has a restriced shell (can't change home directory:/home/padmin) with vios commands.

The oem_setup_env command will place the padmin user in a non-restricted root shell with a home directory in the /home/padmin directory. The user can then run any command available to the root user. This is not a supported Virtual I/O Server administration method. The purpose of this command is to allow installation of vendor software, such as device drivers. (It is an environment to set up oem device drivers = oem_setup_env.)

By default the ioscli commands are not available for the root user. All ioscli commands are in fact calls of /usr/ios/cli/ioscli with the command as argument. (You see this if you list the aliases of the padmin user.)

You can use all ioscli commands as user root by appending /usr/ios/cli/ioscli. (/usr/ios/cli/ioscli lsmap -all)

You can set an alias:
 alias i=/usr/ios/cli/ioscli
 i lsmap -all

Typing exit, will return the user to the Virtual I/O Server prompt.


/home/ios/logs/ioscli_global.trace shows history what was happening on the system (from commands point of view)

ioslevel                           shows vio server level
installios                         installs the Virtual I/O Server. This command is run from the HMC.
backupios                          creates an installable image of the root volume group (saves almost everything)
viosbr                             creates backups from user defined virtual device configs (saves only the mappings, virt. devices..)
viosbr -view -file <file name>     displays the contents of a backup file (whic was made before with viosbr)
savevgstruct                       it will make a backup of a volume group structure

lsgcl                              show history, what comands have been run on the vio server (gcl: global comand log)

cfgdev                             devices are recognized after runnig cfgdev
cfgassist                          on vio server as padmin brings up smitty style menu for doing several tasks
chkdev -dev hdisk4 -verbose        show if attached device can be migrated from physical adapter to virtual adapter (PHYS2VIRT_CAP.. -> yes)
chkdev -field NAME PHYS2VIRT_CAPABLE -fmt : show if disks can be used for vscsi (YES:yes, NO:no, NA:disk is already in use by VSCSI)

good overview of SEA sharing mode and adapters state:
entstat -all ent10 | grep -e "  Priority" -e "Virtual Adapter" -e "  State:" -e "High Availability Mode"

good overview of SEA and adapters VLAN id, MAC addres, Link status:
entstat -all ent10 | grep -e "(ent" -e "Type:" -e "Address:" -e "Link Status:" -e "Link State:" -e "Switch" -e "  ent"

lsdev                              lists all devices
lsdev -slots                       lists I/O slot information for built-in adapters (those are not hot-pluggable but DLPAR capable)
lsdev -virtual                     lists virtual devices
lsdev -type disk -virtual          lists virtual target devices (lists vscsi disks by the name what was given at mkvdev...-dev...)
lsdev -type adapter                same as lsdev -Cc adapter
lsdev -dev vhost0 -vpd             same as lscfg -vpl vhost0 in AIX (but on vio as padmin user lscfg does not work
lsdev -dev ent4 -attr              shows attributes of the devices (same as lsattr -El ent4)

chdev -dev fscsi0 -attr fc_err_recov=fast_fail dyntrk=yes -perm    changes the attributes (same as chdev -l fscsi0 -a fc_err_recov...)

lsmap -all                         lists all vscsi devices
lsmap -all -npiv                   lists npiv adapters (with slot numbers (aka adapter ID))
lsmap -all -net                    lists virtual ethernet adapters (with slot numbers (aka adapter ID))

lsmap -vadapter vhost0             shows infos about a specific vscsi adapter
lsmap -vadapter vfchost0 -npiv     shows infos about a specific npiv adapter
lsmap -vadapter ent11 -net         shows infos about a specific virtual ethernet device (with sea or physical devices will not work)

lsvg -lv rootvg                    same as lsvg -l rootvg

lspv                               shows all available hdisk devices
lspv -free                         shows hdisks which are free to be used as backing devices
lspv -size                         shows hdisks with sizes

mkvdev -vdev hdiskX -vadapter vhostX -dev <vtd_name> create mapping between vhost and disk (vscsi disk assignment to vio client)
mkvdev -vlan ent9 -tagid 200       creates a vlan tagged interface over the ent9 interface (ent9 can be a SEA adapter)

rmvdev -vtd <vtd>                  removing connection between virt. target dev. (a physical dev. or an lv) and the virtual SCSI adapter
                                   (vtd can be found in lsmap output) (rmvdev -vdev <backing dev.> also works)
rmdev                              removes or unconfigures a device (rmvdev command can be replaced by rmdev, and rmdev is more universal)
rmdev -dev vhostX -recursive -ucfg put in defined state vhost adapter and its child devices (lsdev -dev vhostX -child)
                                   (-recursive: do actions on childdren as well, -ucfg: put only in defined state, do not delete device)
rmdev -pdev vhost13                deletes only childern devices of the given parent device (pdev) (vhostX will be still in available state)

vfcmap -vadapter vfchostX -fcp fcsX  mapping the virtual FC adapter to the VIO's physical FC
vfcmap -vadapter vfchostX -fcp       remove mappings of given vfchost adapter 

viosecure -firewall on -reload     enable firewall with default config (enables: https, http, rmc,ssh, ftp...)
viosecure -firewall view           display current firewall rules

license  -swma                     once helped, when vio commands did not want to work
remote_management                  this command enables VIOS to be remotely managed by a NIM master


Info about virtual devices:

root@bb_lpar: /root # lscfg -l vscsi0
  vscsi0           U8204.E8A.0680E95-V3-C2-T1  Virtual SCSI Client Adapter

8204.E8A                           <--managed system type/model that contains this partition
0680E95                            <--serial number of the managed system
V3                                 <--partition id (on HMC LPAR id)
C3                                 <--slot number of this adapter (on HMC adapter id)


mirroring vio server rootvg:
1. extendvg -f rootvg hdisk2        <--if pp limitation problem: chvg -factor 6 rootvg, then extendvg
2. mirrorios -defer hdisk2          <--mirror rootvg to hdisk2;  -defer is used, as no need to reboot since VIOS 1.5 :)
                                    (use the -f only if required, which will do a reboot without prompting you to continue)
3. bootlist -mode normal -ls        <--checking bootlist


Debugging VIO problems:

I. truss:

$ oem_setup_env
# truss /usr/ios/cli/ioscli <failing_padmin_command> (or truss -feal /usr/ios/cli/ioscli <failing_padmin_command>)



By exporting CLI_DEBUG=33, we can see which AIX command is used in the background of VIO command. After running that AIX command we can get more info.

For example:
1. mkvdev -vdev hdiskpower1 -vadapter vhost0 -dev testdisk         <--running this command gives not enough info about the problem
The command's response was not recognized.  This may or may not indicate a problem.

2. export CLI_DEBUG=33                                            <--exporting CLI_DEBUg=33

3. mkvdev -vdev hdiskpower1 -vadapter vhost0 -dev testdisk        <--running again, we can see which AIX command will be invoked
AIX: "lspv -l hdiskpower1 2>&1 | grep 0516-320"
AIX: "export LANG=C;/usr/sbin/pooladm -I pool querydisk /dev/hdiskpower1"
AIX: "/usr/sbin/lquerypv -V hdiskpower1"
AIX: "mkdev  -V hdiskpower1  -p vhost0  -l testdisk "             <--this command will be needed
The command's response was not recognized.  This may or may not indicate a problem.

4.oem_setup_env                                                   <--enabling root environment
5. mkdev  -V hdiskpower1  -p vhost0  -l testdisk                  <--running AIX command and it shows more detailed info
Method error (/usr/lib/methods/cfg_vt_scdisk):
        0514-012 Cannot open a file or device.

The solution was in this case, that I forgot to set no_reserve for the given disk on the other VIOS. The other VIOS already used this disk (with reservation) that is why I could not configure here because it was locked.


Creating a client LPAR via VIO server:

planned devices for client LPAR:
1 virtual Ethernet
    -for virtual disk
    -for virtual optical device (cd)

1. find out what will be the client partition id (on HMC), because it will be needed when creating adapters for the new client LPAR
2. on VIO server (HMC) create virtual server adapters:
    - virtual Ethernet: for me it was enough for inter LPAR communicatio, so tagging is not needed (only remember PVID)
    - virtual SCSI for hdisk and optical device (cd): here the planned client partition id should be set
3. on VIO server configure the devices and mappings, after that 'cfgdev':
    -virtual Ethernet:
        set ip: chdev -l en19 -a netaddr= -a netmask= -a state=up

    -virtual SCSI for hdisk:
        map disk for rootvg: mkvdev -vdev hdisk45 -vadapter vhost1 -dev bb_lpar_rootvg

    -virtual optical device:
        create a file backed optical device, for iso images: mkvdev -fbo -vadapter vhost1
        copy the iso image to /var/vio/VMLibrary (lsrep)
        load the image into the vtopt0 device: loadopt -vtd vtopt0 -disk dvd.1022A4_OBETA_710.iso (lsmap -all will show it)

4. create client LPAR on HMC:
    partition id should be as planned (to match with the above created adapters)
    set processor, memory... phyisical I/O is not needed
    create virtual Ethernet and SCSI (it should be untagged as created on VIO Server with the same PVID)
    create SCSI adapter: 1 is enough for disk and optical device
    LHEA is not needed and other settings were not changed

5. activate profile
    go into SMS -> choose cdrom -> install AIX

6. on the new client LPAR
    set ip, hostname, routing...
    set ip: chdev -l en0 -a netaddr= -a netmask= -a state=up
    check ping from vio, then ssh is possible to new LPAR


Network Time Protocol config:

1. vi /home/padmin/config/ntp.conf                 <--edit (or create) ntp.conf file as padmin (maybe root will need access to file as well)

    content should look like this:
    server ptbtime1.ptb.de
    server ptbtime2.ptb.de
    driftfile /home/padmin/config/ntp.drift
    tracefile /home/padmin/config/ntp.trace
    logfile /home/padmin/config/ntp.log

2. startnetsvc xntpd                               <--start xntpd daemon
3. cat /home/padmin/config/ntp.log                 <--check log for errors
    if you see this:
    time error 3637.530348 is way too large        <--if difference between local and timeserver time is too large synchroniztaion cannot occur

4. chdate 1206093607                               <--change clock manually
    Thu Dec 6 09:36:16 CST 2007

5. cat /home/padmin/config/ntp.log:
                <--check log again
    synchronized to, stratum=2

6. ps -ef | grep ntp                               <--it should show /home/padmin/config/ntp.conf (not /etc/ntp.conf)
    root  4390928  2818268  0 14:46:11 - 0:00 /usr/sbin/xntpd -x -c /home/padmin/config/ntp.conf



  1. You've got a lot of great information on your site. But please, mention the -defer option on

    2. mirrorios -f hdisk2

    People may just follow your steps, and find the vios just rebooted on them.

    Better may be (IMHO): mirrorios -defer hdisk2
    (use the -f only if required)
    man on mirrorios says ios doesn't need a reboot any longer since 1.5)

    Thanks for all the info though, it came in very handy today.

  2. Thanks a lot for these details!!! It has been updated as you suggested.
    I really appreciate your help :)

  3. You are really great... It is very useful to learn. Can you tell me, if a new lun assigned to a VIO. What are attributes need to check and how we can assign to a lpar

    1. Thanks. You can find the necessary data here: http://aix4admins.blogspot.hu/2011/06/virtual-scsi-virtual-scsi-is-based-on.html (under "Managing VSCSI devices" and the physical disks part)

  4. Great site. Love the simplicity and directness of explanation (as opposed to a 600 page Redbook containing obfuscatory ambiguousness and a general prescriptive tone. )
    I expect a certain company may try to shut you down if they find out about this site.

    Michael Contubular

    1. Hi, I receievd positive feedbacks from IBMers as well, and hopefully I can manage this site for a long time and all of you can learn this great Operating System. :)

  5. Simple and helpful..............

  6. Great site ,the explanation of each topic is very clear , getting more interest to read this blog.

    I have suggest all my team mates to visit this blog.

    Thanks a lot !!!!!!

    1. Happy to hear that! I hope, this blog can help you more :)

  7. What command lists I/O slot information like lsdev -slots give physical location for virtual devices.

    one command without using grep is what I'm looking.

    1. As root (not padmin) you can try lsslot -c slot

  8. First of all big thanks to you for giving this wonderful blog for learning purpose..
    I have a doubt..
    In my vioserver, we have around 30 hdisk which are assigned from SAN..Suddenly from errprt we come to know hdisk5 is having IO error..We have created VTD ( virtal target disk for clients ) from logical volume..Now I want to know what all lv's available on hdisk5..So that I can check for backup for that particular clients who are all there in hdisk5.. Awaiting for your support..Thanks...

    1. Hi, as padmin you can check all lvs on hdisk5 with command: lspv -lv hdisk5.

  9. Hi , Thank you for the reply..In my environment, vpath are assigned to VG..if i give lspv -> output will be like Pv are not assigned to vg and vpath are assigned to non-root vg..In lspv it shows both vpath and pv detail..we have around 12 vpath and it is assigned to non-rootvg..Please help me..Also please let me know if you require further info..

    Thanks in advance..

    1. Hi, in this case first you should find out which vpath has hdisk5. We don't use vpath, but I think "datapath query essmap" will list every vpath and their hdisks. If you know the vpath, then you can check with lspv, if that vpath is assigned to a VG. If yes, then with "lspv -lv , you can list its LVs.

  10. Hi, I've created disk on VIOS from UI interface and I can see that using command lsvg -lv rootvg
    when i'm creating from REST API interface, I'm not seeing that name which I've given during creation ?
    can someone help me?

    1. I have no idea about that, probably someone who reads this, can help you....

  11. Hi.."datapath query essmap" helped me..Thank you so much for your support...

  12. Hi....admin. Thanks alot for giving all the information in one place. I got so much clarity on several topics after reading your blog. Especially MPIO,SCSI and NPIV. Your procedures are simple and effective. I love your blog.

    I have small issue. Can you add corresponding (# or $ ) prompt before the commands. So that starters like me can understand very clearly. In the above explanation we dont know some commands where to execute, in VIO shell or root shell ?. So please add # or $ prompt before the commands.So that we will come to know in which shell we need to execute that command.

    Hope you will..

    Any way thanks......thanks alot....

    1. Hi, thanks a lot for your suggestion. It is a good idea and I will keep in mind for future posts :)

  13. Excellent Work :)... Really this site is very helpful for me...

  14. Could someone pls help me on below scenario ?
    I can check hdisk for LPAR from VIOS. say that's hdisk4
    From SVC- I can get UID for LPARs, Is any command to check for UID from VIOS too, so i can match those UID and can say this particular UID is for that LPAR
    or any other way, so i can find out which UID is for that LPAR?

    1. Maybe this can help you:

  15. Hi, I have a question about the mirror
    On my server I have 2 hard drives of 600 GB, and I follow these steps to make the mirror, but I see the size of rootvg is 1.2 tb, but I see the rootvg of this size. Why?

    1. Hi, both disks belong to rootvg so size of the rootvg is 1.2tb.

    2. So what happens when one of the hard drives fails?

    3. 1 side of the mirror will be lost.

  16. hii

    any idea what is promiscuous lpar?



  17. Hi,

    rmdev -l hdisk1 (root mode) and rmdev -dev hdisk1 -ucfg ( from padmin)

    both commands put the devices in defined mode, what is the differences/advantages between both the methods.


    1. Hi, it is doing the same thing, no difference only the loaded environment are different (root vs padmin), however IBM suggest to do all actions as padmin if possible (only 3rd party software installations should be done as root) on VIOS.

  18. Hi aix,
    is possible to make "sudo su - padmin" from any other user ??


    1. Hi, hopefully this thread will help you: http://unix.ittoolbox.com/groups/technical-functional/ibm-aix-l/sudo-on-vio-3478335


  19. Hi aix.....same question as Tamin
    is possible to make "sudo su - padmin" from any other user ??


    1. Hi, hopefully this thread will help you: http://unix.ittoolbox.com/groups/technical-functional/ibm-aix-l/sudo-on-vio-3478335


  20. Hi Balazs,

    Is there any command which reports fix pack of VIO ?

    Manoj Suyal

  21. Hi , how do you check if a APAR installed in vios? what is the instfix for padmin shell?

  22. Hi,
    I have a question and maybe a problem . I was intalling 4 vio servers with a nim server. I had no access to the CPD were the Pseries were, so I did a cat to mksysb located in both dvd to create an mksysb resource in the NIM server , and I installed from there.
    My problem is that, I was no able to update to SP1 the vio server with updateios command and padmin user, so I updated it as root with update_all .
    Someone knows What could be the consecuencies about that ? I'm not able to commit with updateios, and I cant update to SP2 like padmin as the first upddate.
    This could be a future problem for the VIOs ??

    Thank you in advance.


  23. Hi,

    How to see the Physical/Virtual resources of an AIX LPAR from the VIO console ? Thanks ..!

  24. Hi,

    Please let me know the difference b/w P5,P6,P7 and OS versions 5.3,6.1,7.1?


    1. Difference between p5,p6,p7,p8 -------- 1. Core per chip - In p5 maximum no.of core per chip is 2, In p6 is also 2 but in p7 and p7+ are can be 4,6,8 as an example in p5 if 2 chip can inserted than no of cores will be 4.(Core is as good as physical CPU).

      2. LPM capable - P5 is not but p6,p7,p7+ are LPM capable.

      3. AMS capable - P5 is not but p6,p7,p7+ are AMS capable.

      4. SMT - P5 with 2 SMT,P6 is also with 2 SMT, but P7 and P7+ with 4 SMT and P8 with 12 SMT value can be set.
      SMT(simultenous multi threading).

      Anuj Kaushik

  25. Best blog............ever had