I have not done this with QGIS, but separating urban from things like bare soil and especially basalt can be really hard. This is even worse when using all the bands.
Read up on the indices using google scholar. Some of them are fine tuned to separate urban out. I believe this applies to Normalized Difference Buildup Index (NDBI), but have not researched and used this particular one myself.
I have worked with mcfeeters, 1996 Normalized Difference Water Index(NDWI). A problem is that it tends to group water and urban together. So xu,2006 created Modified NDWI (MNDWI). Just using MIR instead of NIR greatly improves the separation of water and urban.
It would be helpful if you give more details about your image and your goal. Is it mostly urban, rural, or mixed? Is there something you are ultimately trying to get from the image like vegetation, roads, etc? This will allow someone to suggest the best method.
If you stick with all the bands and unsupervised classification your class name may end up being something like Urban, dirt roads, fallow fields, and basalt. This is just the limitation of unsupervised classification. When this happens you might try cluster busting. (not sure if you can do it QGIS, but you might google it).